Zabbix 新版微信告警


 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。



一、微信企业号申请

地址: http://work.weixin.qq.com/

第一步注册 

zabbix通过企业微信发送告警 告警通知 企业微信_docker

 

因为我们没有企业,所以我们选择组织。

提示:这里简单的说一下,微信企业号和微信公众号是不一样的!

zabbix通过企业微信发送告警 告警通知 企业微信_bc_02

 

继续下一步

提示一下: 因为这步需要添加管理员的身份证号以及手机号,我这里就不截图了


二、配置微信企业号

当我们设置完微信号的信息之后,请继续跟我操作。中间可能步骤不是特别全,就是设置企业的信息

我们需要记录CorpID 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_03

我们点击通讯录,添加一个组,或者添加一个成员。成员可以使用微信邀请或者短信邀请,我扫码添加自己的时候微信这个坑比给我下载一个企业微信。很尴尬,微信变了。不单纯了 

zabbix通过企业微信发送告警 告警通知 企业微信_bc_04

添加完管理员需要记录管理员账号

我们添加成员需要记录成员ID 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_05

点进去 

zabbix通过企业微信发送告警 告警通知 企业微信_运维_06

 

记录用户账号 

zabbix通过企业微信发送告警 告警通知 企业微信_微信_07

点击企业应用,新增应用 

zabbix通过企业微信发送告警 告警通知 企业微信_docker_08

设置应用 

zabbix通过企业微信发送告警 告警通知 企业微信_运维_09

同样也可以在微信插件里面二维码邀请关注加入通讯录 

zabbix通过企业微信发送告警 告警通知 企业微信_docker_10

创建完成后 

需要记录Agentld、Secret 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_11

以前的应用ID和组ID已经被取消


准备事项:

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


需要得到的信息

记录用户的账号
CorpID和Secret、Agentld

三、修改Zabbix.conf

[root@abcdocker ~]# grep alertscripts /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts

我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本

四、设置脚本

下载脚本

[root@abcdocker alertscripts]# wget http://download.zhsir.org/Zabbix/weixin_linux_amd64
[root@abcdocker alertscripts]# mv weixin_linux_amd64 wechat
[root@abcdocker alertscripts]# chmod   755 wechat 
[root@abcdocker alertscripts]# chown  zabbix:zabbix wechat

执行脚本,进行测试

[root@abcdocker alertscripts]# ./wechat --corpid=wwcxxxxxxxxxxxxxxxx  --corpsecret=Q-HMnIo9HKX8kZwbT4m1SUcS-kmYhmiuRgr4DCLreQA   --msg="您好,告警测试" --user=CongYuHong  --agentid=1000002
{"errcode":0,"errmsg":"ok","invaliduser":""}

提示:
--corpid= 我们企业里面的id
--corpsecret= 这里就是我们Secret里面的id
-msg= 内容
-user=我们邀请用户的账号

因为脚本是编译过的,无法进行编辑,我们可以使用./wechat -h or --help 查看

zabbix通过企业微信发送告警 告警通知 企业微信_微信_12


五、zabbix web 界面配置

创建报警媒介 

zabbix通过企业微信发送告警 告警通知 企业微信_docker_13

--corpid=我们企业里面的id
--corpsecret=这里就是我们Secret里面的id
--agentid= Agentld ID
--user={ALERT.SENDTO}
--msg={ALERT.MESSAGE}

这里是和旧版本的区别 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_14

创建报警用户 

zabbix通过企业微信发送告警 告警通知 企业微信_bc_15

 

zabbix通过企业微信发送告警 告警通知 企业微信_docker_16

这里填写微信收件人的账号 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_17

设置报警动作 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_18

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_19

报警消息设置如下:

hostname: ({HOST.NAME}
Time:{EVENT.DATE} {EVENT.TIME}
level:{TRIGGER.SEVERITY}
message:{TRIGGER.NAME}
event:{ITEM.NAME}:{ITEM.VALUE}

url:www.abcdocker.com

恢复报警如下:

hostname: ({HOST.NAME}
Time:{EVENT.DATE} {EVENT.TIME}
level:{TRIGGER.SEVERITY}
message:{TRIGGER.NAME}
event:{ITEM.NAME}:{ITEM.VALUE}

url:www.abcdocker.com

报警配置如下 

zabbix通过企业微信发送告警 告警通知 企业微信_zabbix通过企业微信发送告警_20

 

恢复配置如下 

zabbix通过企业微信发送告警 告警通知 企业微信_微信_21

提示: 不要忘记先点小的add-->小的update-->Update


六、测试

为了验证效果我们停掉zabbix-agent,进行查看报警

[root@abcdocker ~]# systemctl stop zabbix-agent

报警如下 

zabbix通过企业微信发送告警 告警通知 企业微信_运维_22

我是把我网站停了让你们看结果的! 

zabbix通过企业微信发送告警 告警通知 企业微信_docker_23

差距还很大,努力吧少年~