---
title: "Zabbix 連携 - インフラのアラート"
sidebarTitle: Zabbix
description: Webhook メディアタイプで Zabbix を Echobell に接続し、トリガー発報時にプッシュ通知や電話を受け取ります。
---

import { Step, Steps } from "fumadocs-ui/components/steps";

[Zabbix](https://www.zabbix.com/) はネットワーク・サーバー・アプリケーション向けのオープンソース監視プラットフォームです。Webhook メディアタイプを使うと、そのアラートを Echobell のチャンネルに送れます。

<Steps>
<Step>
    ### チャンネルを作成する
    Echobell で新しいチャンネルを作成し、**Webhook URL** をコピーします。
</Step>
<Step>
    ### Webhook メディアタイプを作成する
    Zabbix で **アラート** → **メディアタイプ** → **メディアタイプの作成** を開き、**タイプ** を `Webhook` にして「Echobell」という名前を付けます。次のパラメータを追加してください。

    | Name | Value |
    | --- | --- |
    | `url` | `{ALERT.SENDTO}` |
    | `title` | `{ALERT.SUBJECT}` |
    | `body` | `{ALERT.MESSAGE}` |
    | `host` | `{HOST.NAME}` |
    | `severity` | `{EVENT.SEVERITY}` |
    | `status` | `{EVENT.VALUE}` |
</Step>
<Step>
    ### スクリプトを貼り付ける
    **スクリプト** 欄に次を貼り付けます。

    ```js
    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';
    ```
</Step>
<Step>
    ### メディアをユーザーに割り当てる
    **ユーザー** → **ユーザー** を開き、通知を受け取るユーザーの **メディア** タブで、**タイプ** に `Echobell`、**送信先** にチャンネルの Webhook URL を設定したエントリを追加します。
</Step>
<Step>
    ### トリガーアクションを作成する
    **アラート** → **アクション** → **トリガーアクション** を開き、`Echobell` メディアタイプ経由でそのユーザーにメッセージを送る操作を持つアクションを追加します。
</Step>
<Step>
    ### 障害時だけ通知する
    Zabbix は障害イベントと復旧イベントの両方を送ります。`{EVENT.VALUE}` は障害で `1`、復旧で `0` になるので、チャンネルに次の[条件](/docs/conditions)を設定して復旧を静かにします。

    ```
    status == "1"
    ```

    復旧通知も受け取りたい場合は、`status == "0"` を条件にした 2 つ目のチャンネルを、より低い緊急度で使ってください。
</Step>
</Steps>
