Zabbix沒有爲我們提供微信報警的媒介,我們需要自己創建,通過腳本來發消息。主要分爲三部分:(1)zabbix server端配置報警媒介,以及發給誰 (2)微信報警腳本 (3)在企業微信創建應用API(供zabbix報警調用)以及用戶的賬號(收報警信息)
配置Zabbix微信報警媒介
Administration-->Media Types-->Create Media Type
腳本加入三個參數:{ALERT.SENDTO} 發送給誰、{ALERT.SUBJECT} 發送信息的標題、{ALERT.MESSAGE} 發送內容
腳本文件放在服務端即server端:微信腳本是放在服務端的weixin.sh
配置收件人
配置報警郵件的接收人,到底寫誰??這個收件人必須擁有企業微信賬號,後面會說,可以先配置
至此 發送端接收端都已經配置好了 微信監控報警配置完畢
配置action
微信報警腳本使用
[root@localhost src]# ls --上傳微信報警包,並且解壓縮
debug kernels zabbix_weixin zabbix_weixin.x86_64.tar.gz
[root@localhost zabbix_weixin]# ll
total 6712
-rwxr-xr-x. 1 root wheel 6868856 Jan 27 2016 weixin --可以看到是一個可執行腳本文件,有x權限
-rw-r--r--. 1 root wheel 99 Jan 27 2016 weixincfg.json --配置文件
[root@localhost zabbix_weixin]# mv weixin weixin.sh --因爲zabbix媒介weixin裏面配置腳本名稱就是weixin.sh,一個二進制文件(這個腳本名字要和媒介裏面的微信腳本名稱保持一致)
配置server端報警文件的路徑,即腳本存放的路徑
[root@localhost zabbix_weixin]# vim /etc/zabbix_server.conf
AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
將腳本拷貝到該目錄
[root@localhost zabbixsrv]# mkdir -p /var/lib/zabbixsrv/alertscripts
[root@localhost ~]# cp /usr/src/zabbix_weixin/weixin.sh /var/lib/zabbixsrv/alertscripts/
[root@localhost ~]# cd /var/lib/zabbixsrv/alertscripts/
[root@localhost alertscripts]# ls
weixin.sh
[root@localhost alertscripts]# cp /usr/src/zabbix_weixin/weixincfg.json /etc/ --微信配置文件拷貝到/etc下面,這個文件配置在企業微信配置好後面配置
微信腳本關聯企業微信
在企業微信創建消息應用,在企業微信的後臺創建應用,就是消息應用,微信報警的應用要綁定部門成員,只有在該部門裏面的成員纔可以接收到微信信息
創建運維部門
創建應用,這個應用就是用來實現報警的API, 可見範圍就是哪些人可以使用該應用,即報警
創建用戶,這些用戶屬於運維部門,就是用來接收報警信息的,注意賬號,這個賬號是在zabbix配置收件人需要配置的,即send to
應用測試
這個應用爲報警提供了API接口,可以看到產生了AgentId Secret 這個都需要添加到配置文件裏面,下面先來測試發信息
可以看到通過該API可以向運維部的成員發送消息,要讓zabbix觸發器滿足某個條件通過該API來實現微信報警
實現微信報警
[root@localhost zabbix_weixin]# vim /etc/weixincfg.json
{
"corp": {
"corpid": "ww0ba7f12c8be29fdf",
"secret": "rDAdRGMdb5YilAWoChY5bJFCp1yS6t500i66LmoysDM",
"agentid": 1000004
}
}
這三行就是api接口會去調用的,copyid相當於企業ID secret+agentid相當於一個應用,這個應用就是來實現報警的
[root@localhost ~]# systemctl restart zabbix-server --監控端重啓讓配置生效
[root@localhost ~]# pkill nginx --被監控端殺掉nginx
[root@localhost ~]# nginx --被監控端重啓nginx