一、钉钉机器人配置
1.1 准备机器人
1.在右上角点击机器人
2.添加自定义机器人
3.将webhook内容保存下来
1.2 编写机器人发送消息脚本dingtalk.py
#!/usr/bin/env python3
import json
import requests
import sys
def send_msg(url, reminders, msg):
headers = {'Content-Type': 'application/json;charset=utf-8'}
data = {
"msgtype": "text", # 发送消息类型为文本
"at": {
"atMobiles": reminders,
"isAtAll": False, # 不@所有人
},
"text": {
"content": msg, # 消息正文
}
}
r = requests.post(url, data=json.dumps(data), headers=headers)
return r.text
if __name__ == '__main__':
msg = sys.argv[1]
reminders = []
url = 'https://oapi.dingtalk.com/robot/send?access_token=37eef7fa8fd14bed5a76f240486ff9c8bce7d813d0f9c315dc2f2837c0ffbe37'
print(send_msg(url, reminders, msg))
1.3 测试机器人自动发送消息脚本
alertscripts]# python3 dingtalk.py 'hello world!'
二、zabbix配置
alertscripts]# vim /usr/local/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/share/zabbix/alertscripts/
//配置脚本路径
alertscripts]# killall zabbix_server
alertscripts]# zabbix_server //重启服务
alertscripts]# ls
dingtalk.py // 把dingtalk.py放到这个目录下
2.1 创建报警媒介
2.2 绑定到用户
2.3 创建动作
内容如下:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}
服务器:{HOST.NAME}: 报警确认
{
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}
依次对恢复和确认操作设置
钉钉收到消息: