Zabbix 集成 - 基础设施告警

用 Webhook 媒介类型把 Zabbix 接入 Echobell,触发器触发时收到推送通知或电话提醒。


Zabbix 是面向网络、服务器和应用的开源监控平台。通过 Webhook 媒介类型,可以把它的告警送到 Echobell 频道。

创建频道

在 Echobell 中新建一个频道,复制它的 Webhook URL

创建 Webhook 媒介类型

在 Zabbix 中进入 告警媒介类型创建媒介类型,把 类型 设为 Webhook,命名为 "Echobell"。添加以下参数:

NameValue
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",并把紧急级别调低。