身为小白的我在历经被百度查到的资料坑了无数次之后,终于找到了一个正确的文档,下面是我自己的对于安装过程的理解与阐述。
一、申请微信企业号,获取以下数据。
企业ID:(在我们企业最下方可以看到)
应用的AgentId与Secret:(在点击新建的应用后可以看到该信息)
二、配置zabbix-server端
1.编写微信报警脚本
微信脚本的位置在zabbix-server的配置文件中有,当然也可以手动修改配置文件中的路径,脚本名称weixin.py,以下为脚本内容:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: yanggd
#date: 2018-04-20
#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('/usr/local/zabbix/share/zabbix/alertscripts','weixin.log'),
filemode = 'a')
corpid='wwbbaxxxxxx'
appsecret='m2HUZXUxxxxxxxxxx'
agentid=1000004
#获取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[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)
其中红色字体的部分需要看官们注意,千万别进坑了。
然后可以执行脚本进行测试脚本+用户名+参数2+参数3
2.zabbix配置
(1)在管理->报警媒介类型->创建媒体类型
名称自己定义,类型选择脚本脚本名称与上面创建的微信脚本名称相同,脚本参数我使用了三个依次为
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
完成后点击添加即可。
(2).在配置->动作->创建动作
需要注意的是填写操作内容时添加按钮是否整个动作的添加还是单个操作的添加。
(3).给用户添加报警媒介 管理->用户->报警媒介
这里需要注意收件人是企业微信号中通讯录的用户账号。
笔者使用的文档如下