#!/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也要加上 

添加管理

zabbix对接企业微信web机器人发送报警信息-Python_服务器

 配置动作

zabbix对接企业微信web机器人发送报警信息-Python_服务器_02

添加信息格式

zabbix对接企业微信web机器人发送报警信息-Python_服务器_03

 

服务器:{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}

 恢复操作

zabbix对接企业微信web机器人发送报警信息-Python_微信_04

服务器:{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}

 发送企业微信

zabbix对接企业微信web机器人发送报警信息-Python_微信_05