一般来说,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