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

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

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

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

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

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

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

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

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

注記

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

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