Zabbix使用微信企业公众号接口实现报警完整版(Python+Shell)

老蔡博客去年分享过一篇:Zabbix使用微信接口实现微信报警功能,一时间引来了无数网友的热评和关注。随着时间推移,调用微信接口的人越来越多,稳定性越来越差,因此腾讯决定对之前的订阅号接口做了限制,这就导致有些网友经常会出现调用不通的情况,为了让微信更好地为我们服务,老蔡博客介绍如何使用微信公众号接口做微信报警第一选择!

c90ec90564a371aba08fb39d7bd96ff7_thumb

 

相信使用过微信接口的朋友都知道公众号比订阅号和服务号权限高很多,这是因为它是一个企业经过微信平台层层把关之后才授权的账号,因此它不会受到例如48小时不与粉丝互动则被临时禁用发信息权限,也没有例如群发信息数量等等限制;而且它还提供API接口给开发人员做调用。因此在条件允许的前提下,大家尽量使用微信公众号来接受Zabbix的报警信息。

 

今天老蔡博客将给大家介绍的如何使用企业公众号接口实现微信报警功能,本文将从头到尾、包括注册微信公众号、安装zabbix、配置zabbix报警等详细的给大家讲解,如果有问题欢迎给老蔡留言。

 

首先我们要到微信注册一个公众号,如果是以企业的身份(需提供营业许可证之类的证件)自然很好,如果是个人身份的话,我们可以注册一个团体公众号,这个跟企业公众号没啥太大的区别,有如下:

认证号和注册号的区别

分类 功能 普通企业号 认证企业号
帐号相关 帐号上限 200人 根据企业提交人数证明分配
企业号名称修改 可任意修改 修改名称需重新认证
基本功能 JS-SDK功能 除分享接口外都可使用 无限制
微企通讯录(基础应用) 可以使用 可以使用
管理员助手(基础应用) 可以使用 可以使用
企业会话 可以使用 可以使用
高级功能
自定义验证字段 无法使用 可以使用
去除微信页面安全风险提示 无法使用 可以使用
申请成为第三方应用提供商 无法申请 可以申请
企业名片功能 无法使用 可以使用
微信支付 无法申请 可以申请
摇一摇周边 无法申请 可以申请

下面开始介绍如何注册微信账号~

1、团体号注册地址:点这里 提交账号信息之后会收到一份确认邮件,打开链接跳转到选择账号类型,这时我们选择企业号:

捕获

2、主体类型选择团体并填写相关资料信息,老蔡博客这里提醒下大家,使用同一个身份注册的普通公众号不能超过5个,什么是普通公众号?它包括了订阅号,服务号,企业号,因此请珍惜每次机会。

捕获2

 

3、提交相关信息并通过验证,之后就可以设置账号名称,微信公众号名称可以随便起,后面可以随便改。

捕获3

4、一系列的操作之后终于来到了后端,我们接下来需要做什么?

捕获4

 

微信报警我们要准备这些东西:

一个微信企业号、企业号已经被部门成员关注、企业号里有一个可以发消息的应用、一个授权管理员,可以使用该应用给成员发消息;

我们要取到这些信息:成员账号、组织部门ID、应用ID、CropID、Secret;

 

4.1、新增部门组和组员,并获取组员账号ID,部门ID号;

捕获4捕获14
捕获5

4.2、新增应用,这里选择消息型应用

捕获6

4.3、填写应用信息保存并记录ID号

捕获7

 

捕获8

4.4、获取CorpID、Secret,设置-》系统管理组-》新建

捕获12

捕获10

捕获5 捕获13

以上三步就是获取CorpID、Secret 过程,在设置过程中管理员(内部)需要扫描微信二维码进行关注和设置登录密码;

经过以上的配置之后,我们得到如下信息,配置报警信息是,成员和部门可以同时存在或只配置一个即可,看实际条件而定。值得说明的是成员账号和部门在应用的可见范围之内。

  • 成员账号:laocai、yw1
  • 部门ID:1
  • 应用ID:2
  • CropID:如上
  • Secret:如上

 

现在开始介绍安装zabbix和配置zabbix报警,这里演示的系统是CentOS7、Zabbix3.0.3

