这是使用Golang为zabbix写的一个微信报警插件,本程序修改自ZABBIX钉钉报警插件。
可以将zabbix的报警消息推送给微信,实现使用微信APP接收zabbix的报警消息。
之前写过 ZABBIX云之家报警插件 和 ZABBIX钉钉报警插件 可以参考。云之家是金蝶的产品,钉钉是阿里的产品,总体上来说,报警到钉钉最优。
下面的教程仅支持zabbix3.0及以上版本。
程序使用方法
本程序是命令行程序,可以按照下面方式直接发消息到指定的微信企业号,您可以加-h
或--help
参数来查看帮助。
golang-zabbix-alter-to-wechat.exe -agentid=794723 -corpid=dingd6757aa75040e32b -corpsecret=z
C5Jbed9Sx8o9ZwfN4QgFo420WWlKw8NbSDYvk6Qin7gflFIIYLSeq4ZrdOVpk1o -to=manager5675 -msg="{ \"from\": \"Tomcat03\"
, \"time\": \"2016.07.28 14:45:24\", \"level\": \"Warning\", \"name\": \"Response time is too high on Tomcat03\", \"key\": \"icmppingsec
\", \"value\": \"31ms\", \"now\": \"31ms\", \"id\": \"1618\", \"ip\": \"10.139.105.107\", \"color\":\"FF4A934A\", \"age\":\"3m\", \"reco
veryTime\":\"2016.07.28 14:48:24\", \"status\":\"OK\" }"
下载程序
消息效果
下面是钉钉的报警消息,可以看到比微信消息内容要丰富的多。
注册微信企业号
点击访问:去注册微信企业号 可以在这个界面注册微信企业号。
填写注册信息后,邮箱会收到激活邮件,点击激活链接以后请选择注册企业号,企业号可以主动发消息给用户。
选择以后,按照向导一步一步激活账号。
创建微信应用
若没有什么特殊情况的话,现在您已经登录到微信企业号的后台了。那么接下来我们需要创建一个应用用来发送报警消息。
点击后台的应用中心
-创建应用
,来创建一个消息型应用。
获取 AgentID、Corpid 和 Corpsecret
应用创建完成了,我们还需要为应用添加一个普通管理组,以便获取 Corpid
和 Corpsecret
用来发送消息。
应用的id,可以在应用中心,点击应用图标获取。
到这里,我们已经获取了 AgentID
Corpid
和 Corpsecret
,请记下后面要用。
部署报警程序
下载上面的文件,根据你的系统类型部署32位或64位程序。
部署的目录在/etc/zabbix/zabbix_server.conf中查看。
需要注意的是为程序增加执行权限。
创建报警媒介
根据下图的描述,创建你的报警媒介。
请不要遗漏脚本参数,不然会导致收不到消息。-agentid
-corpid
-corpsecret
这三个参数请根据你申请到的如实填写。-to
参数您可以省略(移除该项,会默认发给所有人),也可以写一个或多个例如:-to=user1
-to=user1|user2|user3
创建动作
根据下面图片创建动作
动作的内容为:
默认信息
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<from>{HOSTNAME1}</from>
<time>{EVENT.DATE} {EVENT.TIME}</time>
<level>{TRIGGER.SEVERITY}</level>
<name>{TRIGGER.NAME}</name>
<key>{TRIGGER.KEY1}</key>
<value>{ITEM.VALUE}</value>
<now>{ITEM.LASTVALUE}</now>
<id>{EVENT.ID}</id>
<ip>{HOST.IP}</ip>
<color>FFE61A1A</color>
<age>{EVENT.AGE}</age>
<status>{EVENT.STATUS}</status>
<acknowledgement> {EVENT.ACK.STATUS} </acknowledgement>
<acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory>
</root>
恢复信息
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<from>{HOSTNAME1}</from>
<time>{EVENT.DATE} {EVENT.TIME}</time>
<level>{TRIGGER.SEVERITY}</level>
<name>{TRIGGER.NAME}</name>
<key>{TRIGGER.KEY1}</key>
<value>{ITEM.VALUE}</value>
<now>{ITEM.LASTVALUE}</now>
<id>{EVENT.ID}</id>
<ip>{HOST.IP}</ip>
<color>FF4A934A</color>
<age>{EVENT.AGE}</age>
<recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>
<status>{EVENT.RECOVERY.STATUS}</status>
</root>
为用户增加报警媒介
为用户增加报警媒介以后,用户才能收到消息。
开放源代码
本程序的源码您可以访问 github :golang-zabbix-alter-to-wechat
结语
到了这里,您应该可以收到消息了,如果出现什么异常,您可以在本文后留言。
这篇文章还没有人留言,快来抢沙发吧。