天天看点

zabbix钉钉告警

作者:街头角落里
zabbix钉钉告警

官网:https://www.zabbix.com/

环境:centos7; zabbix4.0

1/创建钉钉机器人

在钉钉新建一个群,然后在群里添加“智能群助手”->“添加机器人”->“添加机器人”->"自定义"->“添加”,如图:(“主”表示报警内容出现的字)

zabbix钉钉告警

保存Webhook,等一下python脚本需要使用。

zabbix钉钉告警

2/zabbix主机查看脚本存放地址

[root@localhost ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf |grep 'AlertScriptsPath'
AlertScriptsPath=/usr/lib/zabbix/alertscripts           

3/zabbix主机上部署pythone脚本

[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# ll
总用量 8
-rwxr-xr-x 1 root root 991 4月 15 17:32 dingding.py           

python脚本dingding.py内容如下:

#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime #注意主机是否有对应的模块
webhook="https://oapi.dingtalk.com/robot/send?access_token=bd5ed0e5689123456789" 
 #说明:这里改为自己创建的机器人的webhook的值
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
f=open("/var/log/zabbix/dingding.log","a+")
else:
f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))
f.close()           

可能用到相关中间件

yum -y install epel-release
yum install python-pip -y && pip install requests           

4/添加执行权限

chmod +x dingding.py
python dingding.py 主01 主01 主01 #这测试会在钉钉群里报警           

5/配置zabbix

管理->“报警媒介类型”,如图:

{ALERT.SENDTO}   {ALERT.SUBJECT}    {ALERT.MESSAGE}           
zabbix钉钉告警

6/配置触发器

配置->动作->触发器(创建动作),如图:

zabbix钉钉告警

操作

zabbix钉钉告警
默认标题:
故障:Host{IPADDRESS} ls:{TRIGGER.STATUS}
消息内容:
主机名:{HOST.NAME}
告警主机名:{HOSTNAME1}
告警IP地址:{IPADDRESS}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
触发告警项:{TRIGGER.NAME}
监控参数:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}: {ITEM.VALUE}
告警状态:{TRIGGER.STATUS}: {ITEM.VALUE1}
事件ID:{EVENT.ID}           

恢复操作

zabbix钉钉告警
默认标题:
恢复:Host{IPADDRESS} ls:{TRIGGER.STATUS}
消息内容:
主机名:{HOST.NAME}
恢复主机名:{HOSTNAME1}
恢复IP地址:{IPADDRESS}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
触发告警项:{TRIGGER.NAME}
监控参数:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}: {ITEM.VALUE}
恢复状态:{TRIGGER.STATUS}: {ITEM.VALUE1}
事件ID:{EVENT.ID}           

7、用户配置报警:

zabbix钉钉告警