1、申请一个企业微信, 官网链接
2、群内申请一个机器人
下载电脑版企业微信,登录后,在要接收群消息的群里,点击右上角三个点,添加机器人后,保存机器人的webhook地址
上传应用logo,填写应用名称,选择可见范围
3.创建发送消息的脚本
在zabbix-server 机器上,/usr/local/share/zabbix/alertscripts 目录下创建一个wechat-webhook.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers={'Content-Type': 'application/json;charset=utf-8'}
api_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=****************"
def msg(text):
json_text={
"msgtype": "text",
"text": {
"content": text
}
}
requests.post(api_url,json.dumps(json_text),headers=headers)
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
脚本编写完成之后需要为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x wechat-webhook.py
4、测试
yum -y install python3 phthon3-pip
pip3 install requests
命令行测试脚本能否成功执行
]# ./wechat-webhook.py "测试"
会在微信企业号中收到我们创建的应用所发出的消息
5.在zabbix web页面上添加告警媒介
问题 模板配置如下
主题: 故障发生 {EVENT.NAME}
消息:
**************错误**************
事件名称:{EVENT.NAME}
告警地址:{HOST.NAME}
监控项目:{ITEM.NAME}
监控取值:{EVENT.VALUE}
告警严重性:{EVENT.SEVERITY}
当前状态:{EVENT.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
问题恢复 模板配置如下
主题: 故障恢复 {TRIGGER. NAME} {EVENT.DURATION}: {EVENT.NAME}
消息:
**************恢复**************
事件名称:{EVENT.NAME}
告警地址:{HOST.NAME}
监控项目:{ITEM.NAME}
监控取值:{EVENT.RECOVERY.VALUE}
告警严重性:{EVENT.SEVERITY}
当前状态:{EVENT.RECOVERY.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.RECOVERY.ID}
添加消息模板后,点击更新
6.给相应的用户配置邮件告警
7.设置触发器,通知人员
8.测试
在zabbix客户端上停止nginx,看企业微信群内是否报警
[root@zabbix-web01 ~]# systemctl stop nginx
重新启动nginx,看企业微信群内是否报警