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" を条件にした 2 つ目のチャンネルを、より低い緊急度で使ってください。