フィールドインデックスを作成してクエリパフォーマンスを改善し、スキャン量を削減する - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

フィールドインデックスを作成してクエリパフォーマンスを改善し、スキャン量を削減する

ログイベントでフィールドのフィールドインデックスを作成して、同等性ベースの検索を効率的に行うことができます。その後、CloudWatch Logs Insights クエリでフィールドインデックスを使用すると、クエリはインデックス付きフィールドを含まないことがわかっているログイベントの処理のスキップを試行します。これによってフィールドインデックスを使用するクエリのスキャン量が減少し、結果をより迅速に返すことができます。これにより、数千のロググループ全体で合計ログのペタバイトをすばやく検索し、関連するログをより迅速に見つけることができます。インデックス付けに適したフィールドは、多くの場合、クエリが必要なフィールドです。値のカーディナリティが高いフィールドは、フィールドインデックスの候補としても適しています。これらのフィールドインデックスを使用するクエリは、一致するログイベントをターゲット値に制限するため、より迅速に完了するからです。

例えば、requestId のフィールドインデックスを作成したとします。次に、 を含む、requestId = valueまたは を含むロググループの CloudWatch LogsInsights クエリrequestId IN [value, value, ...]は、そのインデックス付きフィールドとクエリされた値を含むことがわかっており、CloudWatch Logs が過去にそのフィールドの値を検出したログイベントのみを処理しようとします。

フィールドインデックスを活用して、多数のロググループの効率的なクエリを作成することもできます。filter コマンドの代わりにクエリで filterIndex コマンドを使用すると、フィールドインデックスを持つログイベントで選択したロググループに対してクエリが実行されます。これらのクエリは、最大 5 つのロググループ名のプレフィックスを指定することで、最大 10,000 個のロググループをスキャンできます。これが CloudWatch のクロスアカウントオブザーバビリティのモニタリングアカウントの場合は、すべてのソースアカウントを選択するか個々のソースアカウントを指定してロググループを選択できます。

インデックス付きのフィールドでは、大文字と小文字が区別されます。例えば、RequestId のフィールドインデックスは、requestId を含むログイベントと一致しません。

フィールドインデックスは、JSON ログとサービスログの構造化ログ形式でのみサポートされます。

CloudWatch Logs は、標準ログクラスのすべてのロググループにデフォルトのフィールドインデックスを提供します。デフォルトのフィールドインデックスは、次のフィールドで自動的に使用できます。

  • @logStream

  • @aws.region

  • @aws.account

  • @source.log

  • @data_source_name

  • @data_source_type

  • @data_format

  • traceId

  • severityText

  • attributes.session.id

CloudWatch Logs は、特定のデータソース名とタイプの組み合わせのデフォルトのフィールドインデックスも提供します。デフォルトのフィールドインデックスは、次のデータソース名とタイプの組み合わせで自動的に使用できます。

データソース名とタイプ デフォルトのフィールドインデックス

amazon_vpc.flow

action

logStatus

region

flowDirection

type

amazon_route53.resolver_query

query_type

transport

rcode

aws_waf.access

action

httpRequest.country

aws_cloudtrail.data

aws_cloudtrail.management

eventSource

eventName

awsRegion

userAgent

errorCode

eventType

managementEvent

readOnly

eventCategory

requestId

デフォルトのフィールドインデックスは、ポリシー内で定義した任意のカスタムフィールドインデックスに追加されます。デフォルトのフィールドインデックスは、フィールドインデックスクォータにはカウントされません。

CloudWatch Logs は、インデックスポリシーの作成後に取り込まれたログイベントのみをインデックス化します。ポリシーの作成前に取り込まれたログイベントはインデックス化されません。フィールドインデックスを作成すると、一致する各ログイベントは、ログイベントの取り込み時間から 30 日間インデックスが付いたままになります。

注記

モニタリングアカウントにフィールドインデックスポリシーを作成する場合、そのポリシーはリンクされたソースアカウントのロググループには使用されません。フィールドインデックスポリシーは、それが作成されたアカウントにのみ適用されます。

このセクションの残りのトピックでは、フィールドインデックスを作成する方法について説明します。クエリでフィールドインデックスを参照する方法については「filterIndex」および「フィルター」を参照してください。