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

在通讯录中点击接收人的信息,复制账号,进行信息发送测试

执行脚本报错问题解决:

  1. 问题: No module named requests
    yum install -y python-pip
    pip install requests
  2. 问题: 脚本执行语法

修改添加报警媒介---定义发微信配置

管理→报警媒介类型→创建媒介类型

配置接收微信报警人员

到此就已经配置好了微信报警

将nginx停止让他产生报警,看看微信能不能接收到报警信息

可以看出报警产生后,并未发送到微信

需要将/tmp/weixin.log这个文件属主修改成zabbix才能发送报警

[root@zabbix alertscripts]# chown zabbix.zabbix /tmp/weixin.log

修改完属主后,从动作日志可以看出报警信息已发送到微信

posted @ 2021-08-30 21:34  Cai_HL  阅读(172)  评论(0编辑  收藏  举报
>