Zabbix 集成 - 基础设施告警
用 Webhook 媒介类型把 Zabbix 接入 Echobell,触发器触发时收到推送通知或电话提醒。
Zabbix 是面向网络、服务器和应用的开源监控平台。通过 Webhook 媒介类型,可以把它的告警送到 Echobell 频道。
创建频道
在 Echobell 中新建一个频道,复制它的 Webhook URL。
创建 Webhook 媒介类型
在 Zabbix 中进入 告警 → 媒介类型 → 创建媒介类型,把 类型 设为 Webhook,命名为 "Echobell"。添加以下参数:
| Name | Value |
|---|---|
url | {ALERT.SENDTO} |
title | {ALERT.SUBJECT} |
body | {ALERT.MESSAGE} |
host | {HOST.NAME} |
severity | {EVENT.SEVERITY} |
status | {EVENT.VALUE} |
填入脚本
把下面的内容粘贴到 脚本 字段:
var params = JSON.parse(value),
req = new HttpRequest();
req.addHeader('Content-Type: application/json');
var response = req.post(params.url, JSON.stringify({
title: params.title,
body: params.body,
host: params.host,
severity: params.severity,
status: params.status
}));
if (req.getStatus() !== 200) {
throw 'Echobell returned HTTP ' + req.getStatus() + ': ' + response;
}
return 'OK';把媒介分配给用户
进入 用户 → 用户,打开需要接收告警的用户,在 媒介 标签页添加一条记录,类型 选 Echobell,发送至 填你的频道 Webhook URL。
创建触发器动作
进入 告警 → 动作 → 触发器动作,添加一个动作,其操作为通过 Echobell 媒介类型向该用户发送消息。
只在故障时通知
Zabbix 会同时发送故障和恢复事件。{EVENT.VALUE} 为 1 表示故障、0 表示恢复,所以给这个频道设置条件,让恢复事件保持安静:
status == "1"
如果你也想收到恢复通知,可以再建一个频道用 status == "0",并把紧急级别调低。