1、條件python
首先你得有一個微信公衆號,而且是能夠有發送消息的接口。而後你得有個腳本去調用微信的api。json
這裏感謝一下微信。使咱們運維人員的報警方式多了一種。。。 (同事們不要怪我哈。)api
以後能夠參考下zabbix 的搭建,而後瞭解下腳本報警,以後再考慮報警方式的多樣化。微信
2、申請公衆號:架構
1.申請頁面:運維
2.申請時記得選擇團隊。post
3.在組織架構中,新建二級組,並添加相關人員,注意添加人員的帳號要記清楚。後期zabbix發送郵件時須要填寫用戶名。(悄悄告訴你,也能夠填寫@all 哦。)學習
4.這裏有個組的ID:2,這個很重要哈。測試
5.新建應用,應用類型選擇消息型網站
6.選擇部門
7.下面是我新建的應用權限。
8.如今去設置-->功能設置-->權限管理,最重要的是CorpID,Secret 兩個密鑰,後期腳本里會利用它倆生成一個token ,而後利用token 去發送消息,具體參見微信接口文檔:http://qydev.weixin.qq.com/debug
9.下面是開始微信的腳本上場了,額,具體的來源我忘記是哪一個網站弄來的了。等找到後再放上連接。
3、微信腳本:
#!/usr/bin/env python # -*- coding: utf-8 -*- import urllib,urllib2,json import sys reload(sys) sys.setdefaultencoding( "utf-8" ) class WeChat(object): __token_id = '' # init attribute def __init__(self,url): self.__url = url.rstrip('/') self.__corpid = '你的Corpid' self.__secret = '你的SecretID' # Get TokenID def authID(self): params = {'corpid':self.__corpid, 'corpsecret':self.__secret} data = urllib.urlencode(params) content = self.getToken(data) try: self.__token_id = content['access_token'] # print content['access_token'] except KeyError: raise KeyError # Establish a connection def getToken(self,data,url_prefix='/'): url = self.__url + url_prefix + 'gettoken?' try: response = urllib2.Request(url + data) except KeyError: raise KeyError result = urllib2.urlopen(response) content = json.loads(result.read()) return content # Get sendmessage url def postData(self,data,url_prefix='/'): url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id request = urllib2.Request(url,data) try: result = urllib2.urlopen(request) except urllib2.HTTPError as e: if hasattr(e,'reason'): print 'reason',e.reason elif hasattr(e,'code'): print 'code',e.code return 0 else: content = json.loads(result.read()) result.close() return content # send message def sendMessage(self,touser,message): self.authID() data = json.dumps({ 'touser':touser, 'toparty':"2", 'msgtype':"text", 'agentid':"2", 'text':{ 'content':message }, 'safe':"0" },ensure_ascii=False) response = self.postData(data) print response if __name__ == '__main__': a = WeChat('https://qyapi.weixin.qq.com/cgi-bin') a.sendMessage(sys.argv[1],sys.argv[3])
注意:須要修改4處:
1.14行、15行
2.65行、67行
說明下,67行是你的組部門id號,agentid是你應用id號。。。。 記得修改腳本權限,屬主,放到和mail.sh同級目錄下。
咱們來測試下哇
[root@zabbix-6 alertscripts]# ./weixin.py hanyifeng test test {u'errcode': 0, u'errmsg': u'ok'}
4、測試微信報警
1.添加媒介這步驟就不說了,和以前添加腳本方式同樣。不會的能夠參考前面的文章哈。
2.下面把10.8.0.13這臺主機的zabbix-agent服務關掉。看下你的微信吧
本文章屬於本做者原創,遵循開源協議,若有轉載,請註明本連接的源地址。謝謝 繼續更新中!!
若是遇到問題或者故障了,能夠留言哈,一塊兒學習進步。