现在 zCate 支持接收 push 消息了,我们可以用它来接收 zabbix 的告警消息。

使用 zCate 接收 zabbix 告警消息

获取 zCate 并配置 zabbix

iOS 用户可以直接在 App Store 中搜索zabbix关键字找到zCate并下载。
Android 用户可以点击这里去下载安卓版 zCate

第一次打开应用时会提示登录,填写 zabbix 的地址、用户名、密码即可,这些信息只会保存在你的手机上,不会被发送给 zCate 服务器。

快速测试推送

使用测试 token,可以快速测试消息接收效果。

  1. 打开 zCate 应用,依次点击设置——ZABBIX 告警,在消息推送设置页面,打开消息推送开关,并在下方的Token框中填写测试 token 00000000000000000000(20个数字0)。

设置zcate测试token

  1. 退出当前页面(重要,退出时会上报token和设备的绑定信息)。
  2. iOS设备还需要退出zCate,打开应用时告警消息会被忽略,不会显示。
  3. 访问这个链接,发送一条消息 https://zcate.appgao.com/testPush
  4. 如果网络无异常的话,此时你会收到测试推送。

收到zcate测试告警消息

获取客户端 push 工具

接下来我们配置让 zabbix 发告警给 zCate。

首先访问这个链接获取 zCate-Push-Tool,这是发消息的工具

  1. 下载完成后将其名称改为 zcate,并放到 zabbix 的 alertscripts 目录
  2. 赋予可执行权限 chmod +x zcate

默认的 alertscripts 目录为 /usr/lib/zabbix/alertscripts,这个目录可以在 zabbix-server.conf 中设置。

注册 zCate 账号获取 push token

访问 https://zcate.appgao.com,点击注册,在接下来的注册页面中填写必要的信息来完成注册。

Screenshot_1559716168.png

登录后文本框里的字符串就是我们接下来需要的 token。

user.png

在 zCate 中设置 token

在 zCate 中点击 设置 ->消息推送,将消息推送开关打开,并在下面的 token 文本框中填写刚才注册得到的 token。
退出本页时,zCate 会向 zCate 服务器注册 push,您还需要检查一下系统是否允许 zCate 发送 push。

Screenshot_1559716695.png

在服务器上测试 push

这一步可以测试从zabbix服务器上能否成功发送消息,可以跳过此步骤,后续步骤如果出错,再来此步骤测试发现问题。

回到 /usr/lib/zabbix/alertscripts 目录,执行指令./zcate --help,会显示 zcate 的使用方法。

Usage of ./zcate:
  -badge int
        Message notification badge (default 1)
  -body string
        Message body (require)
  -platform string
        iOS or Android (require)
  -subtitle string
        Message subtitle
  -title string
        Message title
  -token string
        Your token (require)

执行下面指令来测试 push,iOS 客户端需退出 zCate 才能看到效果。

-token 530f269d03cd478c97ce 需要替换为你自己刚刚申请到的 token。

./zcate -badge 10 -body "message body" -platform all -subtitle "subtitle" -title "title" -token 530f269d03cd478c97ce

若无意外,您的客户端会收到标题为 title,副标题为 subtitle,内容为 message body,角标(仅 iOS)为 10 的消息。若收不到消息,请检查网络,并重复进入设置页数次。

Screenshot_1559717470.png

IMG_3099.jpg

设置 zabbix 报警媒介

在 zabbix 的 管理 -> 报警媒介类型 中新增报警媒介,内容参考下面图片。

-platform 目前可以省略

报警媒介.png

设置 zabbix 动作

在 zabbix 的动作中新增动作。

内容可以使用下面的格式,支持 markdown,显示效果参考本文的第一张图片中的第三张(近期告警):

标题:{HOSTNAME1}:{TRIGGER.NAME}
内容:

告警级别:{TRIGGER.SEVERITY}
故障时间:{EVENT.DATE} {EVENT.TIME}
故障时长:{EVENT.AGE}
IP 地址:   {HOST.IP}
检测项:    {TRIGGER.KEY1}
# {ITEM.LASTVALUE}

在动作配置页面的操作中,指定发消息给所有人通过上一步新建的报警媒介push.

11.png

设置用户

给 zcate 创建一个只读用户,然后在用户设置页面将刚才添加的告警媒介添加,如果不出现问题,到这里就可以测试 zabbix 的告警 push 了。

33.png

做到这一步,所有推送设置就已经完成了。


过滤不需要的告警显示

当你选择的用户有多个告警媒介时,你在“近期告警”中能全部看到他们,这可能不符合我们的预期,因为里面有很多重复的。

Screenshot_1559720099.png

我们这里只让他显示 null 产生的告警,我们需要先获取动作 null 的 action ID。

在zabbix 中编辑这个动作,我们可以在 url 中获取 action ID。

http://zbx.qiansw.com/actionconf.php?form=update&actionid=12

现在我们知道他的 action ID 是 12,我们只需要在 zcate 设置 -> 内容显示设置 中填写 12 即可,如果需要显示多个 id,可以直接填写使用半角逗号分隔的多个数字 id,如 12,13

Screenshot_1559720111.png

填写完成后,zcate 在近期告警页面就只会显示我们指定的动作产生的告警了,参考本文第一张图片中的第三张。

错误排查

如果碰到问题,可以在 zcate 的设置 -> 关于页面查看到联系方式。

进阶·推送消息时 app 角标显示问题数量

这一步不做也不会影响消息的接收。

默认情况下,app 收到消息时角标会设置为 1,使用下面方法,可以在收到消息时将角标设置为当前的问题数量,参考下面图片,zcate 的角标是 10,表示当前有 10 个问题。

请输入图片描述

1、下载这个工具:internelp/get-zabbix-problems,放到 /usr/lib/zabbix/alertscripts 目录。

2、新增一个脚本 /usr/lib/zabbix/alertscripts/zcate.sh:

#!/bin/bash
/usr/lib/zabbix/alertscripts/zcate -token="$1" -title="$2" -body="$3" -platform=ios -badge=`/usr/lib/zabbix/alertscripts/get-zabbix-problem
s`

3、确保 /usr/lib/zabbix/alertscripts 目录中有下列文件:

[root@zabbix01 alertscripts]# ll
total 20552
-rwxr-xr-x 1 root root      12 May  7 17:35 null
-rwxr-xr-x 1 root root 7252355 Jun 10 11:25 get-zabbix-problems
-rwxr-xr-x 1 root root 7149525 May  7 11:18 zcate
-rwxr-xr-x 1 root root     154 Jun 10 12:14 zcate.sh

4、修改报警媒介参考下图

QQ20190610-122016@2x.png

支持

可以加入 QQ 群获取支持:zCate(496866327),zabbix(195665368)

费用

在 App Store 上架 zCate,需要每年向苹果支付开发者费用。如果您觉的 zCate 对您有用,您可以通过捐赠来与开发者一同承担费用。

WechatIMG54.jpg