天天看點

zabbix 報警之微信報警

         日常都是短信和郵件的報警,雖然已經可以滿足需求,但是對于現在微信這麼流行的情況下能用微信報警自然更友善,更加迅速和實時,畢竟現在微信基本上天天都會使用,而且流量現在也比較便宜

一、微信設定

1.1 微信号介紹

看 微信·公衆平台 首頁介紹也看到微信·公衆平台 有三種類型

  • 服務号
    • 公衆平台服務号,是公衆平台的一種帳号類型,旨在為使用者提供服務。
    • 1個月(自然月)内僅可以發送4條群發消息。
    • 發給訂閱使用者(粉絲)的消息,會顯示在對方的聊天清單中。相對應微信的首頁。
    • 服務号會在訂閱使用者(粉絲)的通訊錄中。通訊錄中有一個服務号的檔案夾,點開可以檢視所有服務号。
    • 服務号可申請自定義菜單。
  • 訂閱号
    • 公衆平台訂閱号,是公衆平台的一種帳号類型,旨在為使用者提供資訊。
    • 每天(24小時内)可以發送1條群發消息。
    • 發給訂閱使用者(粉絲)的消息,将會顯示在對方的“訂閱号”檔案夾中。點選兩次才可以打開。
    • 在訂閱使用者(粉絲)的通訊錄中,訂閱号将被放入訂閱号檔案夾中。
  • 企業号
    • 企業号适用于企業與員工或上下遊供應鍊之間的溝通。
    • 企業可以主動發消息給員工,消息量不受限制。
    • 企業号出現在微信會話清單首層,在通訊錄中有單獨的分類。
    • 可以自定義菜單。
    • 擁有多個子号。

5、更加關注與安全,需要雙方認證。

關于三種類型賬号的差別,可自行檢視相關仔細說明,就監控而言,訂閱号和企業号都能滿足需求,但是企業号限制更少,發送消息更加友善,限制更少,外加上個人可以申請一個關注者 50 人限制的企業體驗号,免費的喲,對于監控人員而言,這已經是足夠了,是以後續都以 微信企業号來進行講述 zabbix + 微信企業号 報警的步驟。

1.2 開通企業微信号

根據提示進行注冊,注意有些選項已經提示很清楚了,一旦設定就不能修改,是以填寫這些選項之前想清楚,其他按照提示即可

二、設定報警

2.1 設定企業微信号

配置 zabbix 完成微信報警之前得先對企業号進行一點設定

1、申請完成

這裡唯獨要注意的選擇 【團隊】

2、郵箱激活

3、掃描二維碼登入

4、建立一個組織架構

這裡我建立了一個【運維組】,新增一名成員,作為報警成員。設定完成之後使用者本身即可通過二維碼進行掃碼關注,雙方驗證通過,即可

zabbix 報警之微信報警

5、建立一個應用,用作監控,擷取應用 id

zabbix 報警之微信報警

6、指定該應用的管理者,擷取 corpid、sceret

zabbix 報警之微信報警

這裡有幾個參數後面是需要的,應用的 id、corpid、sceret,下面開始操刀動手

2.2 發送微信消息

  • 微信·企業号開發文檔
  • 微信·企業号 接口調試工具

通過文檔和提供的調試工具,可以看到玩法,首先得擷取 token ,然後才能進行下一步,目前的功能隻需要實作發送微信消息即可,那麼先擷取 token,再對特定的人發送微信消息即可完成

1、擷取 token,網友 安安 已經給出了怎麼去擷取 token 的步驟和方法和腳本,token 是一個有有效時間的密鑰用于後續操作認證。

  • Https請求方式:POST
  • URL:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
參數 必須 說明
access_token 調用接口憑證

安安給出的擷取 access_token 如下,後期腳本也是在這個基礎上進行擴充

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31      
#!/usr/bin/env python
#coding:utf-8
#blog: www.anbooks.cn

import sys
import urllib
import urllib2
import time
import json
from optparse import OptionParser

reload(sys)
sys.setdefaultencoding('utf-8')

class Token(object):
    def __init__(self, corpid, corpsecret):
        self.baseurl = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format(corpid, corpsecret)
        self.expire_time = sys.maxint

    def get_token(self):
        if self.expire_time > time.time():
            request = urllib2.Request(self.baseurl)
            response = urllib2.urlopen(request)
            ret = response.read().strip()
            ret = json.loads(ret)
            if 'errcode' in ret.keys():
                print >> ret['errmsg'],sys.stderr
                sys.exit(1)
            self.expire_time = time.time() + ret['expires_in']
            self.access_token = ret['access_token']
        return self.access_token      

2、發送 text

微信·企業号還支援發送其他類型的資訊等,對于監控而言,發送 text 已經足夠

post 資料根據文檔的例子

1
2
3
4
5
6
7
8
9
10
11      
{
   "touser": "UserID1|UserID2|UserID3",
   "toparty": " PartyID1 | PartyID2 ",
   "totag": " TagID1 | TagID2 ",
   "msgtype": "text",
   "agentid": "1",
   "text": {
       "content": "Holiday Request For Pony(http://xxxxx)"
},
   "safe":"0"
}      

三、微信企業号功能

3.1 企業号消息服務

在系統公告中看到企業号的一些幫助資訊,覺得企業微信号功能還是很強大的,比如這個企業号消息服務,官方已經有詳細的說明,這裡不在贅述,開通請看這裡 開通微信企業号消息服務 可以非常友善不是好友的情況下實作發送非常定制化的消息,并且可以自己定制發送的人的級别等等,非常多的定制規則 不加好友進行聊天

3.2 企業号第三方應用

企業微信一開始就開放了 第三方應用平台 ,其中官方的 詳細介紹 也寫的比較清楚,這裡用到的最明顯的就是和 RTX 進行雙向同步,可以利用微信直接回複 RTX 消息,需要安裝一個插件 RTX微信企業号插件下載下傳

目前更多的功能我也沒用到,更多的功能請自行檢視系統公告,裡面官方的說明寫的也很詳細

  

參考閱讀
  • 斌哥 微信報警
  • 小東的專欄
  • 楊容 微信報警
  • 安安 運維者
  • 微信·企業号 開發文檔
  • 微信·企業号 接口調試工具
  • 微信·企業号 系統公告
  • 微信·公衆平台 接口調試工具
  • 微信·公衆平台 開發文檔

繼續閱讀