您的位置:首页 > 移动开发 > 微信开发

通过微信企业号发送zabbix报警

2016-07-15 08:40 417 查看




采用微信报警时,管理员账户中必须要设置"示警媒体"一项,"收件人"一项可随便填写一下。其它成员则可以不用添加设置。

-------------------------------------------------------------------------------------------------------------------------------------

1. 首先要自己申请一个微信企业号(貌似一个人可以申请好几个,我测试的时候同样的信息申请了2个没问题)。团体模式的 三分钟就ok


微信企业号官网链接: https://qy.weixin.qq.com/

申请账号就不细说了,填下自己的信息然后用绑定了自己银行卡的微信扫一下..注意下面几个地方就ok:





2.申请完毕后登陆进去(每次登陆都会要求微信扫码认证,很恶心,但是很安全)
注意:主要上传logo..不然发消息的时候会返回报错…(应该算是bug了…)



这时候先把自己配置好 然后加关注.



这里设置好邮箱..可以发送二维码到邮箱邀请关注.后期可能会比较有用



上面在通讯录里面加好自己以后,直接扫描设置里面的二维码.进行关注.



ok。。。关注完成了..那么下面需要创建一个管理组,生成Corpip和Secret (这里说明下,,,后面通过api进行调用时,会通过corpip和Secret生成认证token.以此作为凭证进行身份确认.默认过期时间为7200秒)





然后权限管理里面加上自己,会发送邮件到对应邮箱,进行确认就ok



页面配置都ok,然后根据官网文档的API接口进行测试..我这里就不演示了 具体可以去看官方API





然后写了一个简单的Python 根据位置变量传入要发送的信息

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import simplejson as json
import sys
class weChat:
def __init__(self,url,Corpid,Secret):
url = '%s/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (url,Corpid,Secret)
res = self.url_req(url)
self.token = res['access_token']

def url_req(self,url,method='get',data={}):
if method == 'get':
req = urllib2.Request(url)
res = json.loads(urllib2.urlopen(req).read())
elif method == 'post':
req = urllib2.Request(url,data)
res = json.loads(urllib2.urlopen(req).read())
else:
print 'error request method...exit'
sys.exit()
return res
def send_message(self,userlist,content,agentid=0):
self.userlist = userlist
self.content = content
url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % self.token
data = {
"touser": "",
"toparty": "1",
"totag": "",
"msgtype": "text",
"agentid": "1",
"text": {
"content": ""
},
"safe":"0"
}
data['touser'] = userlist
data['agentid'] = agentid
data['text']['content'] = content
data = json.dumps(data,ensure_ascii=False)
#   print data
res = self.url_req(url,method='post',data=data)
if res['errmsg'] == 'ok':
print 'send sucessed!!!'
else:
print 'send failed!!'
print res

if __name__ == '__main__':
userlist = sys.argv[1]
content = sys.argv[2:]
content = '\n'.join(content)
Corpid = 'wx647eb76cd7038c3d'
Secret = 'DTmfHEEQw1bwLG5T1MMtABzrJe1Dhon54s4XvIS8H0rHpZ09L7E0bJg0nL8HFwMt'
url = 'https://qyapi.weixin.qq.com'

wechat = weChat(url,Corpid,Secret)
wechat.send_message(userlist,content)


3.关联zabbix

将 sendwechat.py 脚本放到zabbix安装目录下的share/zabbix/alertscripts

添加警类型






添加联系人,这里的联系人,对应之前设置的userid


最后进行测试.根据自己的情况进行调整.

参考资料:http://blog.csdn.net/u011744758/article/details/45363125
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: