Prometheus・Alertmanager 連携
Alertmanager から Echobell へ Webhook またはメールでアラートを送信する手順
Prometheus 連携
Prometheus と Alertmanager は広く使われているオープンソースの監視・アラート基盤です。Alertmanager を Echobell と連携すると、アラートルールが発火した際に、即時のモバイル通知(時限性や通話形式も可)を受け取れます。
前提条件
- Echobell アカウント(チャンネルを 1 つ以上作成済み)
- 稼働中の Prometheus + Alertmanager
- Alertmanager 設定(alertmanager.yml)の編集権限
手順の流れ
- Echobell チャンネルを作成
- 通知テンプレート(任意でリンクテンプレート)を設定
- 連携方法を選択:
- Webhook(Alertmanager の webhook レシーバー。推奨)
- メール(Alertmanager の email レシーバー。代替)
- アラートルールを作成/更新
- テストと調整
手順
1) Echobell チャンネル作成
- Echobell アプリを開く
- 新規チャンネル(例: "Prometheus Alerts")を作成
- 識別しやすい色を選択
2) 通知テンプレート設定
Alertmanager の webhook ペイロードには status、commonLabels、commonAnnotations、externalURL、alerts 配列などのフィールドが含まれます。Echobell のテンプレートでそれらを直接参照できます。
推奨テンプレート:
タイトルテンプレート:
本文テンプレート:
オプションのリンクテンプレート(詳細設定):
これにより、記録に関連グラフ/ダッシュボードへのリンクが表示されます。generatorURL が無い場合は externalURL を使用します。
3) 方法 A — Webhook(推奨)
- Echobell チャンネルの Triggers から Webhook URL をコピー
- Alertmanager にその URL に POST する webhook レシーバーを追加
alertmanager.yml 最小例:
注意:
- send_resolved: true は解消時(resolved)も通知します
- Echobell は JSON 本文をそのまま解釈するため、上記テンプレートで正しくレンダリングされます
3 代替) 方法 B — メール
メールを使う場合は、Alertmanager の email レシーバーでチャンネルのメールアドレスへ送信します。
- Echobell の Triggers からチャンネルのメールアドレスをコピー
- Alertmanager でメールレシーバーを設定し、簡単なテンプレートを使用
例:
Echobell のメールトリガー用テンプレートでは、subject、text、html などの変数を使用できます。
4) サンプルアラートルール
発火すると、Alertmanager がレシーバーへ送信し、Echobell がチャンネル購読者に通知します。
テスト方法
- 閾値を一時的に下げるか、すぐに発火するテストを作成
- 発火時に Echobell 通知が届くか確認
- リンクテンプレート使用時は、記録からリンクを開く
- 解消時の通知(有効な場合)も確認
通知タイプの選択
- Time Sensitive: 本番重大障害、緊急ページ
- Calling: 重大障害でフォーカスモードを突破したい場合
- Normal: 日常的な警告・情報通知
ベストプラクティス
- 簡潔かつ要点を含むテンプレート(名前、重大度、インスタンス、概要)
- リンクテンプレートで関連画面へ即ジャンプ
- Alertmanager 側でグルーピング/ルーティングしてノイズを軽減
- severity ラベルと Echobell の通知タイプを使い分け
- Webhook URL は秘匿し、露出時はローテーション
トラブルシューティング
- Webhook URL またはチャンネルのメールが正しいか
- チャンネルが有効で購読者がいるか
- Alertmanager のログに配送エラーがないか
- alertmanager.yml の route が正しいレシーバーを指しているか
- 単純なテストルールで検証
- メール使用時は SMTP と配送を確認
プライバシー
- 通知内容はデバイス上に保存
- サーバーには最小限の設定データのみ保存
- Webhook URL とチャンネルメールは秘密として扱う
- Echobell はアラートのペイロードを保持しません