このトピックでは、Grafana を Application Real-Time Monitoring Service (ARMS) のアラート管理に統合する方法について説明します。Grafana 統合を作成すると、Grafana で作成されたアラートをアラート管理にレポートできます。
手順1:Grafana 統合の作成
ARMS コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
-
アラート統合 タブで、[Grafana] をクリックします。
-
[New Grafana Integration] ダイアログボックスで、統合名と説明を入力し、Grafana のバージョンを選択して、アラートイベントの自動解決のタイムアウトを設定し、保存 をクリックします。
説明指定された期間内にアラートイベントが再度トリガーされない場合、アラートイベントは自動的にクリアされます。
-
アラート統合 タブで、新しい Grafana 統合を見つけ、その統合エンドポイントを取得します。
統合エンドポイントの横にある [Copy] ボタンをクリックします。
手順2:Grafana アラートの設定
-
Grafana のナビゲーションペインで、 の順に選択します。
-
[Notification Channels] タブで、[New channel] をクリックします。
説明初めてチャネルを作成する場合は、[Add channel] をクリックします。
-
[New Notification Channel] ページで、次の手順を実行します。
-
[Name] フィールドに、任意の Grafana アラート名を入力します。
-
[Type] を [Webhook] に設定します。
-
[URL] に、手順 1 で取得した統合エンドポイントを設定します。
-
[Notification settings] セクションで、[Default]、[Include image]、[Send reminders] を選択します。[Send reminders] を選択した場合は、同じアラートのレポート頻度を設定する必要があります。レポート頻度は、手順 1 で設定した自動解決のタイムアウトを超えないようにしてください。
説明[Send reminders] を選択しない場合、システムは各アラートに対して通知を1回だけ送信します。
-
[Test] をクリックして、ARMS アラート管理への接続を検証します。
-
テストが成功したら、[Save] をクリックします。
-
(オプション) 手順3:統合の変更
ARMS アラート管理には、Grafana と ARMS 間のデフォルトのフィールドマッピングが用意されています。必要に応じて、統合の編集 ページでこれらのマッピングを追加または変更することもできます。
次のスクリプトは、アラートソースのサンプルです。
{
"@timestamp":"2021-09-09T12:25:09.556Z",
"orgId":0,
"host":"10.1.11.14",
"ruleName":"Test notification",
"ruleUrl":"http://localhost:8001/grafana/",
"state":"alerting",
"title":"[Alerting] Test notification",
"panelId":1,
"imageUrl":"https://grafana.com/assets/img/blog/mixed_styles.png",
"evalMatches":[
{
"metric":"High value",
"value":100,
"tags":null
},
{
"metric":"Higher Value",
"value":200,
"tags":null
}
],
"ruleId":0,
"tags":{
},
"dashboardId":1,
"message":"Someone is testing the alert notification within grafana.",
"@version":"1"
}
[アラートの統合] タブで、管理する統合を見つけて、[編集] を [アクション] 列でクリックします。
[イベントマッピング] セクションで、[テストデータを送信] をクリックします。
-
テストデータの送信 ダイアログボックスで、アラートソースの JSON コンテンツを入力し、送信 をクリックします。
説明[アップロードされました。イベントは生成されません。元のデータに基づいてマッピングを設定してください。] というメッセージが表示された場合、アラートソースのフィールドは ARMS アラートイベントのフィールドにマッピングされていません。送信されたデータは左側のボックスに表示されます。これにより、マッピングを設定するときにソースフィールドを選択できます。
[アップロードされました。] というメッセージが表示された場合、アラート内容はアラートイベント履歴ページに報告されます。詳細については、「履歴アラートイベントを表示する」をご参照ください。
[Send Test Data] ダイアログボックスのテキストエリアには、
@timestamp、orgId、host、ruleName、ruleUrl、state、title、panelIdなどのフィールドを含む JSON 形式のサンプル通知データが含まれています。[Copy as cURL command] をクリックして、対応するリクエストを取得できます。 [テストデータの送信] ダイアログボックスで、[無効化] をクリックします。
[イベントマッピング] セクションの左側で、マッピングを設定するデータレコードをクリックして詳細を表示します。
-
イベントマッピング セクションの右側のペインで、ソースアラートフィールドと ARMS アラートフィールド間のマッピングを設定します。
-
オプション:ルートノードの選択 セクションで、バッチ処理を使用するかどうかを指定します。
アラートデータに配列が含まれている場合、その配列をルートノードとして指定し、その要素をバッチで処理できます。
[Use Batch Processing] を選択した後、処理する配列ノードをルートノードとして選択します。
説明バッチ処理には1つの配列しか選択できません。
たとえば、サンプルアラートでは、
evalMatches配列に 2 つのvalueフィールドが含まれています。evalMatchesをルートノードとして選択すると、ARMS はその下の 2 つのvalueフィールドを、指定された同じ ARMS アラートフィールドにマッピングします。-
ルートノードを選択した場合、配列内のすべての要素の
$.evalMatches[*].value属性の値を、ARMS のvalueフィールドに反復的にマッピングできます。 -
ルートノードを選択しない場合、
$.evalMatches[0].valueや$.evalMatches[1].valueなど、配列内の特定の要素の属性値を ARMS のvalueフィールドにマッピングできます。
-
-
ソースフィールドからターゲットフィールドへのマッピング セクションで、ソースフィールドをターゲットの ARMS アラートフィールドにマッピングします。
マッピングアイコンをクリックして、マッピング方法を変更します。
-
Direct:ソースフィールドは、対応する ARMS アラートフィールドに直接マッピングされます。
-
Series:指定された区切り文字を使用して複数のソースフィールドを1つのフィールドに連結し、このフィールドを ARMS アラートフィールドにマッピングします。区切り文字には特殊文字のみ使用できます。
たとえば、アンダースコア (_) を使用して
$.hostフィールドと$.titleフィールドを$.host_$.titleに連結し、それを ARMS のalertnameフィールドにマッピングできます。 -
Condition:アラートフィールドの値が指定された条件を満たす場合にのみ、フィールドがマッピングされます。
-
Mapping table:アラートソースと ARMS の重要度レベル間のマッピングを設定します。このマッピング方法は
severityフィールドにのみ必要です。
次の表に、ARMS のアラートフィールドを示します。
アラートフィールド
説明
alertname
カスタムアラートの名前。
severity
アラートの重大度レベル。このフィールドのマッピングを設定する必要があります。マッピング方法は「直接」に設定する必要があります。
message
アラートの説明。説明は、アラートメッセージの内容として使用されます。説明は 15,000 文字を超えることはできません。
value
メトリックのサンプル値。
imageUrl
Grafana メトリックを含む折れ線グラフの URL。URL は、折れ線グラフをマッピングするために使用されます。
check
アラートのチェック項目。例: CPU、JVM、アプリケーションクラッシュ、デプロイメント。
source
アラートのソース。
class
アラートイベントをトリガーするオブジェクトのタイプ。例: ホスト。
service
アラートのソースサービス。例: ログインサービス。
startat
イベントの開始日時を表すタイムスタンプ。
endat
イベントの終了日時を表すタイムスタンプ。
generatorUrl
イベント詳細の URL。
[Event Mapping] ページで [Send Test Data] をクリックして、データの取り込みを検証します。[Latest 10 Data Entries] セクションには、受信したソースデータとそのステータスが表示されます。データエントリを展開すると、
@timestamp、orgId、host、ruleNameなどのフィールドを含む JSON 構造が表示されます。右側のペインで、これらのソースフィールドを対応する ARMS アラートフィールドにマッピングできます。 -
-
-
アラートイベントフィールドの重複排除を設定します。
重複データを減らすために、システムは関連フィールドを重複排除の基準として使用します。ARMS アラート管理では、イベントマッピング エリアで履歴イベントデータの重複排除グループ化の結果をプレビューできます。必要に応じて、重複排除フィールドを調整できます。
説明イベントの重複排除は、未解決のイベントにのみ適用されます。
-
統合の編集 ページの イベントの重複除去 セクションで、重複排除のためのフィールドを選択します。
複数のイベントで選択したフィールドの値が同じ場合、それらは単一のアラートにマージされます。
たとえば、ARMS の
metricフィールドとruleNameフィールドを重複排除キーとして設定した場合、同じ metric と ruleName を持つ Grafana ソースからのイベントは単一のイベントにマージされます。値が異なるイベントは、個別のままです。 -
重複排除テスト をクリックして、重複排除後のアラートのグループ化をプレビューします。
説明イベントマッピング セクションの左側のペインにアップロードされた最新 10 件のテストデータエントリに対して、重複排除テストが実行されます。
[metric] と [ruleName] を重複排除フィールドとして選択し、[Deduplication Test] をクリックします。システムは、選択されたフィールドに基づいてイベントをグループ化します。同じ metric と ruleName を持つイベントがグループ化されます。グループ化の結果は、
alertname、value、severity、startat、endat、messageなどの列を含むテーブルに表示されます。
-
-
設定が完了したら、保存 をクリックします。
アラートイベントの詳細を表示する
ARMS コンソールの左側のナビゲーションウィンドウで、 を選択します。
[アラートイベント履歴] ページで、アラートイベントの名前をクリックしてイベント詳細を表示します。詳細については、「履歴アラートイベントを表示する」をご参照ください。
統合の管理
左側のナビゲーションウィンドウで、 を選択します。[アラート統合] タブで、作成した統合に対して次の操作を実行できます。
統合の詳細を表示する: 統合を見つけて、行をクリックします。[統合の詳細] ページで、統合の詳細を表示します。
-
キーの更新:統合のキーを変更するには、統合を見つけ、操作 列で の順に選択し、表示されるダイアログボックスで 確認 をクリックします。
重要キーを更新した後、手順 2 で設定した [URL] も新しい統合エンドポイントで更新する必要があります。
統合を変更する: 統合を見つけて、[アクション] 列の [編集] をクリックします。[統合の詳細] ページで、統合情報を変更し、[保存] をクリックします。
統合を有効または無効にする: 統合を見つけて、[アクション] 列の [無効化] または [有効化] をクリックします。
統合を削除する: 統合を見つけて、[アクション] 列の [削除] をクリックします。表示されるメッセージで、[OK] をクリックします。
統合にイベント処理フローを追加する: 統合を見つけて、[アクション] 列の [イベント処理フローを追加] をクリックします。詳細については、「イベント処理フローを操作する」をご参照ください。
通知ポリシーを作成する: 通知ポリシーを作成する統合を見つけて、[アクション] 列の [詳細] をクリックします。表示されるリストで、[通知ポリシーを作成] をクリックします。詳細については、「通知ポリシーを作成および管理する」をご参照ください。
次のステップ
通知ポリシーを作成した後、システムは、作成した通知ポリシーに基づいて、報告されたアラートイベントのアラートを生成し、アラート通知を送信します。詳細については、「通知ポリシーを作成および管理する」をご参照ください。[アラート送信履歴] ページで、設定された通知ポリシーに基づいて生成されたアラートを表示できます。詳細については、「アラート履歴を表示する」をご参照ください。