一、新建媒介类型和 参数添加如下图:
二、添加消息模板
故障问题:
参数值:
##故障 告警主机:{HOST.NAME} 告警信息:{TRIGGER.NAME} 告警项目:{ITEM.NAME} 告警时间:{EVENT.DATE}_{EVENT.TIME} 当前状态:故障 值={ITEM.VALUE} 故障已持续{EVENT.AGE},请尽快处理 事件ID:{EVENT.ID}
故障恢复:
参数值:
##恢复 告警主机:{HOST.NAME} 告警信息:{TRIGGER.NAME} 告警项目:{ITEM.NAME} 告警时间:{EVENT.DATE}_{EVENT.TIME} 恢复时间:{EVENT.RECOVERY.DATE}_{EVENT.RECOVERY.TIME} 当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE} 故障共持续{EVENT.AGE} 事件ID:{EVENT.ID}
还有其他选项供你选择,可视自己情况添加:
三、利用脚本传参发送至钉钉(这里利用的是python2)
如果环境是python3的需要更改一下脚本格式
dnf install python2
dnf install python2-requests
vim /usr/local/share/zabbix/alertscripts/dingding.py
#!/usr/bin/env python2 #coding:utf-8 #zabbix钉钉报警 import requests,json,sys,os,datetime webhook="https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX" 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("/usr/local/zabbix/log/dingding.log"): f=open("/usr/local/zabbix/log/dingding.log","a+") else: f=open("/usr/local/zabbix/log/dingding.log","w+") f.write(" "+"--"*30) if x.json()["errcode"] == 0: f.write(" "+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+" "+str(text)) f.close() else: f.write(" "+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + " " + str(text)) f.close()
创建日志文件并授权写
mkdir /usr/local/zabbix/log/
vim /usr/local/zabbix/log/dingding.log
chmod 766 /usr/local/zabbix/log/dingding.log
测试发送
/usr/local/share/zabbix/alertscripts/dingding.py 15xxxxxx 监控 '监控'
cat /usr/local/zabbix/log/dingding.log
2020-09-08 10:35:16.814385 15xxxxxxxx 发送成功
监控
四、编辑用户动作
都设置完成后回到媒体介质类型点击测试,看是否发送成功
网友的钉钉报警设置:
1,申请钉钉账号,登录账号。
2,创建一个告警群组,添加一个机器人。
记录下来这个webhook地址。把他填上去脚本webhook=后面