Application Real-Time Monitoring Service (ARMS) アラート管理の Prometheus 統合は、自己管理 Prometheus インスタンスからアラートイベントを受信し、ARMS のアラートパイプラインを通じてルーティングします。Prometheus-Operator で管理される Prometheus インスタンスや、その他の自己管理デプロイメントを接続できます。
背景情報
オープンソース Prometheus は、Alertmanager にアラートを通知します。 ARMS アラート管理にアラートを送信するには、Prometheus.yaml で <alertmanager_config> を設定します。 設定リファレンスについては、「[alertmanager_config]」をご参照ください。
ARMS アラート管理は、オープンソースの Prometheus と互換性のある Alertmanager エンドポイントを提供します。Prometheus 統合を作成すると、ARMS アラート管理は、ご利用の Prometheus インスタンスがアラートを送信するために使用する統合アドレスとベアラートークンを生成します。
前提条件
ARMS コンソールへのアクセス権限。認証用のベアラートークンは、統合を作成した後に統合設定ページから取得します。
Prometheus-Operator メソッドの場合:
kubectlがインストールされ、お使いの Kubernetes クラスターにアクセスできるように設定されていること。その他の自己管理の Prometheus インスタンスの場合: Prometheus ホスト上の
prometheus.yaml設定ファイルへの書き込みアクセス権。
ステップ 1:統合を作成し、自己管理 Prometheus インスタンスを接続
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[Prometheus 統合の新規作成] ダイアログボックスで、Prometheus 統合の名前と説明、アラートイベントの自動回復時間を入力し、保存 をクリックします。
3. ご利用の Prometheus のデプロイメントに基づいて接続方法を選択します。Prometheus が Prometheus-Operator を通じてデプロイされている場合は、[Prometheus-Operator で管理される Prometheus インスタンス] を選択します。それ以外の場合は、[その他の自己管理 Prometheus インスタンス] を選択します。次に 確定する をクリックします。説明タイムアウト後の自動回復時間: 指定された期間内にアラートイベントが再度トリガーされない場合、そのアラートイベントは自動的に解除されます。
Prometheus-Operator で管理される Prometheus インスタンス
ローカルマシンに arms-alertmanager-config.yaml ファイルを作成し、次の内容をファイルに貼り付けます。
- scheme: https
bearer_token: ******
static_configs:
- targets: ['alerts.aliyuncs.com']統合が作成された後、ARMS コンソールから bearer_token の値を取得してください。****** を実際のトークンで置き換えてください。
arms-alertmanager-config.yaml ファイルを使用して、arms-am-config という名前のシークレットを作成します。
kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yamlローカルマシンに prometheus-patch.yaml ファイルを作成し、次の内容をファイルに貼り付けます。
spec:
additionalAlertManagerConfigs:
key: arms-alertmanager-config.yaml
name: arms-am-config次のコマンドを実行して、Prometheus オブジェクトを取得します。
kubectl get prometheus応答の例:
NAME VERSION REPLICAS AGE
prometheus-operator-160879-prometheus v2.18.2 1 4d1h次のコマンドを実行して、Prometheus オブジェクトに prometheus-patch.yaml ファイルを適用します。
prometheus-operator-160879-prometheusを、前のステップで返された名前に置き換えます。
kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge他の方法で自己構築する Prometheus インスタンス
prometheus.yaml 設定ファイルを変更します。
次の例は Prometheus 2.x に適用されます。他のバージョンの設定フォーマットについては、「Prometheus ドキュメント」をご参照ください。
alerting:
alertmanagers:
- api_version: v1
authorization:
type: Bearer
credentials: <bearer_token>
scheme: https
static_configs:
- targets: ["alerts.aliyuncs.com"]ARMS コンソールからベアラートークンを取得します。 <bearer_token> を実際のトークンの値に置き換えます。
ブラウザで Prometheus 設定ページを開き、
alertingセクションにターゲットがalerts.aliyuncs.comの Alertmanager 設定が含まれていることを確認してください。
その他の Prometheus 互換の可観測性システムを ARMS アラート管理と統合する
Thanos は、thanos rule コマンドの --alertmanagers.config パラメーターを使用して Alertmanager 設定ファイルを指定します。 前のステップで説明した統合アドレスとトークンを入力します。 構成の詳細については、「Thanos ドキュメント」をご参照ください。
VictoriaMetric は、./bin/vmalert コマンドの -notifier.config パラメーターを使用してノティファイア設定ファイルを指定します。上記の手順で説明されている統合アドレスとトークンを入力します。設定の詳細については、「VictoriaMetric ドキュメント」をご参照ください。
(オプション) 統合の編集
ARMS アラート管理では、セルフマネージド Prometheus アラートソースと ARMS アラート管理との間のフィールドマッピングがプリセットされています。必要に応じて、統合の編集 ページでフィールドマッピングを追加または変更できます。
[アラート統合] タブで、管理する統合を探し、[操作] 列の [編集] をクリックします。
[イベントマッピング] セクションで、[テストデータを送信] をクリックします。
[テストデータの送信] ダイアログボックスで、サードパーティのアラートソースのアラート内容を JSON フォーマットで入力し、[送信] をクリックします。
-
メッセージ [アップロードされました。イベントは生成されません。元のデータに基づいてマッピングを設定してください。] が表示された場合、アラートソースのフィールドが 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 コンソールの左側のナビゲーションウィンドウで、 を選択します。
-
[アラートイベント履歴] ページで、アラートイベントの名前をクリックしてイベント詳細を表示します。詳細については、「アラートイベント履歴の表示」をご参照ください。
左側のナビゲーションウィンドウで、を選択します。[アラートインテグレーション] タブで、作成したインテグレーションに対して以下の操作を実行できます:
インテグレーションの詳細表示:目的のインテグレーションを見つけ、その行をクリックします。[インテグレーション詳細] ページで、インテグレーションの詳細を確認できます。
統合のキーを更新するには、対象の統合の右側にある 操作 列で、詳細 > キーの更新 を選択します。表示されるダイアログボックスで、確認 をクリックします。
キーを更新した後、新しいキーでセルフマネージド Prometheus インスタンスを再設定してください。詳細については、「Prometheus の設定」をご参照ください。
統合の変更:対象の統合を見つけ、[操作] 列にある [編集] をクリックします。[統合の詳細] ページで統合情報を変更し、[保存] をクリックします。
統合の有効化または無効化:統合を探し、[操作] 列で [無効化] または [有効化] をクリックします。
インテグレーションを削除するには、対象のインテグレーションを見つけ、[操作] 列の [削除] をクリックします。表示されるメッセージで、[OK] をクリックします。
インテグレーションにイベント処理フローを追加するには、対象のインテグレーションを検索し、[操作] 列で [イベント処理フローの追加] をクリックします。 詳細については、「イベント処理フロー」をご参照ください。
通知ポリシーの作成:通知ポリシーを作成するインテグレーションを見つけ、[操作] 列の [その他] をクリックします。 表示されるリストで、[通知ポリシーの作成] をクリックします。 詳細については、「通知ポリシー」をご参照ください。
次のステップ
通知ポリシーを作成すると、システムは作成した通知ポリシーに基づき、報告されたアラートイベントに対してアラートを生成してアラート通知を送信します。 詳細については、「通知ポリシー」をご参照ください。 [アラート送信履歴] ページでは、設定された通知ポリシーに基づいて生成されたアラートを表示できます。 詳細については、「アラート送信履歴の表示」をご参照ください。