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

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

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

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

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

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

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

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

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

注記

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

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