Zabbix使用微信傳送告警(附上Python程式碼)

天府雲創發表於2017-08-14

介紹

本文將介紹如何把zabbix告警接入到微信,通過微信企業號將告警資訊傳送到運維人員的微信上。本文適合於已經實現了郵件告警的小夥伴,因為需要在已經能實現告警的基礎上進行,如果還不知道如何配置zabbix告警的小夥伴們請檢視以下文章先實現告警: 在實現告郵件告警的基礎上再進行操作

《zabbix報警媒介介紹(61)》http://www.ttlsa.com/zabbix/zabbix-action-media/
《zabbix指令碼報警介質自定義(35)》http://www.ttlsa.com/zabbix/zabbix-custom-alertscripts/
《zabbix報警媒介:自定義指令碼Custom alertscripts(66)》http://www.ttlsa.com/zabbix/zabbix-media-custom-alertscripts/ # zabbix3.0的指令碼呼叫有小許變化,下文第6點《修改Zabbix_server的告警設定》會提到

為什麼選用微信企業號

因為微信企業號需要先在企業通訊錄新建該員工,該員工才能關注該企業號,這樣就能實現告警資訊的私密性。如果使用公眾號,則只要所有關注了該公眾號的人都能收到告警訊息,容易造成資訊洩露。而且員工數少於200人的企業號是不用錢的,也沒有任何申請限制。

實現步驟

  1. 註冊微信企業號

開啟以下連結註冊微信企業號:https://work.weixin.qq.com/wework_admin/register_wx?from=myhome

選擇沒有營業執照繼續註冊(限員工數200人以下),如下圖所示,如果是正規大企業使用,請正常註冊。
python
填上企業名稱即可註冊完成,後面還需要指定企業號管理員,按步驟繫結好管理員微信即可。
  1. 在企業號上建立告警應用

該告警應用的角色如下:Zabbix_server ---------> 告警應用 --------> 運維人員微訊號

在企業號上建立一個應用,如下圖所示:

python
填好相關資料,應用即可建立完成,如上圖本文建立的應用叫Zabbix告警
  1. 企業號上的重要資訊

這裡重點提一下企業號裡幾點重要的資訊,等會在指令碼中會用到

  • corpid
企業號的ID號,獲得地方如下圖所示:
python
  • corpsecret和Agentid
應用的安全碼和agentid,獲得地方如下圖所示:
python
  1. 指令碼執行環境準備
本文指令碼用到Python3執行環境,部署過程如下:
  • 安裝openssl-devel依賴,讓python支援https

 

  • 下載並安裝python3

 

  • 安裝指令碼用到的python庫

 

  1. Zabbix報警指令碼
把報警指令碼放到zabbix_server相應的目錄下
檔名為:sendToWeixin.py (記得新增可執行許可權)
報警指令碼程式碼如下 (替換下面的 'xxxxx' 部分)

 

  1. 修改Zabbix_server的告警設定
  • 修改告警呼叫的指令碼名稱及給指令碼傳入的引數,如下圖所示:
python
上圖Script parameters表示呼叫指令碼時向指令碼傳入什麼引數,引數解釋如下
{ALTER.SENDTO} # 傳送給誰,該引數在郵件告警中有作用,但微信告警中沒有
{ALTER.SUBJECT} # 告警標題,該引數在郵件告警中有作用,但微信告警中沒有
{ALTER.MESSAGE} # 告警內容,在微信告警中有用
  • 修改告警內容格式
修改告警內容樣式,讓告警內容看得更舒服(在微信告警中告警標題是沒用的,傳送給誰也是基本上沒有用)
如下圖所示:
python
內容如下:

 

  1. 企業號通訊錄
把所有要接收告警的人都新增到企業號通訊錄裡面,邏輯是(先在通訊錄裡建立該成員,再邀請該成員加入,或讓他掃碼加入)
如下圖所示:
python
到此,已大功告成,盡情享受微信告警的方便吧。是不是很簡單呢。

相關文章