zabbix设置钉钉报警
1 添加机器人
在钉钉群里面添加一个机器人
会获取到一个URL:
'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8521f26a4fxxxxxxxxxxxxxx'
2 写一个发送消息的脚本
在zabbix-server端的配置文件zabbix_server.conf中找到报警脚本的配置
AlertScriptsPath=/usr/lib/zabbix/alertscripts
接下来写一个钉钉发送消息的脚本dingding.py,并放到/usr/lib/zabbix/alertscripts目录底下
#!/usr/bin/python3
import requests import json import sys # 告警群,测试环境 url = 'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8521f26a4fxxxxxxxxxxxxxx' def send_msg(msg): """ 发送消息的函数,这里使用阿里的钉钉 :param msg: 要发送的消息 :return: 200 or False """ # url = url program = {"msgtype": "text", "text": {"content": msg}, } headers = {'Content-Type': 'application/json'} try: f = requests.post(url, data=json.dumps(program), headers=headers) except Exception as e: return False return f.status_code def main(): msg = sys.argv[1] send_msg(msg) if __name__ == '__main__': main()
修改脚本权限
chmod 755 /usr/lib/zabbix/alertscripts/dingding.py
3 ZABBIX的设置
创建媒体类型
给用户绑定媒体
创建报警动作
添加好操作是这个样子的
恢复操作和更新操作类似,这里不再赘述!
下面给出告警消息的标题和消息内容格式
操作:
默认标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
当前状态:{TRIGGER.STATUS}
恢复操作:
默认标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
当前状态:{TRIGGER.STATUS}
更新操作:
默认标题:
服务器:{HOST.NAME}: 报警确认
消息内容:
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
添加好的效果
钉钉收到消息的内容