Zabbix:企业微信告警配置

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

先决条件

准备事项

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

需要得到的信息

  • CorpIDSecretAgentId
  • 记录用户的账号

说明

解释下上面的几个条件。添加一个可以发送消息的应用,就可以给组织中的所有成员发送消息;如果没有权限可以联系企业微信管理员帮忙添加。这里使用的是警报通知。添加应用过程如下:

点击企业应用新增应用

新增应用

设置应用

设置应用

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

二维码邀请加入

创建完成后记录下AgentIDSecret

创建完成

获取CorpID

我的企业企业信息
获取CorpID

获取用户账号

像某位用户发送告警需要知道该用户的账号,可在通讯录中查找。若没有权限,请向您的企业微信管理员查询。
打开通讯录,查看成员列表
通讯录与成员列表
单击成员以查看成员详情
成员详情

注:以上图片来自网络

配置前的准备

获取Zabbix脚本路径

1
2
[root@opstrip.com ~]# grep -i alertscripts /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

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

获取告警脚本

1
2
3
4
5
[root@opstrip.com alertscripts]# cd /usr/lib/zabbix/alertscripts
[root@opstrip.com alertscripts]# wget http://download.zhsir.org/Zabbix/weixin_linux_amd64
[root@opstrip.com alertscripts]# mv weixin_linux_amd64 wechat
[root@opstrip.com alertscripts]# chmod 755 wechat
[root@opstrip.com alertscripts]# chown zabbix:zabbix wechat

运行脚本进行测试

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

提示:
--corpid= 我们企业里面的id
--corpsecret=这里就是我们Secret里面的id
--msg=内容
--user=用来接收告警的企业微信账号

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

测试效果如下图:
告警测试效果

在Zabbix中启用企业微信告警

创建报警媒介

依次在Zabbix打开管理报警媒介类型创建媒体类型以创建企业微信告警:
创建媒体类型
添加企业微信告警:
企业微信告警

说明:
--corpid=我们企业里面的id,这里是wwcxxxxxxxxxxxxxxxx
--corpsecret=我们Secret里面的id,这里是Q-HMnIo9HKX8kZwbT4m1SUcS-kmYhmiuRgr4DCLreQA
--agentid=Agentld ID,这里是1000002
--user={ALERT.SENDTO},发送给谁,创建动作时提供
--msg={ALERT.MESSAGE},发送的信息,由触发器提供

添加动作

假定您已完成好Zabbix其他的前期工作,如用户的创建告警添加触发器创建等。
正常添加动作规则及触发器条件,在操作选项卡里添加以下规则:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
【告警】 {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件ID: {EVENT.ID}
触发器URL: {TRIGGER.URL}
Item values:
1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}

操作项中作如下配置:
企业微信告警
恢复操作确认操作类似。

测试验证

停掉zabbix-agent进程

1
[root@opstrip.com ~]# systemctl stop zabbix-agent

大概5分钟后,报警如下
Zabbix测试告警
打开微信,看到警报通知已经有收到告警了
企业微信测试告警

至此,企业微信告警配置完成。

文章目录
  1. 1. 先决条件
    1. 1.1. 准备事项
    2. 1.2. 需要得到的信息
    3. 1.3. 说明
      1. 1.3.1. 点击企业应用,新增应用
      2. 1.3.2. 设置应用
      3. 1.3.3. 同样也可以在微信插件里面二维码邀请关注加入通讯录
      4. 1.3.4. 创建完成后记录下AgentID及Secret
      5. 1.3.5. 获取CorpID
      6. 1.3.6. 获取用户账号
  2. 2. 配置前的准备
    1. 2.1. 获取Zabbix脚本路径
    2. 2.2. 获取告警脚本
    3. 2.3. 运行脚本进行测试
  3. 3. 在Zabbix中启用企业微信告警
    1. 3.1. 创建报警媒介
    2. 3.2. 添加动作
  4. 4. 测试验证