Alertmanager

Alertmanager は、Prometheusサーバーなどのクライアントアプリケーションから送信されたアラートを処理します。重複排除、グループ化、および電子メール、PagerDuty、OpsGenieなどの適切な受信側統合へのルーティングを行います。また、アラートのサイレンスと抑制も処理します。

Alertmanagerが実装する主要な概念について以下に説明します。使用方法の詳細については、設定ドキュメントを参照してください。

グループ化

グループ化は、類似した性質のアラートを単一の通知に分類します。これは、大規模な障害発生時に多くのシステムが同時に障害を起こし、数百から数千のアラートが同時に発生する可能性がある場合に特に役立ちます。

**例:**ネットワークパーティションが発生したときに、クラスタ内で数十または数百のサービスインスタンスが実行されています。サービスインスタンスの半分がデータベースにアクセスできなくなりました。Prometheusのアラートルールは、データベースと通信できない場合に各サービスインスタンスのアラートを送信するように設定されていました。その結果、数百のアラートがAlertmanagerに送信されます。

ユーザーとしては、影響を受けたサービスインスタンスを正確に確認できる一方で、単一のページを取得したいと考えています。そのため、Alertmanagerを構成して、クラスタとアラート名でアラートをグループ化し、単一のコンパクトな通知を送信するようにすることができます。

アラートのグループ化、グループ化された通知のタイミング、およびそれらの通知の受信者は、構成ファイルのルーティングツリーによって構成されます。

抑制

抑制とは、特定の他のアラートが既に発生している場合に、特定のアラートの通知を抑制するという概念です。

**例:**クラスタ全体に到達できないことを知らせるアラートが発生しています。Alertmanagerは、特定のアラートが発生している場合、このクラスタに関する他のすべてのアラートをミュートするように構成できます。これにより、実際の問題とは無関係に発生している数百または数千のアラートの通知が防止されます。

抑制は、Alertmanagerの構成ファイルを通じて構成されます。

サイレンス

サイレンスは、一定時間アラートをミュートする簡単な方法です。サイレンスは、ルーティングツリーと同様に、マッチャーに基づいて構成されます。受信アラートは、アクティブなサイレンスのすべての等価性または正規表現マッチャーと一致するかどうかがチェックされます。一致する場合、そのアラートの通知は送信されません。

サイレンスは、AlertmanagerのWebインターフェースで構成されます。

クライアントの動作

Alertmanagerには、クライアントの動作に特別な要件があります。これらは、Prometheusがアラートの送信に使用されない高度なユースケースにのみ関連します。

高可用性

Alertmanagerは、高可用性のためにクラスタを作成する構成をサポートしています。これは、--cluster-* フラグを使用して構成できます。

PrometheusとAlertmanager間のトラフィックをロードバランスしないことが重要です。代わりに、PrometheusをすべてのAlertmanagerのリストにポイントしてください.

このドキュメントはオープンソースです。問題を報告するか、プルリクエストを送信して改善にご協力ください。