Alertmanager
Alertmanagerは、Prometheusサーバーなどのクライアントアプリケーションから送信されたアラートを処理します。重複排除、グループ化、および電子メール、PagerDuty、OpsGenieなどの正しいレシーバー統合へのルーティングを担当します。また、アラートのサイレンスと抑制も担当します。
以下に、Alertmanagerが実装する主要な概念を説明します。設定ドキュメントを参照して、詳細な使用方法を学習してください。
グループ化
グループ化は、同様の性質のアラートを単一の通知に分類します。これは、多くのシステムが一度にダウンし、何百から何千ものアラートが同時に発生する大規模な停止時に特に役立ちます。
例:ネットワークパーティションが発生すると、クラスター内で数十から数百のサービスインスタンスが実行されます。サービスインスタンスの半分がデータベースに到達できなくなります。Prometheusのアラートルールは、各サービスインスタンスがデータベースと通信できない場合にアラートを送信するように設定されています。結果として、数百のアラートがAlertmanagerに送信されます。
ユーザーとしては、影響を受けたサービスインスタンスを正確に確認できる一方で、単一のページを受け取りたいだけです。したがって、Alertmanagerを構成して、アラートをクラスターとアラート名でグループ化し、単一のコンパクトな通知を送信するようにできます。
アラートのグループ化、グループ化された通知のタイミング、およびそれらの通知の受信者は、設定ファイルのルーティングツリーによって設定されます。
抑制
抑制とは、特定の他のアラートが既に発生している場合に、特定の種類のアラートの通知を抑制する概念です。
例:クラスター全体に到達できないことを通知するアラートが発生しています。Alertmanagerは、その特定のアラートが発生している場合、このクラスターに関する他のすべてのアラートをミュートするように構成できます。これにより、実際の問題とは無関係な数百または数千のアラートが発生する通知を防ぐことができます。
抑制はAlertmanagerの設定ファイルを通じて設定されます。
サイレンス
サイレンスは、指定された期間アラートを単純にミュートする簡単な方法です。サイレンスは、ルーティングツリーと同様に、マッチャーに基づいて設定されます。受信アラートは、アクティブなサイレンスのすべての一致または正規表現マッチャーと一致するかどうかがチェックされます。一致する場合、そのアラートの通知は送信されません。
サイレンスはAlertmanagerのWebインターフェースで設定されます。
クライアントの動作
Alertmanagerには、クライアントの動作に関する特別な要件があります。これらは、Prometheusがアラートの送信に使用されない高度なユースケースにのみ関連します。
高可用性
Alertmanagerは、高可用性クラスタを作成するための設定をサポートしています。これは、--cluster-*フラグを使用して設定できます。
PrometheusとAlertmanagerの間でトラフィックをロードバランスするのではなく、PrometheusをすべてのAlertmanagerのリストに指定することが重要です。