本文主要是介绍通过微信企业号发送zabbix报警..,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近飞信不能用了…zabbix报警无法收到短信 …
其实搭建的方法很简单,微信官网的API文档也非常详细了.只是之前网上没有找到具体的文档..自己饶了不少弯路..
刚开始用微信公众平台试了下..有一个非官网的sdk..可以模拟登陆..但是需要关注的用户48小时内和公众号有过互动…这个显然是不行的…不然每天早上起床还得记得往自己的公众号上面发个消息 …..才能收到发出来的报警消息。
相关链接:http://wechat-python-sdk.readthedocs.org/zh_CN/master/
后来又去官网看了下..点注册的时候发现有企业版的…试试的心态点了下..于是神奇的事情发生了…
刚才发现还是有个限制。。。但是还好..目前有3个账号 每天可发送90条.基本够用
好了 进入正题。。以下主要针对发送信息进行设置,具体后面可以根据自己需要进行调整,功能还是很丰富的。
1. 首先要自己申请一个微信企业号(貌似一个人可以申请好几个,我测试的时候同样的信息申请了2个没问题)。团体模式的 三分钟就ok
微信企业号官网链接: https://qy.weixin.qq.com/
申请账号就不细说了,填下自己的信息然后用绑定了自己银行卡的微信扫一下..注意下面几个地方就ok:
2.申请完毕后登陆进去(每次登陆都会要求微信扫码认证,很恶心,但是很安全)
注意:主要上传logo..不然发消息的时候会返回报错…(应该算是bug了…)
这时候先把自己配置好 然后加关注.
这里设置好邮箱..可以发送二维码到邮箱邀请关注.后期可能会比较有用
上面在通讯录里面加好自己以后,直接扫描设置里面的二维码.进行关注.
ok。。。关注完成了..那么下面需要创建一个管理组,生成Corpip和Secret (这里说明下,,,后面通过api进行调用时,会通过corpip和Secret生成认证token.以此作为凭证进行身份确认.默认过期时间为7200秒)
然后权限管理里面加上自己,会发送邮件到对应邮箱,进行确认就ok
页面配置都ok,然后根据官网文档的API接口进行测试..我这里就不演示了 具体可以去看官方API
http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8
然后写了一个简单的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 resdef send_message(self,userlist,content,agentid=0):self.userlist = userlistself.content = contenturl = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % self.tokendata = {"touser": "","toparty": "","totag": "","msgtype": "text","agentid": "0","text": {"content": ""},"safe":"0"} data['touser'] = userlist data['agentid'] = agentiddata['text']['content'] = contentdata = json.dumps(data,ensure_ascii=False)# print datares = self.url_req(url,method='post',data=data)if res['errmsg'] == 'ok':print 'send sucessed!!!'else:print 'send failed!!'print resif __name__ == '__main__': userlist = sys.argv[1]content = sys.argv[2:]content = '\n'.join(content)Corpid = 'xxxxxxxxxx' #此处对应修改Secret = 'xxxxxxxxxx' #此处对应修改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
最后进行测试.根据自己的情况进行调整.
这篇关于通过微信企业号发送zabbix报警..的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!