RSS

zabbix微信告警

zabbix 可支持短信,E-mail,脚本等告警方式。之前做过一个 cacti 通过微信告警的感觉还不错,比邮件好点,因为微信经常开,而邮件却很少看,所以做了一个 zabbix 微信告警的小工具。
微信的告警是通过微信公众账号发送客服消息告警的,后来发现一个问题,就是用户 48 小时之内不与公众账号交互,公众账号就不能向用户发送消息了。所以后来就放弃了,最近看到了微信企业号,感觉比之前的公众账号功能更多了,而且可以分应用了。所以就用企业号做了一个简单的 zabbix 告警小工具

申明:

1.此告警工具用是我的企业微信号告警的,所以要使用此工具的用户,必须要登记,登记之后我会在后台开通,关注之后才能使用此工具(微信企业号硬性需求,同时也是为了安全)
2.发送告警的信息只经过腾讯服务器,发送环节经过加密发送,在后台我也是看不到发送的告警信息的
3.如果用户没有自己的企业号,可以使用这个小工具发送告警信息。如果有自己的企业号,想用自己的企业号发送,可联系本人定制,具体费用请联系本人。
4.本工具只用来发送告警消息,切勿乱用,本人有权取消违规用户的账号!此工具为测试版本,限定测试人数 100 人,测试完成后,我会发布正式版本。
5.zabbix 服务器必须可上外网,不需要有工网 IP,能连接微信服务器即可。

工具特点:

*下载之后,在 zabbix 里简单配置即可用,工具本身无配置文件,无依赖
*可同时发送多人,发送人在 zabbix 里设置
*企业号发送,保证消息传递过程的安全
*无发送次数限制

工具下载:

本工具使用 go 语言写成,直接发布二进制文件,下载即可用,无依赖包。
Linux x86 位版本:https://dl.cactifans.com/tools/send.x86.tar.gz

<code>SHA1 (send.x86.tar.gz) = 5999cb16c88a62c9a5323fc66e4cd944b2da2fb8
</code>

LInux x86_64 位版本:https://dl.cactifans.com/tools/send.x86_64.tar.gz

<code>SHA1 (send.x86_64.tar.gz) = 88fd1037001b248d0432202cc9dd54442c3f6c27
</code>

关注公众账号

首先要要提供用户的微信号,或者邮箱给我,我会在后台添加,只有添加后,经过验证才能关注成功,关注成功后,我会提供用户 UserID。可发邮件到 cactifans#gmail.com(#换成@)申请试用,通过之后我会把你的 UserID 发送给你。工具使用 QQ 交流群:61797150 231169991
申请邮件格式:

<code>微信号:
邮箱:
城市:
申请理由:
</code>

申请成功后扫描关注二维码
qrcode1

zabbix 配置

zabbix_server.conf 文件里配置脚本告警目录

<code>AlertScriptsPath=/usr/local/zabbix/alertscripts
</code>

根据自己情况配置,目录不存在可手动建立
下载工具到告警目录(以 Linux64 位版本为例)

<code>cd /usr/local/zabbix/alertscripts
wget https://dl.cactifans.com/tools/send.x86_64.tar.gz
tar zxvf send.x86_64.tar.gz
chmod a+x send
chown zabbix:zabbix send
</code>

至此工具安装完成,是不是很容易^_^!在 zabbix 界面里添加脚本告警
添加告警媒介
设置脚本,脚本名称为工具名称,设置好点添加按钮
设置
添加新的报警媒介到用户,我以 Admin 用户为例
关联到用户
添加
添加
选择刚才的媒介,收件人为我提供的 UserID,多个用户用|隔开
用户
添加后一点要点更新
更新
我们在这里独立设置一个 Action,当然你也可以在默认的 Action 里添加
Action1
名称为 weixin
Action2
告警消息的格式,大家可以根据自己需求具体设置,下面是我的设置

<code>默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
</code>

切换到操作标签,添加操作
Action3
选择发送到 Admin 用户,只使用 notice,选择好之后点添加
Action4
设置好之后如下,点添加
Action5
添加好之后如下,
配置
经过以上步骤,就完成了配置,就可以使用 zabbix 来告警啦,用 dd 命令测试下磁盘 i/o 告警,一会就会看到微信上发过来的告警信息
pic1
恢复信息
pic2

PS:后续计划

1.后续可能会增加发送次数计数,方便管理用户
2.添加查询操作到微信,针对用户定制开发。可通过微信查询 zabbix 服务器里监控主机的状态,通过微信简单操作 zabbix。
预览
预览