zabbix使用企业微信发送告警
1、简介
zabbix已经使用邮件告警了一段时间了,发现还有微信告警,这里使用了微信公众号进行了告警;
步骤描述:1)申请企业微信(没有企业也可以申请) 2)记录企业公众号的信息,配置脚本,测试脚本 3)配置zabbix的web页面参数,完成监控
未实现的部分:使用公众号可以给特定的用户发送特定信息,这个没实现;
2、简介
1)申请企业微信
注意:没有企业也可以申请
首先,在浏览器中搜索“企业微信”,然后注册
然后创建应用
最后记录AgentId、Secret、企业ID(企业ID在我的企业中)
2)记录企业公众号的信息,配置脚本,测试脚本
[[email protected] ~]# cat /etc/zabbix/zabbix_server.conf|grep alert|grep -v '#' AlertScriptsPath=/usr/lib/zabbix/alertscripts [[email protected] ~]# more /usr/lib/zabbix/alertscripts/wechat.py #!/usr/bin/env python #-*- coding: utf-8 -*- #date: 2018-04-20 #comment: zabbix接入微信报警脚本 import requests import sys import os import json import logging #logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',datefmt = '%a, %d %b %Y %H:%M:%S',filename = os.path.join('/data/zabbix','weixin.log'),filemode = 'a') corpid='xxxx' #企业ID appsecret='xxxxxxxxxxxxxxxxxxxxx' #Secret agentid=1000002 #agentID #获取accesstoken token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret req=requests.get(token_url) accesstoken=req.json()['access_token'] #发送消息 msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken touser=sys.argv[1] subject=sys.argv[2] #toparty='3|4|5|6' message=sys.argv[3] params={ "touser": touser, # "toparty": toparty, "msgtype": "text", "agentid": agentid, "text": { "content": message }, "safe":0 } req=requests.post(msgsend_url, data=json.dumps(params)) logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message) [[email protected] ~]#
测试脚本
chmod +x wechat.py ./wechat.py 用户名称或部门ID alertTest "This is test message"
3)配置zabbix的web页面参数,完成监控
首先配置告警,如下图
{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
如下,点击测试,测试告警媒介;
给用户添加告警媒介
给告警动作配置目标
消息内容如下修改:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID} 恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
4)测试截图
主要参考)参考1:https://blog.****.net/jack_yangyj/article/details/86472013
时间:2020-07-28