ZABBIX4.0 微信告警
阿新 • • 發佈:2020-12-28
使用微信告警,需要用到企業微信中的應用功能,類似於釘釘報警的小機器人,它會像公眾號一樣的,推送訊息
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主機組有讀寫的許可權,告警資訊是傳送不出去的
到這裡,就配置結束了,模擬告警,可以看到企業微信中自己建立的應用程式返回資訊了