第十七章 扩展告警方式
近日完成《深入浅出 zabbix 4.0》视频教程的录制并正式发布,该教程基于 zabbix 4.2 ,对Zabbix进行全面讲解。欢迎大家围观。课程链接:https://edu.csdn.net/course/detail/24870
Zabbix支持多种告警方式(Media types),包括Email、Jabber、SMS和Ez Texting。Email告警方式用的最多,Jabber和Ez Texting在国内基本没有用的,SMS需要安装短信猫。也有公司提供商业的短信告警、电话告警等,需要额外支付服务费用,也有人通过139信箱实现伪短信告警效果。有没有其他更好的既省钱又快捷方便的告警方式呢?答案是有,那就是通过脚本扩展,使用微信或钉钉开放的API接口发送告警信息。
17.1 微信告警方式
17.1.1 注册微信公众平台企业号
使用微信告警之前,我们需要注册一个微信公众平台企业号并添加部门、应用和用户,步骤如下:
1、 在https://qy.weixin.qq.com页面注册企业号。
2、 登录企业号,在应用中心添加消息型应用,添加成功后点击该应用,在弹出页面中发现并记录应用ID以备后用。
3、 在通讯录的组织架构中添加子部门,添加成功后点击该部门名称右侧的三角形图标,在弹出菜单中点击修改部门,在弹出页面中发现并记录部门ID以备后用。
4、 点击通讯录中新添加的部门名称,新增成员或批量导入。
5、 在设置的权限管理中新建一个普通管理组,需要在设置权限的页面中分别要对通讯录权限和应用权限中进行设置,允许前面添加的部门和应用可以查看或发消息的权限。创建成功后,在该组的信息中查找CorpID(企业号的标识)和Secret(管理组凭证密钥)并记录以备后用。
17.1.2 微信接口
调用企业号时,需使用Https协议、Json数据格式、UTF8编码,访问域名为https://qyapi.weixin.qq.com,数据包不需要加密。
收集AccessToken请求说明:
在每次主动调用企业号接口时需要带上AccessToken参数。AccessToken参数由CorpID和Secret换取。不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复收集返回相同结果。
Https请求方式: GET
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect
返回结果:
正确的JSON返回结果:{"access_token": "accesstoken000001","expires_in": 7200 }
错误的JSON返回结果:{"errcode": 43003,"errmsg": "require https" }
消息发送接口请求说明:
企业可以主动发消息给成员,每天可发的数量为:帐号上限数*30人次/天。调用接口时,使用Https协议、JSON数据包格式,数据包不需做加密处理。
Https请求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
返回结果:如果无权限,则本次发送失败;如果收件人不存在或未关注,发送仍然执行。两种情况下均返回无效的部分(注:由于userid不区分大小写,返回的列表