View a markdown version of this page

EventBridge と直接統合されている APM からアラームを取り込む - AWS Incident Detection and Response ユーザーガイド

EventBridge と直接統合されている APM からアラームを取り込む

次のトピックは、Amazon EventBridge と直接統合されているアプリケーションパフォーマンスモニタリング (APM) ツールから AWS Incident Detection and Response にアラームを送信するプロセスを示しています。Amazon EventBridge と直接統合されている APM の詳細なリストについては、「Amazon EventBridge の統合」を参照してください。

提供された CloudFormation テンプレートをデプロイすることも、この統合を手動でセットアップすることもできます。統合を設定する前に、AWS のサービスにリンクされたロール (SLR) AWSServiceRoleForHealth_EventProcessor がアカウントに作成されていることを確認します。

オプション 1: を使用するCloudFormation

CloudFormation テンプレートを使用すると、Amazon EventBridge 統合を使用して APM から AWS Incident Detection and Response にアラームを取り込むために必要な統合インフラストラクチャを作成するプロセスを簡素化できます。

注記
  • この CloudFormation テンプレートを介してデプロイされたリソース (Lambda や EventBridge など) には、追加コストが発生します。これらのサービスの料金の詳細については、「AWS の料金」を参照してください。

  • この CloudFormation テンプレートは、AWS Incident Detection and Response がアラームを取り込む必要があるすべての AWS アカウントとリージョンにデプロイします。インシデントとサポートケースは、APM アラートの受信元となった AWS アカウントで開かれます。

  • このドキュメントでは例として New Relic を使用していますが、CloudFormation テンプレートは Amazon EventBridge と SaaS 統合されている任意の APM に使用できます。

  • 統合をテストしたら、logger.info() ステートメントを TransformLambdaFunction から削除して、ペイロードが Amazon CloudWatch Logs に表示されないようにします。

この CloudFormation テンプレートをデプロイするための前提条件:

  • パートナーイベントソースを Amazon EventBridge で設定する必要があります。APM をイベントソースとして設定する手順については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge での SaaS パートナーからのインベントの受信」を参照してください。

  • テンプレートの TransformLambdaFunction (Lambda 関数) を変更して、APM ペイロードのアラート名の JSON パスに基づいて ["detail"]["incident-detection-response-identifier"] を目的の値に設定する必要があります。

前提となる手順:

  1. EventBridge コンソールを開きます。[統合] メニューで、[パートナーイベントソース] を選択します。

    • [Amazon EventBridge パートナー] ボックスで APM を検索します。

    • [セットアップ] を選択し、手順に従います。

      • 注意: 最後のステップでは、パートナーイベントソースのコンソールで [イベントバスと関連付ける] を選択します。このオプションを選択すると、パートナーイベントソースと同じ名前のパートナーイベントバスが自動的に作成されます (名前は一致する必要があります)。

    • パートナーイベントバスまたはソースの名前をコピーします。イベントバスまたはソースは、CloudFormation テンプレートをデプロイするときに、PartnerEventBusNameParameter という名前のパラメータとして使用されます。

      • New Relic の: aws.partner/newrelic.com/1234567/source_name

    • CloudFormation テンプレートをデプロイするときに、PartnerEventBusPrefixParameter に入力するパートナーイベントバスまたはソースの最初の部分をコピーします。

      • New Relic の例は aws.partner/newrelic.com です

  2. CloudFormation テンプレートをダウンロードして編集します。

    • テンプレートで TransformLambdaFunction を見つける

    • def lambda_handler(event, context) で、event["detail"]["incident-detection-response-identifier"] をアラーム名が APM アラームの JSON ペイロードに表示される JSON パスに設定します。APM ごとにパスが異なります。以下に例をいくつか示しますが、特定のペイロードは異なる場合があります。

      • New Relic の例: event["detail"]["incident-detection-response-identifier"] = event["detail"]["workflowName"]

      • Datadog の例: event["detail"]["incident-detection-response-identifier"] = event["detail"]["meta"]["monitor"]["name"]

      • Splunk の例: event["detail"]["incident-detection-response-identifier"] = event["detail"]["ruleName"]

    • CloudFormation テンプレートを保存します。

