做者信息
郵箱:sijiayong000@163.com
Q Q:601566386
web
摘要:Zabbix能夠經過多種方式把告警信息發送到指定人,經常使用的有郵件,短信報警方式,可是愈來愈多的企業開始使用zabbix結合微信做爲主要的告警方式,這樣能夠及時有效的把告警信息推送到接收人,方便告警的及時處理。shell
使用微信發送告警,須要先註冊一個微信企業號api
此處忽略具體步驟,請訪問百度bash
註冊完成微信企業號後,點擊個人企業服務器
在這裏記錄下來CorpID的值
在以後發送微信告警的腳本中會用到微信
緊接着須要建立組和用戶
curl
建立用戶
測試
建立應用
url
獲取AgentID 和 Secret3d
這兩個信息,一樣須要記錄下來
在以後的發送微信告警時須要
微信企業號
企業號已經被部門成員關注
企業號有一個能夠發送消息的應用,一個受權管理員,可使用應用給成員發送消息
- CorpID
- AgentID
- Secret
- 用戶的帳號 或 組ID
須要修改zabbix.conf
grep alertscripts /etc/zabbix/zabbix_server.confAlertScriptsPath=/usr/lib/zabbix/alertscripts
咱們設置zabbix默認腳本路徑,這樣在web端就能夠獲取到腳本
進入到/usr/lib/zabbix/alertscripts/
目錄下,建立一個wechat.sh
腳本文件
給腳本文件受權用戶和組
以及增長執行權限
chown zabbix.zabbix wechat.sh
chmod +x wechat.sh
#!/bin/bash ###SCRIPT_NAME:wechat.sh### ###send message from weixin for zabbix monitor### CropID='此處填寫上面獲取到的CorpID' Secret='此處填寫應用的Secret' 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=這裏填寫AgentID #部門成員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##
腳本測試
/bin/sh /usr/lib/zabbix/alertscripts/wechat.sh sijiayong test test
按照圖片中的定義建立新告警媒介
此處貼出告警參數
{ALERT.SENDTO} {ALTER.SUBJECT} {ALERT.MESSAGE}
最後點擊添加便可
配置告警用戶
配置用戶告警媒介
最後點擊更新,用戶就完成
故障配置
故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障! 告警主機:{HOSTNAME1} 告警主機IP地址:{HOST.CONN} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 發生: {TRIGGER.NAME}故障! 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID}
恢復配置
恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復! 告警主機:{HOSTNAME1} 告警主機IP地址:{HOST.CONN} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} {TRIGGER.NAME}已恢復! 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID}
動做添加
手動出發一次故障