一、微信机器人
1、在企业微信中新建微信群,群内创建自定义机器人,并复制webhook地址;
2、如果常用企业微信即可不必进行后续:
浏览器进入企业微信管理后台,选择我的企业---微信插件,可用个人微信扫描该二维码,关注后个人微信即可收取该企业微信群内机器人发的消息。
实现效果:个人微信中会有一块单独的位置类似订阅号一样,在个人微信中收看企业微信消息:
综上,此时我们应该有一个企业微信群,群内创建了自定义机器人,并复制了机器人webhook地址。
二、zabbix服务器配置:
#!/usr/bin/python3
# -*- coding
: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type'
: 'application/json;charset=utf-8'}
def msg(text):
json_text = {
"msgtype"
: "text",
"text": {
"content": text,
"mentioned mobile list": ["XXXX"] #在群内告警时@的对象
}
}
print(requests.post(api_url, json.dumps(json_text), headers=headers).content)
if __name__ == '__main__':
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX" #webhook地址
text = sys.argv[1]
msg(text)
将上面脚本放在zabbix服务器/usr/lib/zabbix/alertscripts/ 目录下,新建py文件,自行命名,如wechat.py,并使用chmod 赋予脚本执行权限;
三、zabbix web端配置
新增报警媒介:名称自定义,类型选脚本,脚本名称需和上一步/usr/lib/zabbix/alertscripts/ 目录下的文件名一致,参数填如下消息内容参数即可:
{ALERT.MESSAGE} #消息内容
添加后可测试新建的微信媒介运行是否正常,脚本是否报错等,一般会有没有requests库的提示,在服务端安装下即可。
定义告警内容:即新建动作:
添加触发器动作:选择需要通知告警内容的组和用户后,定义告警内容:
故障告警:{EVENT.NAME}
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
定义故障恢复后群内同步消息内容:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障已恢复!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{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}
最后配置用户报警媒介:
类型选择刚才创建的企业微信告警媒介,收件人填写机器人所在群成员的任何可以作为关键信息的内容,例如群名称、成员名称、成员手机号等,启用时段和告警程度按照需求选择,然后启用添加即可
---------------配置完成-----------------