CloudWatch Logs Insights を使用したログデータの分析
CloudWatch Logs Insights を使用すると、Amazon CloudWatch Logs のログデータをインタラクティブに検索し分析することができます。クエリを実行することで、運用上の問題に効率的かつ効果的に対応できます。問題が発生した場合は、CloudWatch Logs Insights を使用して、潜在的な原因を特定し、デプロイされた修正を検証することができます。
CloudWatch Logs Insights は、クエリに使用できる 3 つのクエリ言語をサポートしています。
-
いくつかのシンプルで強力なコマンドを備えた目的別の Logs Insights クエリ言語 (Logs Insights QL)。
-
OpenSearch Service パイプ処理言語 (PPL)。OpenSearch PPL を使用すると、パイプ (|) で区切られた一連のコマンドを使用してログを分析できます。
OpenSearch PPL を使用すると、パイプ処理されたコマンドを使用してデータを取得、クエリ、分析できるため、複雑なクエリの理解と構成が容易になります。構文を使用すると、コマンドを連鎖してデータの変換と処理を行えます。PPL を使用すると、データをフィルターして集計し、豊富な一連の算術、文字列、日付、条件付きなどの関数を用いて分析できます。
-
OpenSearch Service 構造化クエリ言語 (SQL)。OpenSearch SQL クエリを使用すると、宣言的な方法でログを分析できます。SELECT、FROM、WHERE、GROUP BY、HAVING などのコマンドや、SQL で使用できるその他のさまざまなコマンドや関数を使用できます。ロググループ間で JOINs を実行し、サブクエリを使用してログ間でデータを関連付け、一連の豊富な JSON、算術、文字列、条件付きなどの SQL 関数を使用してログに対する強力な分析を実行できます。
SQL コマンドまたは PPL コマンドを使用する場合は、フィールドをバッククォートの特殊文字 (非アルファベットおよび非数値) で囲んでクエリを正常に実行してください。例えば、
@message、Operation.Export、Test::Fieldをバッククォートで囲みます。フィールド名がアルファベットのみの場合はバッククオートで囲む必要はありません。
CloudWatch Logs Insights には、任意のクエリ言語で使用できる以下の機能があります。
-
Amazon Route 53、AWS Lambda、AWS CloudTrail、Amazon VPC などの AWS のサービスからのログのログフィールドおよび、ログイベントを JSON として出力するアプリケーションログやカスタムログの自動検出 。
-
フィールドインデックスを作成してコストを削減し、特に多数のロググループまたはログイベントのクエリで結果を高速化。ログイベントで一般的なフィールドのフィールドインデックスを作成したら、クエリでこれらを使用できます。このクエリは、インデックス付きフィールドが含まれていないことがわかっているログイベントの処理をスキップし、データ処理量を抑制します。
注記
filterIndexコマンドは Logs Insights QL でのみ使用できます。 -
ログイベントのパターンの検出と分析。パターンは、ログフィールド間で繰り返される共有テキスト構造です。クエリの結果を表示するときは、[パターン]タブを選択して、結果のサンプルに基づいて CloudWatch Logs が検出したパターンを表示できます。
-
クエリの保存、クエリ履歴の表示、保存されたクエリの再実行。そのため、必要なときに複雑なクエリを実行でき、実行するたびにクエリを再作成する必要はありません。
-
自然言語を使用したクエリ生成により、自然言語を使用して CloudWatch Logs Insights クエリを作成できます。探しているデータについて質問あるいは説明すると、AI はそのプロンプトに基づいてクエリを生成し、そのクエリの仕組みを詳しく説明します。
以下の CloudWatch Logs Insights 機能は、Logs Insights QL を使用する場合にのみサポートされます。
-
低頻度アクセスログクラスのログのクエリ。
-
ロググループのログイベントと以前の期間のログイベントを比較する比較クエリ。
-
filterIndex コマンド。指定したフィールドインデックスを含むログイベントのみをクエリがスキャンするように強制します。
重要
CloudWatch Logs Insights は、ロググループの作成時刻より前のタイムスタンプを持つログイベントにはアクセスすることができません。
CloudWatch のクロスアカウントオブザーバビリティでモニタリングアカウントとして設定されたアカウントにサインインしている場合、このモニタリングアカウントにリンクされているソースアカウントのロググループで CloudWatch Logs Insights クエリを実行できます。異なるアカウントにある複数のロググループをクエリするクエリを実行できます。詳細については、「CloudWatch のクロスアカウントオブザーバビリティ」を参照してください。
また、Logs Insights QL を使用してクエリを作成する場合は、自然言語を使用して CloudWatch Logs Insights クエリを作成することもできます。そのためには、どのようなデータを探しているのかを質問したり、具体的に説明したりしてみてください。AI 支援機能が働いて、プロンプトに基づいてクエリが生成され、クエリの仕組みを説明した文が 1 行ずつ表示されます。詳細については、「Use natural language to generate and update CloudWatch Logs Insights queries」を参照してください。
サポートされているクエリ言語のいずれかを使用したクエリは、完了していない場合、60 分後にタイムアウトします。クエリ結果は 7 日間利用できます。
CloudWatch Logs Insights クエリでは、クエリ言語に関係なく、クエリされたデータの量に基づいて料金が発生します。詳細については、「Amazon CloudWatch 料金表
CloudWatch Logs Insights を使用して、2018 年 11 月 5 日以降に CloudWatch Logs に送信されたログデータを検索できます。
重要
ネットワークセキュリティチームがウェブソケットの使用を許可しない場合は、現在 CloudWatch コンソールの CloudWatch Logs Insights 部分にアクセスすることはできません。API を使用して CloudWatch Logs Insights のクエリ機能を使用できます。詳細については、Amazon CloudWatch Logs API リファレンスの「StartQuery」を参照してください。