zabbix 微信报警
企业有需求做zabbix的微信报警,开始尝试搭建。搭建方法也很多,微信公众平台的api文档写的也全,但是python和zabbix不熟也造成了很多弯路
1 首先到微信上注册公众号 地址(https://mp.weixin.qq.com),选择企业号(可以无限发送信息。。)
2 当注册完成后,登陆账号,这个时候需要查看微信api文档了(http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5)
3 根据文档我们知道,微信主动报警,微信api接口需要做2步。
3.1 用CorpID和Secret来换取获取AccessToken,api文档(http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8)
3.2 利用获取到的accesstoken,来发送信息,发送格式(使用Https协议、JSON数据包格式)参照api文档(http://qydev.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E7%B1%BB%E5%9E%8B%E5%8F%8A%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F)
4 我这里用的python下的脚本,写的不好,请大神勿笑(O(∩_∩))
#coding:utf-8
import urllib2,json,sys
def weixin_conn():
weixinurl=urllib2.urlopen('https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=“填写自己的 corpid”&corpsecret“填写自己的secret”').read()
weixinurl_return=json.loads(weixinurl)
weixin_accesstoken=weixinurl_return['access_token']
return weixin_accesstoken
#print weixin_accesstoken
def http_put(token):
msg = sys.argv[3]
#url_message=urllib2.urlopen('https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' %(weixin_accesstoken)).read()
url_message='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' %(token)
values={
"touser": "@all",
"toparty": "@all",
"totag": "@all",
"msgtype": "text",
"agentid": "2",
"text": {
"content": msg
},
"safe":"0"
}
jdata = json.dumps(values)
request = urllib2.Request(url_message, jdata)
request = urllib2.urlopen(request)
return request.read()
if __name__ == '__main__':
weixin_token=weixin_conn()
response_data = http_put(weixin_token)
5 关联zabbix,在zabbix_server.conf中加入,并将刚刚的脚本放入
6 添加媒体类型
7 关联action
8 报警的用户中的media类型切勿忘记填写
9完成后重启zabbix server,zabbix报警就完成了
10 微信api还有其他好多好玩东西,以后再学习学习╮(╯▽╰)╭