フィールドインデックスを作成してクエリのパフォーマンスを向上させ、スキャンボリュームを減らす - Amazon CloudWatch ログ

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

フィールドインデックスを作成してクエリのパフォーマンスを向上させ、スキャンボリュームを減らす

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

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

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

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

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

CloudWatch ログは、インデックスポリシーの作成後に取り込まれたログイベントのみをインデックス化します。ポリシーの作成前に取り込まれたログイベントにはインデックスを作成しません。

注記

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

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