以前,我們在用Nagios監控時,結合飛信、E-mail、短信等方式來報警。如今在使用Zabbix監控時,依然有很多種報警方式,今天我們就來講一下微信和E-mail這兩種報警方式!
Zabbix結合微信報警:
Zabbix_server:192.168.30.192
Zabbix_agent:192.168.30.198
在做此實驗之前,你必須要注冊一個微信公眾號(訂閱號或者服務號),然后讓你的用戶關注你的微信工作號。如何申請公眾號請自行百度!
第一步:下載源碼
下載微信公眾平臺私有接口
git clone https://github.com/lealife/WeiXin-Private-API
cp -r WeiXin-Private-API /etc/zabbix/alertscripts
/etc/zabbix/alertscripts此目錄為zabbix默認報警腳本目錄,rpm安裝的zabbix默認的報警腳本目錄在這個目錄下,編譯安裝的可以自己查找。
chown -R zabbix:zabbix /etc/zabbix/alertscripts/WeiXin-Private-API
第二步:設置微信公眾號
cd /etc/zabbix/alertscripts/WeiXin-Private-API
修改config.php文件
修改test.php文件,只保留一下幾行:
注意這里 $msg = "$argv[3]" 表示接受zabbix傳入的第三個參數,因為在zabbix在報警時會傳入三個參數:一是微信好友ID,二是報警信息的主題,三是報警信息的具體內容,這里跳過了報警主題,直接發送報警信息內容。
第三步:創建測試腳本
vim /etc/zabbix/alertscripts/weixin
/usr/bin/php /etc/zabbix/alertscripts/WeiXin-Private-API/test.php "$1" "$2" "$3"
chmod +x /etc/zabbix/alertscripts/weixin
chown -R zabbix.zabbix /etc/zabbix/alertscripts/weixin
第四步:測試腳本
在測試腳本之前,你必須要得到用戶的tofakeid。
獲取tofakeid的方法如下:
登錄你的微信公眾號,用戶管理-->選中你要測試的用戶,點擊他的圖像,你會得到一個地址:
https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=o-ARgwmMXLd8IdYIeWajD6glUe4I&token=2046185283&lang=zh_CN
上面網址中tofakeid后面紅色的部分即為用戶的tofakeid。
[root@server92 alertscripts]# /etc/zabbix/alertscripts/weixin o-ARgwmMXLd8IdYIeWajD6glUe4I "" "hello"
PHP Notice: Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
PHP Notice: Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
stdClass Object
(
[base_resp] => stdClass Object
(
[ret] => 0
[err_msg] => ok
)
)
當你看到OK時,則測試成功!
如果你在測試時出現如下問題:
[root@server92 alertscripts]# /etc/zabbix/alertscripts/weixin o-ARgwmMXLd8IdYIeWajD6glUe4I "" "hello"
PHP Notice: Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
PHP Notice: Undefined index: HTTP_USER_AGENT in /var/lib/zabbixsrv/alertscripts/WeiXin-Private-API/include/LeaWeiXinClient.php on line 33
stdClass Object
(
[base_resp] => stdClass Object
(
[ret] => 10706
[err_msg] => customer block
)
)
這是因為該用戶48小時之內未與你互動,你不能主動發消息給他。你可以讓該用戶給你的微信公眾號隨便發條消息,再重新測試一遍就可以解決了!
如果上面出現錯誤信息使得微信收不到測試信息,請分析下你的賬號信息是否填寫錯誤;如果不是,請檢查你的公眾號是否由于長時間沒和用戶互動被微信平臺封鎖了,這時請要求需要接受此報警信息的用戶發送任意信息到你的公眾賬戶上即可。如何還是不行,請將cache目錄下的文件全部刪除即可。
注意:如果你更改了公眾號密碼,cache目錄下的文件同樣需要刪除掉;
第五步:配置Zabbix
添加警示媒體:Administration --> Media types-->Create media type
點擊Administration -> Users, 在Admin用戶的Media選項卡中,配置微信好友ID:
此處的用戶ID即為用戶的tofakeid。
添加報警動作:
報警主機: {HOST.NAME}
報警IP: {HOST.IP}
報警時間: {EVENT.DATE}{EVENT.TIME}
報警問題: {TRIGGER.NAME}
報警狀態: {TRIGGER.STATUS}
報警級別: {TRIGGER.SEVERITY}
報警詳情: {ITEM.NAME}{ITEM.VALUE}
事件ID:{EVENT.ID}
第六步:報警測試
關閉Zabbix_agent上的HTTP服務,報警如下:
當你解決了zabbix_agent上的HTTP故障后,微信也會給你發相應的提示!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。