一般來說,Zabbix可以通過多種方式把告警信息發送到指定人,常用的有郵件,短信報警方式,但是現在越來越多的企業開始使用zabbix結合微信作為主要的告警方式,這樣可以及時有效的把告警信息推送到接收人,方便告警的及時處理。然而新版微信已取消了企業號,改用企業微信。使用微信號發短信一般會有條數限制,企業微信沒有這個限制,而且成員分組也方便。比起之前的微信企業號,企業微信方式在zabbix報警設置上還是有一點不一樣的。廢話不多說了,下面簡單記錄下:
一、企業微信注冊
地址:http://work.weixin.qq.com/
注冊步驟沒有什么可說的,按照提示信息填入信息即可。

二、配置微信企業號
1、邀請運維人員加入企業微信


重點是添加應用。"企業應用"->"創建應用"




需要得到的信息
-> 記錄用戶的賬號(唯一ID)
-> CorpID
-> Secret、Agentld
三、Zabbix微信報警設置
1、設置zabbix默認腳本路徑,這樣在web端就可以獲取到腳本
[root@zabbix3 zabbix34]# vim /usr/local/zabbix34/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix34/alertscripts/
[root@zabbix3 zabbix34]#mkdir /usr/local/zabbix34/alertscripts/
[root@zabbix3 zabbix34]#chown zabbix.zabbix -R /usr/local/zabbix34/alertscripts/
2、微信接口調用
調用微信接口需要一個調用接口的憑證:access_token
通過CorpID和Secret可以獲得access_token
微信企業號接口調試地址: http://qydev.weixin.qq.com/debug

3、下載pythen微信腳本
#安裝simplejson
wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2 python setup.py build python setup.py install |
#下載wechat.py腳本
git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git cp Zabbix-Alert-WeChat/wechat.py /usr/local/zabbix34/alertscripts/ chmod +x wechat.py && chown zabbix:zabbix wechat.py |
#修改腳本,把上面查詢到的 Corpid,Secret,Agentid 填寫到腳本此處

#腳本測試
[root@zabbix3 zabbix34]# /usr/local/zabbix34/alertscripts/wechat.py testuser test zabbixtest
{"errcode":0,"errmsg":"ok","invaliduser":""}
參數1,:用戶名 參數2:主題 參數3:內容
用戶查詢方法:

四、zabbix web 界面配置
1、添加報警腳本到zabbix


腳本參數:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2、創建用戶


3、創建動作




告警主題:
Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}
Trigger host:{HOSTNAME}
Trigger ip:{HOST.IP}
Trigger time:{EVENT.DATE}:{EVENT.TIME}
Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}
Item values:
{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
{ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
Original event ID: {EVENT.ID}
恢復主題:
Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}
Trigger host:{HOSTNAME}
Trigger ip:{HOST.IP}
Trigger time:{EVENT.DATE}:{EVENT.TIME}
Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}
Item values:
{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
{ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
Original event ID: {EVENT.ID}
至此,完成。
參考文檔:
http://www.cnblogs.com/kevingrace/p/5841651.html
https://yq.aliyun.com/articles/60669
