zabbix3.0 微信告警


首先需要申請一個企業號,其實公眾號也可以,不過腳本不一樣。而且公眾號任何人都可以關注,有泄密的風險。企業號只有指定的人可以關注,安全性較高。申請企業號,需要一個綁定你本人開戶銀行卡的微信號。 

申請網址 https://qy.weixin.qq.com/

點擊“立即注冊”。根據提示注冊企業號,到“選擇類型”時,選擇最右邊的企業號。注意:企業描述中:“報警”是敏感詞不能使用。登錄之后,可以看到如下頁面 

填寫信息:

申請完畢后,登錄

 

在通訊錄添加成員

注:這里的賬號相當於你的企業賬號,與微信號無關。必須先在此處創建用戶,並且填寫正確的微信號或者手機號,才可通過掃描二維碼關注該企業號(知道為何安全了吧)。 

 

 這里掃描二維碼就可以關注。

添加應用

填寫信息

填寫完成后,出現你剛填寫的應用

點擊查看詳情

記住應用ID,后面能用到!

點擊設置,管理組,權限管理, 記住  CorpID   Secret   (后面能用到)

現在萬事俱備,可以開始編寫腳本了。 

編寫腳本 

在/usr/lib/zabbix/alertscripts下編寫腳本wechat.sh

 

 

 

腳本如下:

 1 #!/bin/bash
 2 ###SCRIPT_NAME:weixin.sh###
 3 ###send message from weixin for zabbix monitor###
 4 ###wuhf###
 5 ###V1-2015-08-25###
 6 
 7 CropID='************'
 8 Secret='************' 
 9 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
10 Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
11 
12 PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
13 
14 function body() {
15         local int AppID=******
16         local UserID=$1
17         local PartyID=1
18         local Msg=$(echo "$@" | cut -d" " -f3-)  
19         printf '{\n'
20         printf '\t"touser": "'"$User"\"",\n"
21         printf '\t"toparty": "'"$PartyID"\"",\n"
22         printf '\t"msgtype": "text",\n'
23         printf '\t"agentid": "'" $AppID "\"",\n"
24         printf '\t"text": {\n'
25         printf '\t\t"content": "'"$Msg"\""\n"
26         printf '\t},\n'
27         printf '\t"safe":"0"\n'
28         printf '}\n'
29 }
30     /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

注釋:更新代碼(其上可能調用的URL時效)

 1 #!/bin/bash
 2 
 3 CropID='wxe46cfc45d0c07e23'
 4 Secret='takL9WW2Eo_Ww5AGENHR7mJA6nl89sz1ghbhpAE8Jus'
 5 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
 6 Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
 7 PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
 8 function body() {
 9         local int AppID=1
10         local UserID=@all
11         local Msg=$(echo "$@" | cut -d" " -f3-)
12         printf '{\n'
13         printf '\t"touser": "'"$UserID"\"",\n"
14         printf '\t"msgtype": "text",\n'
15         printf '\t"agentid": "'"$AppID"\"",\n"
16         printf '\t"text": {\n'
17         printf '\t\t"content": "'"$Msg"\""\n"
18         printf '\t},\n'
19         printf '\t"safe":"0"\n'
20         printf '}\n'
21 }
22         /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

 

以上CropID,Secret,AppID   填寫自己微信號上的正確信息,否則無效!

chown -R zabbix:zabbix /usr/local/zabbix/alertscripts chmod 750 /usr/local/zabbix/alertscripts/wechat.sh

執行./wechat.sh 1 1 test 看自己微信是否能收到東西。

如果能的話,繼續下一步。反之檢查上面有什么問題

 

 

然后到zabbix上添加

點擊管理---媒體類型---創建媒體類型

管理---用戶---添加用戶

組態---動作---添加動作

名稱:weixin_action 默認接收人:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

默認信息:

告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}

恢復信息:打鈎

恢復主旨:恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

恢復信息:

告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}

已啟用:打鈎 

 

 

最后測試,是否會微信報警。停掉一台機子

 

表示成功!

 

附加:在搭建的過程中,我碰見了一個問題就是,

 

在虛擬機上用命令測試,微信能收到信息。但是到zabbix上就不成功,並且zabbix上動作顯示已送達!詳細請看下一篇文檔!

 


免責聲明!

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



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