1.申请企业微信机器人
建企业微信群-添加机器人-新创建一个机器人-机器人名称-复制webhook信息
2.编写脚本
zabbix_server.conf添加配置:AlertScriptsPath=/usr/lib/zabbix/alertscripts
注意:执行权限
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!/usr/bin/python3 # _*_coding:utf-8 _*_ """ 企业微信机器人 """ import sys import requests def send_message(web_hook_url, subject, content): data = { "msgtype": "markdown", "markdown": { "content": "{0}\n{1}".format(subject, content) } } try: r = requests.post(web_hook_url, json=data) response = r.json() errcode = response["errcode"] if errcode != 0: print("errcode: {0}, errmsg: {1}".format(errcode, response["errmsg"])) sys.exit(errcode) except Exception as e: print(e) sys.exit(1) def main(): if len(sys.argv) < 3: print("3 parameters are required: web_hook_url, subject, content") sys.exit(1) web_hook_url = sys.argv[1] subject = sys.argv[2] content = sys.argv[3] # user = "name.tong" # user = "18512345678" # content = "测试通知4" web_hook_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=***' send_message(web_hook_url, subject, content) if __name__ == '__main__': main()
3.管理-报警媒介类型-创建媒体类型
名称:*** 类型:脚本 脚本名称:实际名称
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
4.管理-用户-admin用户(可以创建个用户)-报警媒介-添加
5.配置-动作-Trigger actions-创建动作
操作:
主题:`【告警通知】:`发生告警
消息:
>**{TRIGGER.NAME}**
>告警时间: {EVENT.DATE} {EVENT.TIME}
告警主机:{HOST.NAME}
告警主机IP:[{HOST.IP}]({HOST.IP})
当前值:{ITEM.LASTVALUE}
**{EVENT.STATUS}**
操作细节:
主题:<font color="info">【恢复通知】:</font>告警已恢复
>**{TRIGGER.NAME}**
>告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
告警主机:{HOST.NAME}
告警主机IP:[{HOST.IP}]({HOST.IP})
告警时长:{EVENT.AGE}
当前值:{ITEM.LASTVALUE}
**{EVENT.STATUS}**
更新操作:
主题:Updated problem: {EVENT.NAME}
消息:
{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}. {EVENT.UPDATE.MESSAGE} Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.