天天看點

通過微信企業号發送 zabbix 報警

最近飛信不能用了…zabbix報警無法收到短信 … 

其實搭建的方法很簡單,

微信

官網的API文檔也非常詳細了.隻是之前網上沒有找到具體的文檔..自己饒了不少彎路..

剛開始用微信公衆平台試了下..有一個非官網的sdk..可以模拟登陸..但是需要關注的使用者48小時内和公衆号有過互動…這個顯然是不行的…不然每天早上起床還得記得往自己的公衆号上面發個消息 …..才能收到發出來的報警消息。

相關連結: http://wechat-python-sdk.readthedocs.org/zh_CN/master/

後來又去官網看了下..點注冊的時候發現有企業版的…試試的心态點了下..于是神奇的事情發生了…

剛才發現還是有個限制。。。但是還好..目前有3個賬号 每天可發送90條.基本夠用 

通過微信企業号發送 zabbix 報警

好了 進入正題。。以下主要針對發送資訊進行設定,具體後面可以根據自己需要進行調整,功能還是很豐富的。

1. 首先要自己申請一個微信企業号(貌似一個人可以申請好幾個,我

測試

的時候同樣的資訊申請了2個沒問題)。團體模式的 三分鐘就ok

微信企業号官網連結:  https://qy.weixin.qq.com/

申請賬号就不細說了,填下自己的資訊然後用綁定了自己銀行卡的微信掃一下..注意下面幾個地方就ok: 

通過微信企業号發送 zabbix 報警
通過微信企業号發送 zabbix 報警

2.申請完畢後登陸進去(每次登陸都會要求微信掃碼認證,很惡心,但是很安全) 

注意:主要上傳logo..不然發消息的時候會傳回報錯…(應該算是bug了…) 

通過微信企業号發送 zabbix 報警

這時候先把自己配置好 然後加關注. 

通過微信企業号發送 zabbix 報警

這裡設定好郵箱..可以發送二維碼到郵箱邀請關注.後期可能會比較有用 

通過微信企業号發送 zabbix 報警

上面在通訊錄裡面加好自己以後,直接掃描設定裡面的二維碼.進行關注. 

通過微信企業号發送 zabbix 報警

ok。。。關注完成了..那麼下面需要建立一個管理組,生成Corpip和Secret (這裡說明下,,,後面通過api進行調用時,會通過corpip和Secret生成認證token.以此作為憑證進行身份确認.預設過期時間為7200秒) 

通過微信企業号發送 zabbix 報警
通過微信企業号發送 zabbix 報警

然後權限管理裡面加上自己,會發送郵件到對應郵箱,進行确認就ok

通過微信企業号發送 zabbix 報警

頁面配置都ok,然後根據官網文檔的API接口進行測試..我這裡就不示範了 具體可以去看官方API

http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8
通過微信企業号發送 zabbix 報警

然後寫了一個簡單的

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

  1. 将 sendwechat.py 腳本放到zabbix安裝目錄下的share/zabbix/alertscripts
  2. 添加報警類型
    通過微信企業号發送 zabbix 報警
    通過微信企業号發送 zabbix 報警
    通過微信企業号發送 zabbix 報警
  3. 添加聯系人,這裡的聯系人,對應之前設定的userid 
    通過微信企業号發送 zabbix 報警

最後進行測試.根據自己的情況進行調整.

上一篇: React Diff了解
下一篇: Java流程控制

繼續閱讀