配置微信报警
准备企业微信,直接在网页上登录,要求管理员账号,并且微信要关注企业微信
准备python脚本
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2022
#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('/tmp','weixin.log'),
filemode = 'a')
corpid='ww86e33a92e31cd9ae'
appsecret='txIzfvXtDTojw4SyeSJR3KDdZ4Uw43miJ1rDgkYrcqw'
agentid=1000002
#获取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)
修改python脚本内容,将企业微信上的ID号码对应上
corpid=‘ww86e33a92e31cd9ae’
appsecret=‘txIzfvXtDTojw4SyeSJR3KDdZ4Uw43miJ1rDgkYrcqw’
agentid=1000002
清华云加速下载,因国外的地址比较慢
https://mirror.tuna.tsinghua.edu.cn/help/pypi/
注释:需要python和pip安装
命令行测试报警发送微信
上图的QuYunLong账号就是在企业微信上的ID号码
在微信上就收到次消息提示
测试成功完成之后,tmp路径下会生产为新日志文件(需要将该日志删除,不然zabbix报错:权限拒绝root用户和zabbix用户不同,所以没有往文件里打日志)
在zabbix-server上配置微信报警
python脚本放在路径下:/usr/lib/zabbix/alertscripts
并且给python脚本加一个执行权限
创建媒体类型
配置报警媒介类型
上面的基本参数就是从官网上查找的,将参数添加上即可;
地址:https://www.zabbix.com/documentation/3.0/en/manual/introduction/whatsnew300#custom-parameter-support-for-alert-scripts
配置收告警信息
根据测试打开5个终端触发报警,微信发送成功
手机微信接收成功