zabbix牛逼之处,老蔡博客就不多说了,用过他的人都懂~!zabbix告警途径五花八门、只有你想不到,没有它做不到:

  • SMS(短信):手机无需联网,只要有信号就可以,如果企业自身有SOA接口,简直爽死你,坏处是可能会有延迟;
  • Email(邮件):这个一般来说是用的最多的,因为有些公司上班不允许带手机,或者我想在邮件里面DIY一些我喜欢的内容,或者领导、BOSS喜欢的内容;然后你也可以注册个139的邮箱账号,不管你用联通、移动、电信都是没问题的、再打开短信提醒功能、微信功能、也是不错的选择;
  • WeiXin(微信):微信接口的开放让中国互联网提升了几个档次,因为它免费呀、好用呀,利用zabbix api接口还可以搞出一些装逼的功能出来~,有了微信就有了整个世界;
  • DingDing(钉钉):目前我们公司正在使用的报警选择、特点跟微信差不多、专攻企业应用市场、但是在功能选择上略low,跟微信不是一个档次;

下来开始介绍如何安装zabbix和配置告警~

1、安装rpm源

2、安装zabbix

以上选择mysql作为数据存储的数据库,前提是先安装好mysql,由于centos7上自带的base源并没有msql,需要到官网下载,不过老蔡博客这里推荐大家安装mariadb,特点免费、开源;

3、创建zabbix数据库并初始化数据库

4、初始化zabbix数据库

5、配置zabbix

6、启动zabbix服务

7、访问Web界面

捕获15

 

下面介绍一下如何配置监控告警脚本

脚本分为两类,一种是python,一种的shell;两种其实并无太大差异,shell脚本是系统原始支持,而python需脚本需要安装python环境,但随着python越来越被大众接受,许多linux发行版已经将其作为默认软件随身发布;

python脚本如下:wechat.py

说明:zabbix3.0版本开始可以设置传递给脚本的参数,也就说你可以在报警条件触发时选择传递的参数,比如我们这里的微信报警,只要接收报警的用户和交警内容即可,无需标题,标题一般来说是使用邮件报警时使用的!

我们来测试一下:

将脚本放置在zabbix_server.conf定义的目录里头,这里是:AlertScriptsPath=/usr/lib/zabbix/alertscripts

执行脚本:

发现没有安装simplejson模块,那么去看看老蔡博客这篇文章:Linux下安装python模块Easy_install和SimpleJson

安装完毕之后,再次执行:

查看微信,已经收到告警信息!

Screenshot_2016-08-04-12-24-35

 

shell脚本如下:wechart.sh

我们来测试一下:

查看微信,已经收到告警信息!

Screenshot_2016-08-04-12-18-17

下面介绍一下在zabbix3.0版本如何配置微信报警脚本

 

 

 

 

关于团体类型的引入微信有做介绍:

 为什么要引入“团队”类型?
答:1. 让企业中某个小团队的成员能够先试用起来。
2. 支持具备相互认可,有固定紧密关系的社会化组织,如车友会、校友会、业主委员会等。
如何注册团队类型的企业号?
答:用户在注册时选择团队类型,无需提交组织机构代码证或营业执照,仅需提供个人身份证明即可。
团队类型的企业号是否可以认证?
答:团队类型的企业号可以认证,但认证时则需转换成企业/政府/注册组织中的一种,并提供相应的认证材料。
什么是团队类型扩容?  
答:对于无法提供组织机构代码证或营业执照的团队,提供扩容机制,以提供用户上限。
扩容后,仅提升帐号上限(最高不超过1000人),不会加上认证标识。
团队类型的企业号如何扩容?
答:团队类型的企业号需要由第三方真实企业提供担保,方可进行扩容。
用户提交扩容申请,我方人工审核通过后,才能进行扩容。
扩容的时效期为一年,逾期需重新申请。
团队类型认证与扩容的关系
答:已具备认证所需材料的团队类型企业号可申请认证。
对于某些1000人以下无法提供认证材料的团队,我们提供一种其他途径供团队类型扩容。
团队类型扩容后仅提升账号上限,但仍可进行认证加上认证标识,认证后与其他认证号完全一致。