zabbix的配置之新版微信報警(二)


 

zabbix配置2018版本微信報警

centos6.5中微信報警需要Python2.7版本之上,由於服務器是centos6.5。所以需要升級版本2.6到2.7.

具體升級步驟:Python升級版本2.6到2.7

 

一、微信企業號申請

地址: http://work.weixin.qq.com/

注冊企業微信:

需要一個綁定銀行卡的微信

主要流程如下:
 1.創建微信用戶成員
 2.創建應用,這是關鍵,如果是剛申請的公眾號,創建的第一個應用ID 為1 (現在升級后的企業微信創建的應用ID為1000002)。
 3.創建應用管理組,添加組成員(也就是設置哪些用戶可以接收到報警的通知信息)。
 4.創建成功后需要獲取到以下信息:CropID  和Secret 當然還包括創建的用戶信息。
  申請企業微信,創建對應的組成員這些就不介紹了,按照注冊向導創建即可,主要寫下創建應用獲取應用Secret 和CorpID

主要找到 AgentId 和 Secret 和CorpID,部門id

注冊成功后,進入管理后台

以下舉個例子做為概述

1)選擇企業應用------創建應用 對應范圍選擇自己的部門。

2)創建成功后就可以看到該應用的 AgentId 和 Secret

 

3)CorpID 需要在【我的企業】-【企業信息】中獲取

4)部門ID 很隱蔽,在【通訊錄】-左側部門列表 點擊查看

 

 綜上所述可以獲得

部門id

AgentId

Secret

CorpID

二、zabbix 腳本創建

vim /usr/local/zabbix/alertscripts/weixin.sh

 1 #!/bin/bash
 2 CropID='**********************'                    
 3 #填寫我們的應用CropID
 4 Secret='**********************************'        
 5 #應用的Secret,下面的GURL和PURL 地址無需變動
 6 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"      
 7 #Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
 8 Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
 9 PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
10  
11 function body() {
12         local int AppID=1000002        #這里是創建的應用ID,AgentId
13         local UserID=$1                #接收消息用戶,我們在部門里面添加的用戶,如果有其他人,用逗號代替
                        部門成員id,zabbix中定義的微信接收者
14 local PartyID=2 #接收消息的部門ID,定義了范圍,組內成員都可接收到消息。 15 local Msg=$(echo "$@" | cut -d" " -f3-) 16 printf '{\n' 17 printf '\t"touser": "'"$UserID"\"",\n" 18 printf '\t"toparty": "'"$PartyID"\"",\n" 19 printf '\t"msgtype": "text",\n' 20 printf '\t"agentid": "'" $AppID "\"",\n" 21 printf '\t"text": {\n' 22 printf '\t\t"content": "'"$Msg"\""\n" 23 printf '\t},\n' 24 printf '\t"safe":"0"\n' 25 printf '}\n' 26 } 27 /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

腳本設置權限和所屬用戶

chown zabbix.zabbix weixin.sh

chmod 744 weixin.sh

第三、微信接口調用

調用微信接口需要一個調用接口的憑證:access_token
通過CorpID和Secret可以獲得access_token
微信企業號接口調試地址: http://qydev.weixin.qq.com/debug

 

 

手動測試腳本能否正常發信,測試的賬號由於在腳本里未寫明,觀察到微信能正常收到測試信息:

比如說在后台下有一個添加的用戶是syp,該用戶在添加進入部門前會

在微信上添加該用戶,並且會下載企業微信,並關注(必須的,否則會接受不到消息)

bash weixin.sh  syp test test

[root@localhost alertscripts]# ./weixin.sh syp test test
{"errcode":0,"errmsg":"ok","invaliduser":""}[root@localhost alertscripts]#

 

在zabbix的web界面進行配置

 

接着開始登陸zabbix,添加報警設置(跟郵件報警的配置差不多)

1)創建報警媒介(這里我選用python腳本:weixin.py,如果選用shell腳本,就改換weixin.sh。其他設置都不變!

注意下面要填寫的腳本參數:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

 2)創建用戶weixin(密碼一欄可以選擇跟之前的超級管理員zabbix一樣的密碼;用戶類型也可以設置成超級管理員)

 

 這里最好使用微信企業號的應用ID,AgentId.用戶賬號。這里只需要填寫一個賬號即可。zabbix的web界面里發信是按照應用ID,只要關注這個微信企業號內的用戶都會收到報警郵件

這樣發的報警信息,在企業號內的用戶都能收到。或者添加任意一個用戶賬號(比如syp1111111111),切不可添加多條,否則就會收到重復信息。

 

 3)創建動作

 

注意嚴格下面的微信發送格式:
上面的默認接收人填寫:{TRIGGER.STATUS}: {TRIGGER.NAME}

默認信息和恢復信息要填寫一樣的內容,如下:
告警主機:{HOST.NAME}
主機IP: {HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

如下,在“條件”里可自主選擇添加“主機”和“模板”(具體可參考上一篇的“zabbix郵件報警”的此步設置)

 

下面的“操作”(具體說明可參考上一篇的“zabbix郵件報警”的此步設置)。
下面設置的報警信息只發送給weixin用戶就行了,沒有發生給用戶組。

 注意:“操作”底部的“條件“做如下設置(時間已確認=非確認),這個別忘了!

 

 

 這樣,就順利創建了一個名為“weixin”的動作

 

測試,將其中一台被監控機器(192.168.1.25)的zabbix-agent服務關掉,觀察微信是否能正常收到報警信息:
經測試,報警信息(3次)和恢復后的信息(1次),微信都能正常收到。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
要追加用戶的微信監控,只需要將用戶添加到相關應用關聯到的對應部門里即可!其他配置都不需要動。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM