Zabbix-微信报警
一、注册企业微信,并进行配置
1、我的企业(获取企业id)
2、创建应用小程序
3、编写告警脚本
cat /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts --- 放置告警脚本
将corpid、appsecret、agentid信息填入即可
[root@Zabbix_server alertscript]# vim Zabbix_WeChat.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
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('/tmp','weixin.log'),
filemode = 'a')
corpid=''
appsecret=''
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[2] + "\n\n" +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)
4、添加执行权限并测试
[root@Zabbix_server alertscript]# chmod +x Zabbix_WeChat.py
在通讯录中点击接收人的信息,复制账号,进行信息发送测试
执行脚本报错问题解决:
- 问题: No module named requests
yum install -y python-pip
pip install requests - 问题: 脚本执行语法
修改添加报警媒介---定义发微信配置
管理→报警媒介类型→创建媒介类型
配置接收微信报警人员
到此就已经配置好了微信报警
将nginx停止让他产生报警,看看微信能不能接收到报警信息
可以看出报警产生后,并未发送到微信
需要将/tmp/weixin.log这个文件属主修改成zabbix才能发送报警
[root@zabbix alertscripts]# chown zabbix.zabbix /tmp/weixin.log
修改完属主后,从动作日志可以看出报警信息已发送到微信