Echobell

Prometheus Alertmanager 連携 - サーバー・インフラ監視通知

Prometheus AlertmanagerをEchobellと統合して即座にモバイルアラートを受け取るための完全ガイド。サーバー監視、インフラアラート、CPU/メモリ使用率警告、クリティカルシステムイベントのプッシュ通知をWebhookまたはメールで受信。

Prometheus 連携

Prometheus と Alertmanager は広く使用されているオープンソースの監視・アラートスタックです。Alertmanager を Echobell と統合することで、アラートルールが発火するたびに、即座にモバイル通知(時間重要通知や通話通知を含む)を受け取ることができます。

前提条件

  • 少なくとも 1 つのチャンネルが作成された Echobell アカウント
  • 稼働中の Prometheus + Alertmanager 環境
  • Alertmanager 設定ファイル(alertmanager.yml)の編集権限

概要

  1. Echobell チャンネルの作成
  2. 通知テンプレートの設定
  3. 統合方法の選択(Webhook または Email)
  4. アラートルールの作成・更新
  5. テストと調整

ステップバイステップガイド

Echobell チャンネルの作成

  1. Echobell アプリを開く
  2. 新しいチャンネルを作成(例:「Prometheus アラート」)
  3. 識別しやすい色を選択

通知テンプレートの設定

Alertmanager の Webhook ペイロードには status、commonLabels、commonAnnotations、externalURL、alerts 配列などの構造化されたフィールドが含まれます。

タイトルテンプレート:

{{commonLabels.alertname}} - {{status}}

本文テンプレート:

🔔 アラート: {{commonLabels.alertname}}
📊 重要度: {{commonLabels.severity}}
🖥️ インスタンス: {{alerts[0].labels["instance"]}}
⏰ 開始: {{alerts[0].startsAt}}
ℹ️ 概要: {{commonAnnotations.summary}}

オプションのリンクテンプレート(詳細設定):

{{alerts[0].generatorURL || externalURL}}

方法 A — Webhook(推奨)

  1. Echobell チャンネルで、トリガーから Webhook URL をコピー
  2. Alertmanager で Webhook レシーバーを設定:
route:
  receiver: echobell-webhook

receivers:
  - name: echobell-webhook
    webhook_configs:
      - url: "https://hook.echobell.one/t/REPLACE_WITH_YOUR_TOKEN"
        send_resolved: true
        http_config:
          follow_redirects: true

注意:send_resolved: true でアラートが解決した際にも通知されます。

方法 B — Email(代替)

Email を使用する場合は、Alertmanager の Email レシーバーを使用:

  1. Echobell で、トリガーからチャンネルの Email アドレスをコピー
  2. Alertmanager で Email レシーバーを設定:
receivers:
  - name: echobell-email
    email_configs:
      - to: "PASTE_CHANNEL_EMAIL_ADDRESS"
        send_resolved: true
        subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
        html: |
          <p><strong>概要:</strong> {{ .CommonAnnotations.summary }}</p>
          <p>{{ .CommonAnnotations.description }}</p>

サンプルアラートルールの作成

groups:
  - name: example
    rules:
      - alert: HighCPU
        expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "CPU 使用率が高い"
          description: "CPU が 2 分間 80% を超えています"

このアラートが発火すると、Alertmanager がイベントを Echobell に送信します。

通知タイプ

  • 時間重要:重大な本番障害、ページングレベルのインシデント
  • 通話:フォーカスモードを中断する必要がある深刻な障害
  • 通常:定期的なアラート、警告、情報通知

ベストプラクティス

  1. テンプレートは簡潔だが情報を含めて保つ
  2. リンクテンプレートでグラフ/ダッシュボードに直接アクセス
  3. Alertmanager でアラートをグループ化してルーティング
  4. Webhook URL を機密情報として保護

トラブルシューティング

アラートが Echobell に表示されない場合:

  • Webhook URL またはチャンネル Email を確認
  • チャンネルがアクティブで購読者がいるか確認
  • Alertmanager のログで配信エラーを確認
  • alertmanager.yml のルートを確認

追加リソース

目次