Zabbix 微信公众号报警
之前觉得没必要写这个,这两天有同学问到 zabbix 关于微信告警的相关问题,于是昨天
就注册了一个微信公众号,当做学习交流一下;
首先;我们要明白我们创建微信公众号发送消息到底需要哪些参数,这样我们再创
建时候注意生成就可以了,需要的有如下几个参数:
1、通讯用户:touser
2、用于生成 token 的:corpid,secret
3、用于 ID
开始操作:企业号注册连接:https://qy.weixin.qq.com/cgi-bin/loginpage
1、点击注册,然后选择团队主从即可:
2、创建企业号名称之后,默认需要创建一个通信账号,要是没有可以点击通讯录创建
(touser):
3、点击应用中心,新建应用,消息应用(获取应用 ID):
可以看到已经生成应用 ID:
4、开始添加应用权限,生成 corpid,secret:
点击设置--》权限管理--》进来分组管理的名称和用户用 xiaoluo 即可:
创建之后可以查看看到 corpid 和 secret 了:
然后把应用权限和通讯录权限都添加进去即可,不然可能会报权限错误:
上面的步骤修改通讯录权限,添加我们的用户即可:下面我们用 curl 来测试一下是否可以
1、通过 corpid 和 secret 获取 token,发送 get 请求:
curl
weixin]#
"https://qyapi.weixin.qq.com/cgi-bin/
[root@monitor
gettoken?corpid=wx026430a7e676a190&corpsecret=tbb9lAJRS-tY96qzH0q8hc
1
ecCx563GceEKXTWmrvUQYXb52v90AeVBNxBP1O2dq1"
2
{"access_token":"-z6APpKnSGFgPHNjPgX24Nu9ph7uexsFQOjj2-I8YWZ0F-9_CJ5
CgF2WnkX901Lu","expires_in":7200}
2、通过 tokenid 发送数据:
1 [root@monitor
weixin]#
cat
port_data.py
2
#!/usr/bin/env
python
3
import requests
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_tok
en=WkLoCGsyUk7ItDtwG2P5KqX6EPvhIXlzgc4BbUAROAfjAJBD1ZRebeuIOG-_ylUF
"
data
= {
"touser":
"xiaoluo",
"msgtype":
"text",
"agentid":
1,
"text":
{
"content":
"hello
,xiaoluoge"
},
"safe":"0"
}
r
= requests.post(url,json=data)
print r.status_code
print r.content
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
执行结果:
[root@monitor
1
200
2
weixin]#
python
port_data.py
{"errcode":0,"errmsg":"ok"}
3
到此没问题的话,那么说明微信公众号的收发数据功能已经做好了,接下来就是设
置 zabbix 的步骤了
1、添加媒介,设置成我们的脚本:
备注:{ALERT.SENDATO}和{ALERT.MESSAGE}是两个内置宏。
2、创建动作和执行操作:
3、用户添加媒介:
#备注:xiaoluo 是传参的第一个参数,就是我们创建的用户。
4、脚本:
1
[root@monitor
alertscripts]#
cat
post_data.py
2
#!/usr/bin/env
python
3
#
-*-
coding:
utf-8
-*-