zabbix对接企业微信web机器人发送报警信息-Python
原创
©著作权归作者所有:来自51CTO博客作者ch3nnn的原创作品,请联系作者获取转载授权,否则将追究法律责任
#!/usr/bin/env python2
# -*- coding:utf-8 -*-
"""
zabbix
监控脚本-企业微信机器人
"""
import sys
import getopt
import requests
import traceback
try:
opts, args = getopt.getopt(sys.argv[1:], shortopts='', longopts=['webhook_url=', 'alert_message='])
for opt, value in opts:
if opt == '--webhook_url':
webhook_url = value
elif opt == '--alert_message':
alert_message = value
webhook_header = {
"Content-Type": "application/json",
}
webhook_message = {
"msgtype": "text",
"text": {
"content": alert_message
}
}
requests.post(url=webhook_url, headers=webhook_header, json=webhook_message)
except:
traceback.print_exc(file=open('/tmp/wx.log', 'w+'))
编写完脚本需要就按脚本放到zabbix指定目录下, 脚本位于服务器配置文件中定义的目录中AlertScriptsPath
注意脚本名称就是你脚本的命名的文件名需要注意后缀.py也要加上
添加管理
配置动作
添加信息格式
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
报警主机:{HOST.NAME}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
报警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
报警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}-{ITEM.VALUE}
报警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
恢复操作
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
报警主机:{HOST.NAME}
监控项目:{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}
发送企业微信