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}