CloudFormation テンプレートのデプロイ:

  1. ターゲットアカウントおよびリージョンで CloudFormation コンソールを開きます。

  2. [スタックの作成] の [新しいリソースを使用 (標準)] を選択します。

    • [既存のテンプレートを選択][テンプレートファイルのアップロード][ファイルを選択] の順に選択し、ローカルに保存した CloudFormation テンプレートをアップロードします。

  3. スタックの詳細を指定する:

    • スタック名を入力します (例: NewRelicIntegrationForIDR)。

    • 前提条件の完了時に取得した [パラメータ値] を指定します。

      • APMNameParameter (: NewRelic)

      • PartnerEventBusNameParameter (: aws.partner/newrelic.com/1234567/source_name)

      • PartnerEventBusPrefixParameter (: aws.partner/newrelic.com)

    • [次へ] を選択します。

  4. スタックオプションを設定する:

    • ページの下部までスクロールし、CloudFormation がカスタム名で IAM リソースを作成できるようにするチェックボックスをオンにします。

  5. 確認と作成:

    • パラメータ値が正しく設定されていることを検証し、[送信] を選択します。

  6. CloudFormation スタックは、APM イベントを AWS Incident Detection and Response に統合するために必要なリソースをデプロイします。スタックステータスが CREATE_COMPLETE と表示されるまで待ちます。

  7. CloudFormation スタックは、サンプル値が New Relic のパラメータに入力され、US-EAST-1 リージョンで実行されたと仮定して、次のリソースを作成します。

    • CustomEventBus: NewRelic-AWSIncidentDetectionResponse-EventBus

    • EventBridgeRule: aws.partner/newrelic.com/1234567/source_name|NewRelic-AWSIncidentDetectionResponse-EventBridgeRule

    • TransformLambdaExecutionRole: IDR-TransformLambdaExecutionRole-us-east-1

    • TransformLambdaFunction: NewRelic-AWSIncidentDetectionResponse-Lambda-Transform

    • TransformLambdaPermission: NewRelicIntegrationForIDR-TransformLambdaPermission-[random_string]

インテグレーションテスト

スタックをデプロイしたら、APM からテストペイロードを送信して統合をテストします。

  1. Lambda コンソールに移動して、APMNameParameter-AWSIncidentDetectionResponse-Lambda-Transform 関数を選択します。[Monitor] (モニタリング) タブを選択します。

  2. メトリクスグラフで正常な呼び出しを探します。

  3. [Amazon CloudWatch Logs を表示する] を選択して、テストペイロードまたはエラーのログストリームを確認します。

AWS Incident Detection and Response へのイベントバス ARN の共有

  1. Amazon EventBridge コンソールを開きます。[イベントバス] を選択します。

  2. CloudFormation スタックの一部として作成された [カスタムイベントバス] の ARN をコピーします (例: arn:aws:events:us-east-1:123456789123:event-bus/NewRelic-AWSIncidentDetectionResponse-EventBus)。

  3. オンボーディングプロセス中、AWS Incident Detection and Response は、このカスタムイベントバスでマネージド EventBridge ルールを作成して APM アラームを取り込みます。

オプション 2: 手動の統合

パートナーイベントバスまたは他の AWS イベントバスソースを使用した統合の例を示す図。

AWS Incident Detection and Response がアラームを取り込む必要がある AWS アカウントと AWS リージョンごとに、次の手順を実行します。AWS Incident Detection and Response では、影響を受けているリソースをより迅速に特定して調査できるように、アプリケーションリソースと同じ AWS アカウントとリージョンでアラームを設定することが推奨されます。インシデントとサポートケースは、APM アラートの受信元となった AWS アカウントで開かれます。

  1. APM を Amazon EventBridge パートナーイベントソース (aws.partner/apm_name/integrationName など) として設定して、EventBridge パートナーイベントバスを作成します。APM をイベントソースとして設定するガイドラインについては、「Receiving events from a SaaS partner with Amazon EventBridge」を参照してください。

  2. 次のいずれかを実行します。

    • (推奨) $YourApmName-AWSIncidentDetectionResponse-EventBus という名前の EventBridge カスタムイベントバスを作成します。

    • (代替方法) カスタムイベントバスの代わりにデフォルトの EventBridge イベントバスを使用します。

    AWS Incident Detection and Response は、AWSServiceRoleForHealth_EventProcessor SLR を介してカスタムイベントバスまたはデフォルトのイベントバスにマネージドルール (AWSHealthEventProcessorEventSource-DO-NOT-DELETE) をインストールします。ルールソースはカスタムイベントバスまたはデフォルトのイベントバスとなり、ルールの送信先は AWS Incident Detection and Response となります。また、ルールはサードパーティーの APM イベントを取り込むパターンと一致します。

  3. パートナーイベントバスイベントを変換する、$YourApmName-AWSIncidentDetectionResponse-LambdaFunction という名前の Lambda 関数を作成します。変換されたイベントは、マネージドルール AWSHealthEventProcessorEventSource-DO-NOT-DELETE と一致します。

    • 変換されたイベントには一意の AWS Incident Detection and Response の識別子が含まれ、イベントのソースタイプと詳細タイプを必要な値に設定します。これにより、変換された JSON ペイロード構造がマネージドルールパターンと一致するようになります。

    • Lambda 関数のターゲットを、ステップ 2 で作成したカスタムイベントバス (推奨) またはデフォルトのイベントバスに設定します。

  4. EventBridge ルールを作成し、AWS Incident Detection and Response にプッシュするイベントのリストと一致するイベントパターンを定義します。ルールのソースは、ステップ 1 (aws.partner/apm_name/integrationName) で作成したパートナーイベントバスです。ルールのターゲットは、ステップ 3 ([apm_name]-AWSIncidentDetectionResponse-LambdaFunction) で作成した Lambda 関数です。EventBridge ルールの定義に関するガイドラインについては、「Amazon EventBridge ルール」を参照してください。

パートナーイベントバスと AWS Incident Detection and Response の統合を手動で設定する方法のステップバイステップの例については、「Datadog と Splunk からの通知の統合」を参照してください。