一、钉钉群组添加自定义机器人
群设置-》群智能助手-》添加机器人
安全设置必须配置一个此处用的IP地址,填写zabbixserver的外网服务器地址
添加完成机器人后请把webhook保存,留在脚本中使用。
二、 zabbix server 添加预警脚本
1、脚本路径在zabbix_server.conf文件里面所指定AlertScriptsPath目录下
vi /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/python3
import requests
import json
import sys
url = '钉钉webhookurl'
def send_msg(msg):
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()
2、测试脚本
给脚本增加执行权限 chmod 755 dingding.py
./dingding.py “ERROR”
三、zabbix web配置
1》 添加报警媒介类型
2 》 添加联系人报警媒介
添加后点击更新按钮
3》添加钉钉报警动作
custom message
# 操作
服务器:{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}
四、 结果展示: