您的位置:首页 > 移动开发 > 微信开发

zabbix配置企业微信报警

2021-04-23 22:08 1066 查看

前提:安装配置好zabbix-server 安装php 、 pip
实现zabbix通过微信报警的方式也是通过脚本来实现,与邮件报警不同的是,脚本调用的微信的相关接口的获取相对复杂一点
1、申请一个微信公众号(企业号),为了获得三个数据(corpid、appsecret、agentid)用于写脚本参数。


接口调用测试
点击:API文档——>开发者工具——>接口调试工具,找不到就直接点这个地址
http://work.weixin.qq.com/api/devtools/devtool.php
corpid为创建的企业号生成的corpid 2.写脚本 位置/usr/lib/zabbix/alertscripts
cat weixin.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='微信企业号corpid'

appsecret='应用的Secret'

agentid=应用的id

#获取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)

3.脚本编写完成之后需要为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x weixin.py
4.web界面新增报警媒介类型

名称自定义即可,类型选择脚本,脚本名称为所写的脚本的名称weixin.py,脚本的三个参数都是zabbix内置变量,分别为:报警收件人:{ALERT.SENDTO},报警标题:{ALERT.SUBJECT},报警内容:{ALERT.MESSAGE},添加完报警媒介类型后勾选启用.
5.6、配置用户报警媒介信息
配置需要收到微信报警的用户的信息,添加报警媒介,选择上面创建的微信报警,收件人填写上面所说的部门成员的账号,由于是通过微信公众号发送的微信提醒,如果需要为多个用户例如微信企业号中所有用户发送报警,这里收件人的信息就填写为@all

6.测试
命令行测试脚本能否成功执行
[root@zabbix alertscripts]# ./weixin.py 用户id “测试” ‘test’

测试的时候如果出现错误提示缺少requests,解决方法为使用pip进行安装:pip install smtplib
同时在zabbix服务器的后台也生成了微信报警的日志文件/tmp/weixin.log,如果测试不成功可以通过日志来进行查错
命令行测试完成后,如果想要通过zabbix进行触发报警,还需要做的就是将上面生成的日志文件的所属修改为zabbix用户且具有写权限
 chown -R   777 /tmp/weixin.log
  [root@zabbix alertscripts]# ll /tmp/weixin.log    
-rwxr-xr-x 1 zabbix zabbix 35329 6月 13 07:47 /tmp/weixin.log 
到这里微信报警就算大功告成了,接下来就可以愉快的通过zabbix进行触发微信报警了,报警成功触发后可以通过zabbix面板的报表——>动作日志查看

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: