1. 程式人生 > >zabbix微信報警

zabbix微信報警

bin 事件 func har not eight 過濾 ken end

1、申請微信企業號 微信申請企業號(點擊申請) 1.1.通訊錄添加企業成員

我們要提前把成員信息添加進組織部門,必填項+手機號或者微信號,這樣別人掃描二維碼的時候才能成功關註企業號。

註意:這裏有兩個我們要用到信息,一個組織部門的ID,一個部門成員的賬號(賬號是自己手動指定的,不同於微信號,最好是字母加數字)
技術分享
部門ID 技術分享
部門成員賬號 2.1.應用中心創建應用

我們要在這裏創建應用,因為要通過應用發送消息給部門成員.

註意:這裏要記住一個值,應用ID
技術分享
新建應用.jpg 技術分享
選擇應用類型.jpg 技術分享
創建應用.jpg 技術分享
應用ID.jpg 2.2.給部門設置管理員

設置--->功能設置---->權限管理---->新建管理組
管理員必須事先已經關註了企業號

註意:管理組權限設置很重要,不設置後面會出問題!
技術分享
新建管理組.jpg 技術分享
管理組基本信息.jpg 技術分享
管理組權限.jpg

確定管理員可以讀取通訊錄,可以使用應用發消息。

     註意:我們需要管理員的CorpID和Secret
技術分享
CorpID和Secret.jpg 2.3微信企業號信息統計 我們要準備這些東西:
  • 一個微信企業號
  • 企業號已經被部門成員關註
  • 企業號裏有一個可以發消息的應用
  • 一個授權管理員,可以使用該應用給成員發消息

我們要取到這些信息:

  • 成員賬號
  • 組織部門ID
  • 應用ID
  • CropID
  • Secret
3. 微信接口調用測試 如何調用微信接口? 調用微信接口需要一個調用接口的憑證:access_token
通過 :CropID 、Secret 才能獲取到access_token,但是獲取到的token有效期為兩分鐘 微信企業號接口調試工具( http://qydev.weixin.qq.com/debug) 技術分享 4.調用微信接口的shell腳本 設置腳本執行路徑,編輯zabbix_server.conf文件,添加一行 (路徑根據自己情況定) AlertScriptsPath=/opt/zabbix/share/zabbix/alertscripts #重啟zabbix-server服務 使用: -s -G url 獲取 AccessToken 使用: curl --data url 傳送憑證調用企業號接口 zabbix會傳遞三個參數給腳本,$1是消息接收賬號,$2報警標題,$3報警內容
4.1 shell腳本 #!/bin/bash 必須要寫 否則zabbix action不會調用腳本
#!/bin/bash###SCRIPT_NAME:weixin.sh######send message from weixin for zabbix monitor######wuhf######V1-2015-08-25###

CropID=‘xxxxxx‘
Secret=‘xxxxxx‘
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" 
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" ‘{print $4}‘)

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {
        local int AppID=3                        企業號中的應用id
        local UserID=$1                          部門成員id,zabbix中定義的微信接收者
        local PartyID=1                          部門id,定義了範圍,組內成員都可接收到消息
        local Msg=$(echo "$@" | cut -d" " -f3-)  過濾出zabbix傳遞的第三個參數
        printf ‘{\n‘
        printf ‘\t"touser": "‘"$UserID"\"",\n"
        printf ‘\t"toparty": "‘"$PartyID"\"",\n"
        printf ‘\t"msgtype": "text",\n‘
        printf ‘\t"agentid": "‘" $AppID "\"",\n"
        printf ‘\t"text": {\n‘
        printf ‘\t\t"content": "‘"$Msg"\""\n"
        printf ‘\t},\n‘
        printf ‘\t"safe":"0"\n‘
        printf ‘}\n‘
}
/usr/bin/curl --data-ascii "$(body $1$2$3)" $PURL
mv weixin.sh /usr/local/zabbix/share/zabbix/alertscripts chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh #測試:執行./wechat.sh 1 1 test看自己微信是否能收到東西。($1是消息接收賬號,$2報警標題,$3報警內容) 5、zabbix-web前端設置 5.1設置通知媒介 技術分享 5.2創建用戶

技術分享

5.3、創建觸發動作及發送內容

技術分享

技術分享 6、測試微信告警發送(zabbix-agent stop 即可) ############# 問題: 1、{"errcode":82001,"errmsg":"All touser & toparty & totag invalid”} (權限問題) 在微信後臺配置:設置 -> 權限管理 -> 應用權限, 添加要主動發消息的應用到 應用權限中 或 應用中心->zabbix報警->看見範圍、應用管理組

7、zabbix觸發格式 Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}:q

服務異常警報\n
/::@/::@/::@/::@/::@/::@/::@/::@  #微信標識符
服務異常警報\n
告警信息:{TRIGGER.NAME}\n
告警主機:{HOSTNAME1}\n
告警時間:{EVENT.DATE} {EVENT.TIME}\n
告警項目:{TRIGGER.KEY1}\n
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}\n
事件ID:{EVENT.ID}\n


服務恢復通知\n
/::B/::B/::B/::B/::B/::B/::B/::B
服務恢復通知\n
恢復信息:{TRIGGER.NAME}\n
恢復主機:{HOSTNAME1}\n
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}\n
恢復項目:{TRIGGER.KEY1}\n
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}\n
事件ID:{EVENT.ID}\n

zabbix微信報警