Amazon CloudWatch Logs Insights クエリでエラーが発生したり、期待どおりの結果が得られなかったりするため、トラブルシューティングを行いたいです。
解決策
CloudWatch Logs Insights クエリは、次の理由でエラーを返したり、期待どおりの結果を返さなかったりする場合があります。問題のトラブルシューティングを行うには、適切な解決方法を使用してください。
ロググループに、クエリの時間範囲に対応するログがない
CloudWatch コンソールで、クエリ結果で想定されるログが、クエリの時間範囲に対応するロググループに含まれていることを確認します。
ログがクエリの時間範囲に対応するロググループに含まれているが、クエリ結果に表示されない
CloudWatch Logs がログを受信すると、ログがクエリ可能になるまでに数分かかります。CloudWatch ログの時間範囲とタイムゾーンがクエリの時間範囲とタイムゾーンと同じであることを確認します。
CloudWatch Logs Insights クエリで filter コマンドを使用する場合は、ログがフィルター条件と一致していることを確認してください。また、ログがクエリの時間範囲に対応するロググループに存在することを確認してください。filter コマンドを使用せずに CloudWatch Logs Insights クエリを実行するには、次のコマンドを実行します。
fields @timestamp, @message, @logStream, @log | sort @timestamp desc | limit 20
CloudWatch Logs は、過去最大 14 日間のタイムスタンプを持つログイベントを受信できます。詳細については、PutLogEvents を参照してください。ロググループ作成のタイムスタンプより前のタイムスタンプを持つログイベントは、CloudWatch Logs Insights でクエリすることはできません。
WebSocket 接続エラーが発生した
クエリを実行するには、CloudWatch コンソールがお使いのネットワークから WebSocket にアクセスする必要があります。ネットワークセキュリティチームが WebSocket の使用を許可していない場合、CloudWatch コンソールで CloudWatch Logs Insights にアクセスすることはできません。代わりに、API コマンドを使用して CloudWatch Logs Insights にアクセスします。詳細については、StartQuery と GetQueryResults を参照してください。
「行の制限超過」エラーが発生した
クエリで返すログイベントの数を指定するには、limit コマンドを使用します。10000 を超える数値を指定すると、次のエラーメッセージが表示されます。 「行の制限を超えました。指定した値: 100000。最大: 10000 ([X,Y]) (サービス: AWSLogs。ステータスコード: 400。エラーコード: MalformedQueryException。リクエスト ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。プロキシ: null)。」
デフォルトでは、最大 1000 行のクエリ結果がコンソールに表示されます。limit コマンドを使用すると、クエリ結果の行数を最大 10000 行まで増やすことができます。このクォータは変更できません。
CloudWatch Logs Insights のクエリには、10000 レコードの制限を使用するのがベストプラクティスです。クエリが 10000 件を超えるレコードを返す場合は、クエリをより短い期間実行することで、返されるレコードの数を減らします。
CloudWatch Logs Insights のビジュアライゼーションで折れ線グラフが表示されず、エラーが発生する
CloudWatch Logs Insights のビジュアライゼーションで折れ線グラフが表示されない場合に、次のエラーメッセージが表示されることがあります。 「このデータは折れ線グラフには適していません。棒グラフを使用してみるか、bin 関数で結果をグループ化してください。」
この問題をトラブルシューティングするには、CloudWatch Logs Insights クエリが stats、aggregation、または bin() 関数を使用してデータをグループ化しているかどうかを確認します。bin () 関数が、CloudWatch Logs Insights クエリで唯一グループ化を行うフィールドである必要があります。
「クエリの実行中にエラーが発生しました」
大量のデータに対してクエリを実行しようとしたときに、クエリの完了にさらに時間がかかる場合、このエラーが発生します。次の CloudWatch Logs Insights のクォータを確認してください。
- CloudWatch Logs Insights は、ロググループ内の最大 1000 のログイベントフィールドを検出します。
- CloudWatch Logs Insights は、JSON ログから最大 200 のログイベントフィールドを抽出します。
- 1 回の CloudWatch Logs Insights クエリで最大 50 のロググループをクエリできます。
- Standard クラスのロググループでは、最大 30 の CloudWatch Logs Insights クエリを同時に実行できます。これには、ダッシュボードに追加されたクエリが含まれます。
- 低頻度アクセスクラスのロググループでは、最大 5 つの CloudWatch Logs Insights クエリを同時に実行できます。これには、ダッシュボードに追加されたクエリが含まれます。
- CloudWatch Logs Insights のクエリは 60 分後にタイムアウトします。
関連情報
CloudWatch Logs Insights でログデータを分析する
CloudWatch Logs Insights のクエリ構文
クエリの例