Amazon EventBridge イベントバスのログ設定
EventBridge を設定して、イベントバスがイベントをどのように処理しているかを詳しく示したログを送信し、トラブルシューティングとデバッグに役立てることができます。
指定されたイベントバスのログを EventBridge が配信するログ送信先として、以下の AWS のサービスを選択できます。
Amazon CloudWatch Logs
EventBridge は、指定した CloudWatch Logs ロググループにログを配信します。
CloudWatch Logs により、使用しているすべてのシステム、アプリケーション、AWS のサービスからのログを、1 つの高度にスケーラブルなサービスで一元管理できます。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「ロググループとログストリームの操作」を参照してください。
Amazon Data Firehose
EventBridge は、Firehose 配信ストリームにログを配信します。
Amazon Data Firehose は、特定の AWS のサービスや、サポートされているサードパーティのサービスプロバイダーが所有する任意の HTTP エンドポイントなどの送信先に、リアルタイムのストリーミングデータを配信するフルマネージドサービスです。詳細については、「Amazon Data Firehose ユーザーガイド」の「Amazon Data Firehose 配信ストリームの作成」を参照してください。
Amazon S3
EventBridge は、ログを Amazon S3 オブジェクトとして指定先のバケットに配信します。
Amazon S3 は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 でのオブジェクトのアップロード、ダウンロード、操作」を参照してください。
イベントバスでのログ記録の仕組み
EventBridge は、次のログを生成します。
-
イベントバスのルールに一致する AWS サービスイベント
-
イベントが正常に取り込まれたか、いずれかのルールに一致するかにかかわらず、以下の方法で配信されるイベント。
パートナーイベントソースからのイベント
アーカイブから再生されたイベント
PutEvents 経由でバスに送信されるイベント
EventBridge は、マネージドルールのみに一致するイベントは記録しません。
選択したそれぞれのログ送信先に送信されるログデータは同じです。
EventBridge から選択したログ送信先に送信するログは、次の方法でカスタマイズできます。
ログレベルを指定できます。これにより、EventBridge から、選択した送信先にログを送信するステップが決定されます。詳細については、「イベントバスのログレベルの指定」を参照してください。
-
EventBridge に、必要に応じて以下に挙げる詳細な情報を含めるかどうかを指定できます。
イベントの詳細
ターゲットの入力情報
ターゲットのリクエスト情報
詳細については、「イベントバスのログに詳細データを含める」を参照してください。
ログ配信に関する考慮事項
イベントバスのログ記録を設定するときは、次の考慮事項に注意してください。
イベントバスのログレコードの配信は、ベストエフォートで行われます。ログ記録用に適切にイベントバスを設定した場合、そのイベントバスへのほとんどのリクエストについてログレコードが配信されます。イベントバスのログ記録の完全性や適時性は保証されません。
状況によっては、イベントバスログレコード自体を配信すると、EventBridge に送信されるイベントが生成され、ログレコードの配信が中断される可能性があります。このため、EventBridge は次のイベントは記録しません。
カスタマーマネージドキーを使用して暗号化されたログレコードがログ送信先に配信されたときに生成される AWS KMS
DecryptおよびGenerateDataKeyイベント。イベントバスログの配信によって生成された Firehose の
PutRecordBatchイベント。
-
S3 ログの送信先では、EventBridge のイベント通知を有効にして送信先バケットを指定することはお勧めしません。指定すると、ログの配信が中断される可能性があるためです。
ログ記録の暗号化
ログを送信すると、EventBridge はイベントバスに指定された KMS キーを使用して各ログレコードの detail および error セクションを暗号化します。配信されると、レコードは復号され、ログの送信先に指定された KMS キーで再度暗号化されます。
詳細については、「イベントバスログの暗号化」を参照してください。
イベントバスのログ記録のアクセス許可を指定
イベントバスのログ記録を有効にするには、EventBridge がそのイベントバスからログを送信するためのアクセス許可を付与する必要があります。AllowVendedLogDeliveryForResource をイベントバスに付与するポリシーを追加します。
詳細については、「CloudWatch Logs ユーザーガイド」でサービス固有のアクセス許可をご確認ください。
イベントバスのログレベルの指定
EventBridge が選択したログ送信先にログ記録する、イベント処理ステップのタイプを指定できます。
ログに含める詳細レベルを以下から選択します。ログレベルは、イベントバスに指定したすべてのログ送信先に適用されます。各ログレベルには、以前のログレベルのステップが含まれます。
-
OFF – EventBridge がログを送信することはありません。これがデフォルトです。
-
ERROR – EventBridge は、イベント処理とターゲット配信中に生成されたエラーに関連するログを送信します。
-
INFO – EventBridge は、エラーに関連するログと、イベント処理中に実行される主要ステップを送信します。
-
TRACE – EventBridge は、イベント処理のすべてのステップで生成されたログを送信します。
次の表は、各ログレベルに含まれるイベント処理ステップを示しています。
| Step | TRACE | 情報 | ERROR | VOFF |
|---|---|---|---|---|
|
イベントの取り込み |
x | x | ||
|
イベントの取り込み失敗 |
x | x | x | |
|
イベント受信 |
x | |||
|
呼び出しの試行開始 |
x | |||
|
呼び出し試行が完全に失敗 |
x | x | x | |
|
呼び出し試行での再試行可能な失敗 |
x | x | x | |
|
呼び出し試行の成功 |
x | |||
|
呼び出し試行のスロットリング |
x | x | x | |
|
呼び出し DLQ |
x | x | x | |
|
呼び出し失敗 |
x | x | x | |
|
呼び出し開始 |
x | x | ||
|
呼び出し成功 |
x | x | ||
|
呼び出しのスロットリング開始 |
x | x | x | |
|
一致するルールがない |
x | x | ||
|
ルールに一致 |
x | x | ||
|
ルールの一致を開始 |
x |
イベントバスのログに詳細データを含める
EventBridge が生成するログにより詳細な情報を含めるよう指定できます。このデータは、トラブルシューティングやデバッグに役立ちます。このオプションを選択すると、EventBridge は指定されたすべてのログ送信先に関連するレコードにこのデータを含めます。
データフィルターには、以下のフィールドが含まれています。
event_detail: イベント自体の詳細。target_input: EventBridge がターゲットに対して送信するリクエスト。target_properties:
イベントバスのログでのデータの切り捨て
ログの送信先の制約により、EventBridge はログレコードを 1 MB に制限します。ログレコードがこの制限を超えると、EventBridge は次のフィールドを以下の順序で削除してレコードを切り捨てます。
-
target_input -
target_properties -
target_response_body
EventBridge は、必要に応じて次のログレコードタイプから event_detail フィールドを削除します。
EVENT_RECEIVEDEVENT_INGESTEDEVENT_INGESTED_FAILEDRULE_MATCH_STARTED
切り捨てが必要な場合は、EventBridge がフィールド全体を削除します。
EventBridge がイベントのフィールドを切り捨てると、dropped_fields フィールドには切り捨てられたデータフィールドのリストが含まれます。
イベントバスログのエラーレポート
EventBridge は、エラー状態を示すエラーデータ (ある場合) もステップに含めます。ステップには以下が含まれます。
EVENT_INGEST_FAILUREINVOCATION_THROTTLE_STARTINVOCATION_ATTEMPT_THROTTLEINVOCATION_ATTEMPT_RETRYABLE_FAILUREINVOCATION_ATTEMPT_PERMANENT_FAILUREINVOCATION_FAILUREINVOCATION_DLQ