• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

通过微信服务号推送Zabbix告警

Zabbix 蜷缩的蜗牛 8个月前 (01-15) 15次浏览 已收录


近期看到一篇通过微信实现Zabbix告警的文章,但实践时发现,无法成功发送消息。

分析原因,应该是微信公众平台加强了登录验证,在登录时会需要管理员进行扫描二维码操作才能成功登陆后台:

而之前文章中的 API 是通过账号密码模拟浏览器登陆方式,进行后台操作,无法通过这个安全验证,消息发送功能自然也不可用。

本文经我自己验证,是可以实现通过微信推送消息的。这种实现基于微信服务号平台的“模板短信”功能,必要条件如下:

微信服务号通过微信认证(需提交公司营业执照等等信息,同时会收取 300 元/年的认证服务费用)。

这个实现方法,还需要Python + Shell脚本的配合,我已经放到 github 上了,在如下的实施步骤中也有说明。

备注:如果个人用户的话,建议可以直接使用 QQ 邮件+微信邮件提醒。

好叻,下面开始我们整个步骤。

一、注册微信服务号,并进行微信认证

关于微信服务号的注册及认证,请看微信官方指引

二、开通模板消息功能以及报警通知模板

  1. 在微信公众平台管理后台添加功能-模板消息
  2. 从模板库中选择报警通知模板(后面以“IT/网络游戏”的“系统故障告警通知”模板进行配置,其他行业内的告警类模板可能会有不同,可参照配置)

三、下载配置告警通知脚本

# 下载告警通知脚本

$ git clone https://github.com/vincihu/misc/

# 部署告警通知脚本到 zabbix 的 alertscripts 目录

$ sudo mv misc/wxAlert /usr/lib/zabbix/alertscripts/

$ sudo mv /usr/lib/zabbix/alertscripts/{wxAlert/,}AlertWeixin.sh

$ sudo mkdir /usr/lib/zabbix/alertscripts/logs

# 为脚本添加 zabbix 用户执行权限

$ sudo chmod u+x AlertWeixin.sh

$ sudo chown zabbix:zabbix \

/usr/lib/zabbix/alertscripts/{logs/,AlertWeixin.sh}

# 安装需要的 python 模块

$ sudo pip install -U configparser requests simplejson

修改 wxAlert/wxAlert.conf,填入微信服务号相关信息

[default]

appid = APPID

secret = SECRET

template_id = TEMPLATE_ID

四、获取服务号订阅用户信息

# 使用 wxGetUserInfo.py 脚本获取服务器订阅用户列表,以及其 openid

# openid 用于后续的告警接收,相当于邮件告警的邮件地址

$ cd /usr/lib/zabbix/alertscripts/wxAlert/

$ python wxGetUserInfo.py 2>/dev/null

nickname: JasonQu

openid: AAAA

headimgurl: http://wx.qlogo.cn/mmopen/XXXX/0

nickname: 胡文西

openid: BBBB

headimgurl: http://wx.qlogo.cn/mmopen/YYYY/0

五、配置 Zabbix

1. 添加 Media type(告警媒介)

Name: X. AlertWeixin

Type: Script

Script name: AlertWeixin.sh

2. 配置 profile – Media(告警接收 ID)

Type: X. AlertWeixin

Send to: OPENID

六、测试验证

测试告警,微信消息截图如图

weixin

本文转载自 通过微信服务号推送 Zabbix 告警


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明通过微信服务号推送 Zabbix 告警
喜欢 (0)
[]
分享 (0)