PushPlus(推送加)

PushPlus(推送加),是一个集成了微信、企业微信、钉钉、飞书等实时消息推送平台。只需要调用简单的API,即可帮您迅速完成消息的推送,使用简单方便。

测试平台

两台均使用CentOS 8.2的主机,分别部署Zabbix服务端和客户端,外加一台PC进行配置。

创建PushPlus账户

访问PushPlus官网:https://pushplus.plus ,单击登录。

1推送加官网

依照提示,微信扫码登录。

2扫码登录

登录完成,单击一对多推送

3单击一堆多推送

在创建的群组区域,单击新增群组。

4单击新增群组

依照提示,分别输入编码(可以理解为ID,不建议用中文)、名称、联系方式和简介,确认无误单击确认。

5新增群组

可以看到已经创建Zabbix告警的群组。

6新增好群组

此时单击查看二维码,使用个人微信扫描即可。

7加入用户

订阅后,可以在订阅人列表查看用户信息。

9查看订阅人

之后,你需要记录 token群组编号 ,以便下一步启用Zabbix告警的操作。

配置Zabbix服务端

使用vi编辑器,在/usr/lib/zabbix/alertscripts目录下创建名为pushplus.sh的脚本文件,内容如下。

1
2
3
4
5
6
7
#!/bin/bash
topic=$1 #对应的群组编号
title=$2 #发送的标题
content=$3 #发送的内容
url=http://www.pushplus.plus/send/token #请将token字段替换成自己的token
json="{\"token\": \"$token\", \"title\": \"$title\", \"content\": \"$3\", \"template\": \"html\", \"topic\": \"$topic\"}"
curl -H "Content-Type: application/json" -X POST -d "$json" $url

随后为该脚本文件赋予执行权限,即 chmod +x /usr/lib/zabbix/alertscripts/pushplus.sh

要测试脚本,可执行 sh /usr/lib/zabbix/alertscripts/pushplus.sh [群组编号] [标题] [内容] 命令,若提示请求成功,则已关注该群组的个人微信上也应能收到消息。

  • 发送测试信息10发送测试消息

  • 在个人微信上收到测试信息

    11收到测试消息

配置Zabbix网页端

创建媒介类型

浏览器访问Zabbix的网页控制台,进入管理-报警媒介类型页面,单击创建媒介类型。

12创建报警媒介

根据提示,输入名称PushPlus推送加_微信告警,类型为脚本,脚本名称为 pushplus.sh (与服务端创建的名称对应),脚本参数分别添加 {ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE} ,随后单击添加。

13

在此处可以看到已经创建好的报警媒介。

14

创建动作

在Zabbix网页端,进入配置-动作页面,单击创建动作。

15

根据提示,输入名称(此处为对主机启用微信推送告警信息),设置新的触发条件为 主机 等于 Node2,随后单击操作选项。

16

根据提示,添加用户群组为 Zabbix administrators,添加用户为 Admin (Zabbix Administrator),设置仅送到 PushPlus推送加_微信告警,单击操作细节处左下角的添加。

默认标题

1
故障通知:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}故障!

消息内容

1
2
3
4
5
6
7
8
9
告警主机:{HOSTNAME1}
IP地址:{HOST.CONN}
告警时间:{EVENT.DATE} {EVENT.TIME}(UTC)
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

默认标题

1
故障解除:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}已恢复!

消息内容

1
2
3
4
5
6
7
8
9
告警主机:{HOSTNAME1}
IP地址:{HOST.CONN}
告警时间:{EVENT.DATE} {EVENT.TIME}(UTC)
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

默认标题

1
事件更新:{EVENT.NAME}

消息内容

1
2
3
4
5
6
用户:{USER.FULLNAME}
更新行为:{EVENT.UPDATE.ACTION}
更新时间:{EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}
更新信息:{EVENT.UPDATE.MESSAGE}
当前问题状态:{EVENT.STATUS}
确认状态:{EVENT.ACK.STATUS}

💡提示

可以修改默认标题和消息内容

此时可以看到已添加好的操作。

17

接着重复上述过程,分别配置故障解除、信息更新操作。
恢复操作

更新操作

随后单击左下角的添加,该动作添加完成。

配置报警媒介

单击右上角中间的人仔图标,进入用户基本资料界面,单击报警媒介选项。

20

在报警媒介,单击添加。在此页面中,设置类型为PushPlus推送加_微信告警,收件人为你在PushPlus创建的群组编号(本文为 zabbixMayday ),随后单击更新。

21

效果验证

触发Node2的警报(事先设置了当Nginx服务关闭时,自动触发警报)。

24

稍等片刻,便会收到微信告警。

25

告警详情如下图所示

26