现在 zCate 支持接收 push 消息了,我们可以用它来接收 zabbix 的告警消息。
获取 zCate 并配置 zabbix
iOS 用户可以直接在 App Store 中搜索zabbix
关键字找到zCate
并下载。
Android 用户可以点击这里去下载安卓版 zCate。
第一次打开应用时会提示登录,填写 zabbix 的地址、用户名、密码即可,这些信息只会保存在你的手机上,不会被发送给 zCate 服务器。
快速测试推送
使用测试 token,可以快速测试消息接收效果。
- 打开 zCate 应用,依次点击
设置
——ZABBIX 告警
,在消息推送设置页面,打开消息推送
开关,并在下方的Token
框中填写测试 token00000000000000000000
(20个数字0)。
- 退出当前页面(重要,退出时会上报token和设备的绑定信息)。
- iOS设备还需要退出zCate,打开应用时告警消息会被忽略,不会显示。
- 访问这个链接,发送一条消息 https://zcate.appgao.com/testPush。
- 如果网络无异常的话,此时你会收到测试推送。
获取客户端 push 工具
接下来我们配置让 zabbix 发告警给 zCate。
首先访问这个链接获取 zCate-Push-Tool,这是发消息的工具。
- 下载完成后将其名称改为
zcate
,并放到 zabbix 的alertscripts
目录 - 赋予可执行权限
chmod +x zcate
默认的 alertscripts 目录为 /usr/lib/zabbix/alertscripts
,这个目录可以在 zabbix-server.conf 中设置。
注册 zCate 账号获取 push token
访问 https://zcate.appgao.com,点击注册
,在接下来的注册页面中填写必要的信息来完成注册。
登录后文本框里的字符串就是我们接下来需要的 token。
在 zCate 中设置 token
在 zCate 中点击 设置
->消息推送
,将消息推送开关打开,并在下面的 token 文本框中填写刚才注册得到的 token。
退出本页时,zCate 会向 zCate 服务器注册 push,您还需要检查一下系统是否允许 zCate 发送 push。
在服务器上测试 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
的消息。若收不到消息,请检查网络,并重复进入设置页数次。
设置 zabbix 报警媒介
在 zabbix 的 管理 -> 报警媒介类型 中新增报警媒介,内容参考下面图片。
-platform
目前可以省略
设置 zabbix 动作
在 zabbix 的动作中新增动作。
内容可以使用下面的格式,支持 markdown,显示效果参考本文的第一张图片中的第三张(近期告警):
标题:{HOSTNAME1}:{TRIGGER.NAME}
内容:
告警级别:{TRIGGER.SEVERITY}
故障时间:{EVENT.DATE} {EVENT.TIME}
故障时长:{EVENT.AGE}
IP 地址: {HOST.IP}
检测项: {TRIGGER.KEY1}
# {ITEM.LASTVALUE}
在动作配置页面的操作
中,指定发消息给所有人通过上一步新建的报警媒介push
.
设置用户
给 zcate 创建一个只读用户,然后在用户设置页面将刚才添加的告警媒介添加,如果不出现问题,到这里就可以测试 zabbix 的告警 push 了。
做到这一步,所有推送设置就已经完成了。
过滤不需要的告警显示
当你选择的用户有多个告警媒介时,你在“近期告警”中能全部看到他们,这可能不符合我们的预期,因为里面有很多重复的。
我们这里只让他显示 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
。
填写完成后,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、修改报警媒介参考下图
支持
可以加入 QQ 群获取支持:zCate(496866327),zabbix(195665368)
费用
在 App Store 上架 zCate,需要每年向苹果支付开发者费用。如果您觉的 zCate 对您有用,您可以通过捐赠来与开发者一同承担费用。
这篇文章还没有人留言,快来抢沙发吧。