zabbix5.0企业微信报警 https://www.cnblogs.com/forlive/p/12987977.html#
先去申请企业微信,要以管理员的权限创建机器人,建完机器人后会有一串webhook,类似这种
1 | https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx509-4f42-xxxxxxxx |
测试这个钩子能不能用,具体使用方法可以看微信机器人文档
1 | https://work.weixin.qq.com/help?doc_id=13376 |
看完机器人文档后,需要写个python脚本调用这个钩子机器人,这个脚本放在/usr/lib/zabbix/alertscripts/目录下(注意服务器上要安装python3环境!)
#!/usr/local/python3/bin/python3
# coding:utf-8
# zabbix企业微信报警
import
requests, json, sys, os, datetime
#微信钩子机器人地址
webhook
=
"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxx"
#zabbix传过来的三个变量
user
=
sys.argv[
1
]
title
=
sys.argv[
2
]
text
=
sys.argv[
3
]
#每发送一次报警,就记一次日志
file
=
r
"/var/log/zabbix/send2wechat.log"
#报警的信息
data
=
{
"msgtype"
:
"markdown"
,
"markdown"
: {
"content"
: title
+
"\n"
+
text
}
}
#请求这个钩子机器人
headers
=
{
'Content-Type'
:
'application/json'
}
x
=
requests.post(url
=
webhook, data
=
json.dumps(data), headers
=
headers)
if
os.path.exists(
file
):
f
=
open
(
file
,
"a+"
)
else
:
f
=
open
(
file
,
"w+"
)
f.write(
" "
+
" - -"
*
30
)
f.write(
"\n"
)
#记录日志
if
x.json()[
"errcode"
]
=
=
0
:
f.write(
" "
+
str
(datetime.datetime.now())
+
" "
+
str
(user)
+
" "
+
"发送成功"
+
" "
+
str
(title)
+
"\n"
)
f.close()
else
:
f.write(
" "
+
str
(datetime.datetime.now())
+
" "
+
str
(user)
+
" "
+
"发送失败"
+
" "
+
str
(title)
+
"\n"
)
f.close()
去zabbix页面创建报警类型
脚本名称就是刚才创建的python脚本
故障报警信息(#和>都需要打上,markdown标记):
1 2 3 4 5 6 7 8 9 10 | # 服务故障: <font color="warning">{EVENT.NAME}</font> { > 告警主机: **{HOST.NAME}** > 主机地址: **{HOST.IP}** > 监控项目: {ITEM.NAME} > 当前取值: {ITEM.LASTVALUE} > 告警等级: {TRIGGER.SEVERITY} > 告警时间: {EVENT.DATE}-{EVENT.TIME} > 事件ID: {EVENT.ID} } |
类似这样
故障恢复信息(#和>都需要打上,markdown标记):
1 2 3 4 5 6 7 8 9 10 11 | # 故障恢复: <font color="info">{EVENT.NAME}</font> { > 主机名称: **{HOST.NAME}** > 主机地址: **{HOST.IP}** > 告警名称: {EVENT.NAME} > 持续时长: {EVENT.DURATION} > 恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME} > 当前状态: {TRIGGER.STATUS} > 当前取值: {ITEM.LASTVALUE} > 事件ID: {EVENT.ID} } |
类似这样
创建发送报警的用户
***用户的报警媒介这必须加上刚刚创建的媒介,不然消息发不出去
创建触发器动作
条件是所有报警动作都触发条件
触发器和监控项自己去创建,之后搞挂一个服务,企业微信上就会收到消息了
zabbix服务器上的监控脚本日志
--------------------------
根据限定条件,把领导想看的报警发到他们自己群里
依照上面的博客,在创建一个报警媒介
在用户里面需要把刚刚创建的媒介也加上去
添加触发器动作,第二个动作限定好条件,这样再发消息,领导就能看到他想看到的了
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://sg.hqyman.cn/post/5387.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~