Zabbix配置微信報警通知


Zabbix告警可以通過郵件,微信,電話,短信等方式發送告警消息。

電話和短信需要向運營商購買相應的網關,需要付費;

郵件和微信是免費的,可以根據業務需要選擇相應的告警模式

 

Zabbix版本:3.2

 

部署前准備工作:

先申請一個微信企業號:https://qy.weixin.qq.com
申請通過后 登錄 該企業號

 

注:每個企業號有發送消息限制,據說是有消息數限制的

 

一、申請企業微信賬號,並創建應用:

主要流程如下:

 

  • 創建微信用戶成員。
  • 創建應用,這是關鍵,如果是剛申請的公眾號,創建的第一個應用ID 為1 (現在升級后的企業微信創建的應用ID為1000002)
  • 創建應用管理組,添加組成員(也就是設置哪些用戶可以接收到報警的通知信息)
  • 創建成功后需要獲取到以下信息:CropID  和Secret 當然還包括創建的用戶信息。  

 

 

申請企業微信,創建對應的組成員這些就不介紹了,按照注冊向導創建即可,主要寫下創建應用獲取應用Secret 和CorpID

 

  • 選擇【企業應用】-【創建應用】 對應范圍選擇自己的部門。

 

 

 

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

 

 

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

 

 

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

 

 

二、zabbix 腳本創建

  • 創建微信報警腳本
root@evescn:~# cat /etc/zabbix/alertscripts/weixin.sh 
#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###wuhf###
###V1-2017-09-12###

CropID='XXXXXXXXXXXXXX'
Secret='XXXXXXXXXXXXXXXXXXXXXXXXX'
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() {
        local int AppID=1                        #企業號中的應用id
        local UserID=$1                          #部門成員id,zabbix中定義的微信接收者
        local PartyID=1                          #部門id,定義了范圍,組內成員都可接收到消息
        local Msg=$(echo "$@" | cut -d" " -f3-)  #過濾出zabbix中傳遞的第三個參數
        printf '{\n'
        printf '\t"touser": "'"$User"\"",\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

 

  • 設置zabbix腳本運行路徑,並把報警腳本放於該目錄下
root@evescn:~# grep "^[^#]" /etc/zabbix/zabbix_server.conf 
......
AlertScriptsPath=/etc/zabbix/alertscripts
......

 

  • 腳本設置權限和所屬用戶
root@evescn:~# chown zabbix:zabbix /etc/zabbix/alertscripts/weixin.sh
root@evescn:~# chmod 744 /etc/zabbix/alertscripts/weixin.sh

 

三、設置監控動作和接收用戶信息

  •  進入zabbix后台,選擇【管理】-->【報警媒介類型】--> 創建媒介類型

 

  •  選擇類型為:【腳本】,腳本名稱為第二步中創建的腳本名稱,並配置腳本參數(使用zabbix3.0以上版本此處必須配置腳本參數)

 

# 腳本參數
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

 

  • 選擇【管理】-->【用戶】--> 選擇admin用戶

 

 

  •  選擇報警介質,點擊添加按鈕,關聯上admin用戶和weixin報警

 

  • 模擬測試,查看報警功能是否OK

 

四、貼上【配置】-->【動作】中配置的默認信息配置

服務器:{HOST.NAME}出現故障!

服務器:{HOST.NAME}出現故障!\n
告警主機:{HOSTNAME1}
主機地址:{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

 

服務器:{HOST.NAME}已恢復!

服務器:{HOST.NAME}已恢復!\n
恢復主機:{HOSTNAME1}
主機地址:{HOST.IP}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

 

文章轉載自:https://www.cnyunwei.cc/archives/261


免責聲明!

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



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