最近飛信不能用了…zabbix報警無法收到短信 …
其實搭建的方法很簡單,
微信官網的API文檔也非常詳細了.隻是之前網上沒有找到具體的文檔..自己饒了不少彎路..
剛開始用微信公衆平台試了下..有一個非官網的sdk..可以模拟登陸..但是需要關注的使用者48小時内和公衆号有過互動…這個顯然是不行的…不然每天早上起床還得記得往自己的公衆号上面發個消息 …..才能收到發出來的報警消息。
相關連結: http://wechat-python-sdk.readthedocs.org/zh_CN/master/
後來又去官網看了下..點注冊的時候發現有企業版的…試試的心态點了下..于是神奇的事情發生了…
剛才發現還是有個限制。。。但是還好..目前有3個賬号 每天可發送90條.基本夠用
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuImYxUmZzQDO2Q2MyE2YiFGMiNWO0UjZlRWY4gTNhFjYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
好了 進入正題。。以下主要針對發送資訊進行設定,具體後面可以根據自己需要進行調整,功能還是很豐富的。
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 urllib2import simplejson as jsonimport sysclass 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": "", "totag": "", "msgtype": "text", "agentid": "0", "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 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)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
3.關聯zabbix
- 将 sendwechat.py 腳本放到zabbix安裝目錄下的share/zabbix/alertscripts
- 添加報警類型
通過微信企業号發送 zabbix 報警 通過微信企業号發送 zabbix 報警 通過微信企業号發送 zabbix 報警 - 添加聯系人,這裡的聯系人,對應之前設定的userid
通過微信企業号發送 zabbix 報警
最後進行測試.根據自己的情況進行調整.