利用「微信企业号」进行报警 ,微信企业号的注册过程,请参考这篇文章 zabbix如何实现微信报警
微信发送原理: Step1. 根据微信企业号属性 CorpId 和 Secret 向服务接口,获取本次请求 Token Step2. 携带刚才返回的 Token ,向消息接口发送 post 请求
微信接口效果:
注意:实际插件报警结果,与email的内容一致,如下图
前置:
- 已进入cabot的安装目录,例如
/usr/local/datacenter/cabot
- 已停止 cabot 相关进程,有2组进程。
- 消息队列处理进程
ps -ef | grep python | grep celery
10个进程 - UI 进程
ps -ef | grep python | grep manage.py
1个进程(或许你有其他 django 应用在运行,请自己通过端口区分) 如果你实在记不清,也可以通过启动日志查看,类似这样的日志,其中 celery 有10个进程,注意需要逐一关闭
14:04:00 web.1 | started with pid 36652 14:04:00 celery.1 | started with pid 36653
- 消息队列处理进程
- 已注册了一个 「微信企业号」,并有 「CorpID」和「Secret」及「应用ID」和「接收组ID」。如果记不住 「CorpID」和「Secret」可以在 微信公共号后台 「设置」-> 「权限管理」->「你自己建的组名」 最下面有
- 已通过 微信企业号接口调试工具 调试OK了微信账号,附上发送接口说明
1.编写配置文件,添加 插件名称(注意是下划线,不是工程名,而是里面的 模块名,由setup.py里指定的), 并修改 setup.py
内的相关信息
vi conf/development.env
# Plugins to be loaded at launch
CABOT_PLUGINS_ENABLED=cabot_alert_hipchat==1.7.0,cabot_alert_twilio==1.6.1,cabot_alert_email==1.3.1,cabot_alert_wechat==0.0.1
# 需要添加 wechat 配置信息,前两个分别对应微信接口获取token,后2个是post请求json内容
WECHAT_CORP_ID=你的CORP_ID
WECHAT_CORP_SECRET=你的SECRET码
WECHAT_APPID=应用ID
WECHAT_PARTY_ID=组ID
2.通过 pip 安装自定义插件
pip install git+git://github.com/yuanxiaolong/cabot-alert-wechat.git
3.初始化数据库
sh setup_dev.sh
4.无误后,启动 cabot
nohup foreman start &
官方更详细的 文档 http://cabotapp.com/dev/writing-alert-plugins.html
官方DEBUG测试 http://qydev.weixin.qq.com/debug