实现思路
申请微信企业号
为什么使用微信企业号
- 首先公众号任何人都可以关注,关注即可以收到告警,容易造成信息泄露
- 企业号需要管理员先创建企业通讯录,才可以关注,更加私密
- 编写微信通知脚本
- zabbix配置微信通知
步骤
注册微信企业号
链接:https://work.weixin.qq.com/wework_admin/register_wx?from=myhome
根据提示注册完成后,绑定管理员微信创建应用

创建完成后需要记录以下关键信息
- AgentId、Secret、Corpid
- 配置脚本,脚本需要python3环境,需要requests库
vim weixin_alerts.py ```python!/usr/local/bin/python3
-- coding: utf-8 --
author: liangliang.yu
date: 2019-06-21
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/zbx_script’, ‘weixin.log’), filemode=’a’)
corpid = ‘ww28d5a8015ec77135’ appsecret = ‘81WVpJo5Zm0gPHLBr2nvmiOTMcLGEAHdzOL8h5SW8Bw’ agentid = 1000002
获取accesstoken
token_url = ‘http://qyapi.weixin.qq.com:7505/cgi-bin/gettoken?corpid=‘ + corpid + ‘&corpsecret=’ + appsecret req = requests.get(token_url) accesstoken = req.json()[‘access_token’]
发送消息
msgsend_url = ‘http://qyapi.weixin.qq.com:7505/cgi-bin/message/send?access_token=‘ + accesstoken
touser = sys.argv[1] subject = sys.argv[2] message = sys.argv[3]
params = { “touser”: touser, “msgtype”: “text”, “agentid”: agentid, “text”: { “content”: message }, “safe”: 0 }
req = requests.post(msgsend_url, data=json.dumps(params))
print(req.text) print(‘sendto:’ + touser + ‘;;subject:’ + subject + ‘;;message:’ + message) logging.info(‘sendto:’ + touser + ‘;;subject:’ + subject + ‘;;message:’ + message) ```
注意:为了调试方便增加了日志记录,如果配置到报警中,需要给这个日志文件zabbix用户可写权限,否者微信通知会失败。
- zabbix配置接入微信告警
报警媒介类型配置
{ALERT.SENDTO}:发送给某用户
{ALERT.SUBJECT}:标题
{ALERT.MESSAGE}:发送告警信息添加用户
指定用户的收件人及使用的报警媒介,收件人必须为企业号中的唯一用户ID
配置告警动作

- 接收实例

