zabbix使用企业微信发送告警

1、简介

zabbix已经使用邮件告警了一段时间了,发现还有微信告警,这里使用了微信公众号进行了告警;

步骤描述:1)申请企业微信(没有企业也可以申请)  2)记录企业公众号的信息,配置脚本,测试脚本   3)配置zabbix的web页面参数,完成监控

未实现的部分:使用公众号可以给特定的用户发送特定信息,这个没实现;

 

2、简介

1)申请企业微信

注意:没有企业也可以申请

首先,在浏览器中搜索“企业微信”,然后注册

zabbix使用企业微信发送告警

 

然后创建应用

zabbix使用企业微信发送告警

zabbix使用企业微信发送告警

最后记录AgentId、Secret、企业ID(企业ID在我的企业中)

zabbix使用企业微信发送告警

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"

zabbix使用企业微信发送告警

 

3)配置zabbix的web页面参数,完成监控

首先配置告警,如下图

zabbix使用企业微信发送告警

 

{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

zabbix使用企业微信发送告警

如下,点击测试,测试告警媒介;

zabbix使用企业微信发送告警

 

给用户添加告警媒介

zabbix使用企业微信发送告警

zabbix使用企业微信发送告警

给告警动作配置目标

zabbix使用企业微信发送告警

zabbix使用企业微信发送告警

 

 

消息内容如下修改:

故障{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)测试截图

zabbix使用企业微信发送告警

 

主要参考)参考1:https://blog.csdn.net/jack_yangyj/article/details/86472013

时间:2020-07-28