Zabbix 使用微信接收报警信息

DevOps技术栈

共 2436字,需浏览 5分钟

 ·

2020-08-21 06:08

作者:卢磊

博客:https://blog.csdn.net/qq_34556414

目录[-]

1、配置Zabbix微信报警媒介

2、配置收件人

3、配置Action

4、准备微信报警脚本

5、微信脚本关联企业微信

6、微信告警脚本配置连接微信API认证信息

7、企业微信消息测试

8、Zabbix告警测试


Zabbix没有为我们提供微信报警的媒介,我们需要自己创建,通过脚本来发消息。主要分为三部分:

  1. zabbix server端配置报警媒介,以及发给谁 ;

  2. 准备微信告警脚本;

  3. 在企业微信创建应用API(供zabbix报警调用)以及用户的账号(收报警信息)。

 

1、配置Zabbix微信报警媒介


Administration-->Media Types-->Create Media Type

脚本加入三个参数:

  • {ALERT.SENDTO} 发送给谁

  • {ALERT.SUBJECT} 发送信息的标题

  • {ALERT.MESSAGE} 发送内容

脚本文件放在服务端即server端:微信脚本是放在服务端的weixin.sh


2、配置收件人


配置报警邮件的接收人,到底写谁?这个收件人必须拥有企业微信账号,后面会讲,可以先配置:

至此 发送端接收端都已经配置好了  微信监控报警配置完毕

3、配置Action


4、准备微信报警脚本


上传微信报警包,并解压缩 (公众号回复关键字:"zbx-wx" 即可获取

[root@localhost src]# tar zxvf zabbix_weixin.x86_64.tar.gz    [root@localhost zabbix_weixin]# lltotal 6712-rwxr-xr-x. 1 root wheel 6868856 Jan 27  2016 weixin  #可以看到是一个可执行脚本文件,有x权限-rw-r--r--. 1 root wheel      99 Jan 27  2016 weixincfg.json  #配置文件[root@localhost zabbix_weixin]# mv weixin weixin.sh   #因为zabbix媒介weixin里面配置脚本名称就是weixin.sh,一个二进制文件(这个脚本名字要和媒介里面的微信脚本名称保持一致)

 配置server端报警文件的路径,即脚本存放的路径:

[root@localhost zabbix_weixin]# vim /etc/zabbix_server.confAlertScriptsPath=/var/lib/zabbixsrv/alertscripts

将脚本拷贝到该目录:

[root@localhost zabbixsrv]# mkdir -p /var/lib/zabbixsrv/alertscripts[root@localhost ~]# cp /usr/src/zabbix_weixin/weixin.sh  /var/lib/zabbixsrv/alertscripts/[root@localhost ~]# cd /var/lib/zabbixsrv/alertscripts/[root@localhost alertscripts]# lsweixin.sh[root@localhost alertscripts]# cp /usr/src/zabbix_weixin/weixincfg.json /etc/  --微信配置文件拷贝到/etc下面,这个文件配置在企业微信配置好后面配


5、微信脚本关联企业微信


在企业微信创建消息应用,在企业微信的后台创建应用,就是消息应用,微信报警的应用要绑定部门成员,只有在该部门里面的成员才可以接收到微信信息。

创建运维部门:

创建应用,这个应用就是用来实现报警的API, 可见范围就是哪些人可以使用该应用,即报警。

创建用户,这些用户属于运维部门,就是用来接收报警信息的,注意账号,这个账号是在zabbix配置收件人需要配置的,即send to。

6、企业微信消息测试


这个应用为报警提供了API接口,可以看到产生了AgentId  Secret 这个都需要添加到配置文件里面,下面先来测试发信息。


可以看到通过该API可以向运维部的成员发送消息,要让zabbix触发器满足某个条件通过该API来实现微信报警。

7、微信告警脚本配置连接微信API认证信息


[root@localhost zabbix_weixin]# vim /etc/weixincfg.json{"corp": {        "corpid": "ww0ba7f12c8be29fdf",        "secret": "rDAdRGMdb5YilAWoChY5bJFCp1yS6t500i66LmoysDM",        "agentid": 1000004    }}

这三行就是调用微信api接口凭据,copyid相当于企业ID, secret+agentid相当于一个应用,这个应用就是来实现报警的。

8、Zabbix告警测试


找一台被监控端,关闭nginx服务触发告警


- END -

 推荐阅读 

Shell文本处理三剑客:grep、sed、awk

Java 应用运维最常见的3个问题排查思路

记一次线上商城系统高并发的优化

SSH只能用于远程Linux主机?那说明你见识太短了!

10 个Linux Awk文本处理经典案例

10 分钟部署一个 Kubernetes 集群

部署一套完整的Kubernetes高可用集群(二进制)

从网管到架构师再到微创业,我这9年的成长感悟




点亮,服务器三年不宕机

浏览 48
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报