このトピックでは、セルフマネージド Prometheus インスタンスをアプリケーションリアルタイム監視サービス (ARMS) のアラート管理サブサービスに統合する方法について説明します。これにより、アラートイベントをセルフマネージド Prometheus インスタンスからアラート管理に送信できます。
背景情報
オープンソースの Prometheus を使用すると、アラートを Alertmanager に送信できます。 Promethues.yaml ファイルの <alertmanager_config> セクションを構成して、指定された Alertmanager インスタンスにアラートを送信できます。詳細については、[alertmanager_config] を参照してください。
アラート管理サブサービスは、オープンソースの Prometheus と完全に互換性があり、Alertmanager と同じアラート受信機能を提供します。セルフマネージド Prometheus インスタンスからアラート管理にアラートを送信できます。
手順1: セルフマネージド Prometheus インスタンスを統合するための統合を作成する
ARMS コンソール にログインします。左側のナビゲーションペインで、 を選択します。
アラート統合タブで、Prometheus をクリックします。
Prometheus 統合の作成ダイアログボックスで、名前と説明を入力し、アラートイベントの自動復旧時間を指定して、保存 をクリックします。
説明指定された期間内にアラートイベントが再度トリガーされない場合、アラートイベントは自動的にクリアされます。
インスタンスのタイプに基づいて Prometheus インスタンスを統合し、OK をクリックします。
Prometheus-operator を使用して管理される Prometheus インスタンス
arms-alertmanager-config.yaml という名前のファイルをオンプレミスサーバーに作成し、次の内容をファイルに貼り付けます。
- scheme: https bearer_token: ****** static_configs: - targets: ['alerts.aliyuncs.com']説明bearer_tokenの値は、ARMS コンソールで取得できます。arms-alertmanager-config.yaml ファイルを使用して、arms-am-config という名前のシークレットを作成します。
kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yamlprometheus-patch.yaml という名前のファイルをオンプレミスサーバーに作成し、次の内容をファイルに貼り付けます。
spec: additionalAlertManagerConfigs: key: arms-alertmanager-config.yaml name: arms-am-config次のコマンドを実行して、Prometheus オブジェクトを取得します。
kubectl get prometheusサンプルレスポンス:
NAME VERSION REPLCAS AGE prometheus-operator-160879-prometheus v2.18.2 1 4d1h次のコマンドを実行して、prometheus-patch.yaml ファイルの内容を Prometheus オブジェクトに更新します。
kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge
他の方法で作成されたセルフマネージド Prometheus インスタンス
prometheus.yaml 構成ファイルを変更します。
この例では、Prometheus 2.35 インスタンスが統合されています。他のバージョンの Prometheus インスタンスについては、Prometheus ドキュメントを参照してください。
alerting: alertmanagers: - api_version: v1 authorization: type: Bearer credentials: ${token} scheme: https static_configs: - targets: ["alerts.aliyuncs.com"]説明bearer_tokenの値は、ARMS コンソールで取得できます。ブラウザで Prometheus インスタンスの構成ページにアクセスし、prometheus.yaml ファイルが変更されているかどうかを確認します。
その他の Prometheus 可観測性システム
Thanos は、
thanos ruleコマンドの--alertmanagers.configパラメーターを使用して、Alertmanager 構成ファイルを指定します。上記の手順を実行して、統合のアドレスとトークンを構成します。詳細については、Thanos のドキュメントを参照してください。VictoriaMetric は、
./bin/vmalertコマンドの-notifier.configパラメーターを使用して、ノーティファイア構成ファイルを指定します。上記の手順を実行して、統合のアドレスとトークンを構成します。詳細については、VictoriaMetric のドキュメントを参照してください。
(オプション) 手順2: 統合を変更する
アラート管理は、Prometheus アラートソースと ARMS アラートイベント間のフィールドマッピングを提供します。 統合の編集ページで、フィールド間のマッピングを追加または変更することもできます。
アラート統合タブで、管理する統合を見つけて、編集列のアクションをクリックします。
イベントマッピングセクションで、テストデータの送信をクリックします。
テストデータの送信ダイアログボックスで、サードパーティ製アラートソースのアラートコンテンツを JSON 形式で入力し、送信をクリックします。
説明アップロードされました。イベントは生成されません。元のデータに基づいてマッピングを構成してください。というメッセージが表示された場合、アラートソースのフィールドは ARMS アラートイベントのフィールドにマッピングされていません。送信されたデータは左側のボックスに表示されます。これにより、マッピングを構成するときにソースフィールドを選択できます。
アップロードされました。というメッセージが表示された場合、アラートコンテンツはアラートイベント履歴ページに報告されます。詳細については、履歴アラートイベントを表示するを参照してください。
テストデータの送信ダイアログボックスで、無効化をクリックします。
イベントマッピングセクションの左側で、マッピングを構成するデータレコードをクリックして詳細を表示します。
イベントマッピングセクションの右側で、アラートソースと ARMS アラートイベント間のフィールドマッピングを構成します。
オプション:ルートノードの選択セクションで、バッチ処理を有効にするかどうかを指定します。
アラートデータに配列ノードが存在する場合、配列ノードをルートノードとして指定できます。ルートノードに属するデータはバッチ処理されます。
バッチ処理を使用するを選択した後、バッチ処理する配列ノードをルートノードとして選択します。
説明アラートデータに複数の配列ノードが存在する場合、バッチ処理用に配列ノードを1つだけ選択できます。
ソースフィールドをターゲットフィールドにマッピングするセクションで、アラートソースのフィールドを ARMS のアラートフィールドにマッピングします。
マッピングアイコンをクリックして、フィールドマッピングの方法を変更します。
直接: アラートソースの指定されたフィールドは、ARMS の指定されたアラートフィールドに直接マッピングされます。
シリーズ: 区切り文字を使用してアラートソースの複数のフィールドを1つのフィールドに連結し、このフィールドを ARMS の指定されたアラートフィールドにマッピングできます。区切り文字として使用できるのは特殊文字のみです。
条件付き: 指定されたアラートソースフィールドは、フィールド値が指定された条件を満たす場合にのみ、ARMS アラートフィールドにマッピングされます。
マッピングテーブル: アラートソースの重大度は、ARMS アラートの重大度にマッピングされます。マッピングテーブルには、重大度フィールドのみが含まれています。
次の表に、ARMS のアラートフィールドを示します。
アラートフィールド
説明
alertname
カスタムアラートの名前。
severity
アラートの重大度レベル。このフィールドのマッピングを構成する必要があります。マッピング方法は「直接」に設定する必要があります。
message
アラートの説明。説明は、アラートメッセージのコンテンツとして使用されます。説明は、15,000 文字を超えることはできません。
value
メトリックのサンプル値。
imageUrl
Grafana メトリックを含む折れ線グラフの URL。URL は、折れ線グラフをマッピングするために使用されます。
check
アラートのチェック項目。例: CPU、JVM、アプリケーションクラッシュ、デプロイ。
source
アラートのソース。
class
アラートイベントをトリガーするオブジェクトのタイプ (例: ホスト)。
service
アラートのソースサービス。例: ログインサービス。
startat
イベントの開始時刻を表すタイムスタンプ。
endat
イベントの終了時刻を表すタイムスタンプ。
generatorUrl
イベント詳細の URL。
アラートイベントのフィールド重複除去を構成します。
重複データを削減するために、システムは関連フィールドを重複除去の基準として使用します。ARMS アラート管理では、イベントマッピングセクションに表示される履歴イベントデータの重複除去グルーピング結果をプレビューできます。重複除去するフィールドを変更できます。
説明クリアされていないイベントに対してのみ重複除去を構成できます。
イベントの重複除去ページの統合の詳細セクションで、重複除去に使用するフィールドを選択します。
複数のイベントが指定されたフィールドに対して同じ値を持つ場合、イベントは1つのアラート通知にマージされます。
重複除去テストをクリックして、重複除去後のアラートグループをプレビューします。
説明重複除去テストは、イベントマッピングセクションの左側にアップロードされた最新の10個のデータレコードに対してのみ有効です。
設定を構成した後、保存をクリックします。
アラートイベントの詳細を表示する
ARMS コンソールの左側のナビゲーションペインで、 を選択します。
アラートイベント履歴ページで、アラートイベントの名前をクリックしてイベント詳細を表示します。詳細については、履歴アラートイベントを表示するを参照してください。
統合を管理する
左側のナビゲーションペインで、 を選択します。 アラート統合タブで、作成した統合に対して次の操作を実行できます。
統合の詳細を表示する: 統合を見つけて、行をクリックします。 統合の詳細ページで、統合の詳細を表示します。
キーを更新します。統合を見つけて、をアクション列で選択します。表示されるメッセージで、OK をクリックします。
重要キーを更新した後、セルフマネージド Prometheus インスタンスを再構成する必要があります。詳細については、Prometheus インスタンスを構成するを参照してください。
統合を変更する: 統合を見つけて、アクション列の編集をクリックします。 統合の詳細ページで、統合情報を変更し、保存をクリックします。
統合を有効または無効にする: 統合を見つけて、アクション列の無効化または有効化をクリックします。
統合を削除する: 統合を見つけて、アクション列の削除をクリックします。表示されるメッセージで、OK をクリックします。
統合にイベント処理フローを追加する: 統合を見つけて、アクション列のイベント処理フローを追加をクリックします。詳細については、イベント処理フローを操作するを参照してください。
通知ポリシーを作成する: 通知ポリシーを作成する統合を見つけて、アクション列のその他をクリックします。表示されるリストで、通知ポリシーの作成をクリックします。詳細については、通知ポリシーを作成および管理するを参照してください。
次のステップ
通知ポリシーを作成した後、システムは、作成した通知ポリシーに基づいて、報告されたアラートイベントのアラートを生成し、アラート通知を送信します。詳細については、通知ポリシーを作成および管理するを参照してください。 アラート送信履歴ページで、構成された通知ポリシーに基づいて生成されたアラートを表示できます。詳細については、アラート履歴を表示するを参照してください。