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