1. 程式人生 > 實用技巧 >ZABBIX4.0 微信告警

ZABBIX4.0 微信告警

使用微信告警,需要用到企業微信中的應用功能,類似於釘釘報警的小機器人,它會像公眾號一樣的,推送訊息

1.首先申請一個微信公眾號:https://qy.weixin.qq.com/

2.然後自建一個應用程式

需要記錄以下資訊:

①Agentld:1000002

② Secret:0U4JRxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

zabbix-server服務端配置指令碼

查詢zabbix_server.conf配置檔案位置,修改(已存在可不修改)

然後進入該目錄,配置指令碼

[root@zabbix alertscripts]# cd /data/findsec/zabbix/share/zabbix/alertscripts
[root@zabbix alertscripts]# ls
sendmail.sh  wechat.sh
[root@zabbix alertscripts]# cat wechat.sh
#
!/bin/bash ###SCRIPT_NAME:wechat.sh### ###send message from weixin for zabbix monitor### CropID='wwb2146de7799db779' #Agentld ID號 Secret='0U4JRmxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' Secret ID號 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\"
'{print $10}') PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken" function body() { #企業號中的應用id local int AppID=1000002 #此項不明,我這裡寫的1000002也能成功 #部門成員id,zabbix中定義的微信接收者 local UserID=$1 #部門id,定義了範圍,組內成員都可接收到訊息 local PartyID=2 #過濾出zabbix傳遞的第三個引數 local Msg
=$(echo "$@" | cut -d" " -f3-) 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##

賦予指令碼許可權

[root@zabbix alertscripts]# chown zabbix.zabbix wechat.sh
[root@zabbix alertscripts]# chmod 744 wechat.sh

配置完成後,無需重啟server服務

直接測試

zhen test test^C
[root@zabbix alertscripts]# ./wechat.sh dongweizhen test test
{"errcode":0,"errmsg":"ok. Warning: wrong json format. ","invaliduser":""}

再檢視手機企業微信,發現已經有了資訊

接下來的步驟就是跟配置郵箱告警類似了

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

新增一個使用者,群組很重要,關係到監控主機

新增使用者的報警媒介,這裡的收件人需要和指令碼中定義的收件人對應,都為1

需要注意的是使用者組ops中有GIS主機組,如果沒有對GIS主機組有讀寫的許可權,告警資訊是傳送不出去的

到這裡,就配置結束了,模擬告警,可以看到企業微信中自己建立的應用程式返回資訊了