スケジュールされたクエリのトラブルシューティング - Amazon CloudWatch Logs

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

スケジュールされたクエリのトラブルシューティング

これらのトラブルシューティングトピックを使用して、スケジュールされたクエリに関する一般的な問題を解決します。

クエリの実行がアクセス許可エラーで失敗する

スケジュールされたクエリの実行または送信先への結果の配信を妨げるアクセス許可エラーを解決します。

アクセス許可エラーは、実行ロールにロググループからの読み取りまたは送信先リソースへの書き込みに必要なアクセス許可がない場合に発生します。

アクセス許可エラーを解決するには
  1. 実行ロールにlogs:StartQuery、ターゲットロググループの 、logs:GetQueryResults、および アクセスlogs:DescribeLogGroups許可があることを確認します。

  2. 実行ロールに、送信先リソース (S3 バケットなど) s3:PutObjectの書き込みアクセス許可があることを確認します。

  3. 信頼ポリシーが CloudWatch Logs が実行ロールを引き受けることを許可していることを確認します。ロールは、信頼ポリシーでログサービスプリンシパル (logs.amazonaws.com) を信頼する必要があります。

一般的な原因には、IAM アクセス許可の欠落、ポリシー内のリソース ARNs の誤り、信頼ポリシーの設定の問題などがあります。

アクセス許可エラーを防ぐには、スケジュールされたクエリを本番環境にデプロイする前に、実行ロールとテストアクセス許可を作成するときに最小特権の原則を使用します。

クエリのタイムアウト

スケジュールされたクエリが最大実行時間制限を超えたときに発生するタイムアウトエラーを解決します。

クエリのタイムアウトは、クエリが指定されたデータ範囲の処理に 60 分以上かかる場合に発生します。多くの場合、大規模なデータセットや複雑なクエリロジックが原因です。

タイムアウトエラーを解決するには
  1. 開始時間オフセットを減らして時間範囲を短縮し、実行あたりの処理データを減らします。

  2. クエリの早い段階でフィルターを追加してクエリを最適化し、処理されるデータ量を減らします。フィルターインデックスを使用してデータスキャンサイズを縮小します。

  3. 複雑なクエリをよりシンプルで焦点を絞ったクエリに分割することを検討してください。

一般的な原因には、大規模な時間範囲のクエリ、大量のロググループの処理、適切なフィルタリングなしでの複雑な集計の使用などがあります。

タイムアウトを防ぐには、CloudWatch Logs Insights で予想されるデータボリュームを使用してクエリを手動でテストし、スケジューリング前にパフォーマンスを最適化します。

送信先処理が失敗する

スケジュールされたクエリ結果を設定された送信先に配信できない場合に発生する障害を解決します。

送信先処理の失敗は、ターゲット Amazon S3 バケットまたは EventBridge イベントバスにアクセスできないか、正しく設定されていない場合に発生します。

クエリ結果が送信先に発行されない障害を解決するには
  1. 指定された Amazon S3 バケットが存在し、アクセス可能であることを確認します。

  2. 正しい URIs の送信先設定を確認します。

  3. 実行ロールに、送信先に書き込むために必要なアクセス許可があることを確認します。

一般的な原因には、宛先リソースの削除または名前の変更、宛先 URIs誤り、ネットワーク接続の問題などがあります。

送信先の障害を防ぐには、送信先設定を定期的に検証し、送信先リソースの可用性をモニタリングします。

無効なクエリエラー

スケジュールされたクエリ文字列の構文エラーとロジックエラーを解決して、正常に実行できないようにします。

無効なクエリエラーは、クエリ文字列に構文エラーが含まれている場合、存在しないフィールドを参照する場合、またはサポートされていないクエリ言語機能を使用する場合に発生します。

無効なクエリエラーを解決するには
  1. CloudWatch Logs Insights でクエリを手動でテストして、構文とロジックを検証します。

  2. 参照されるすべてのログフィールドがターゲットロググループに存在することを確認します。

  3. 使用しているクエリ言語機能がスケジュールされたクエリでサポートされていることを確認します。

一般的な原因には、フィールド名のタイプミス、誤ったクエリ構文、スケジュールされた実行環境でサポートされていないクエリ機能の使用などがあります。

無効なクエリエラーを防ぐには、スケジュールする前にクエリをインタラクティブにテストし、フィールド検出機能を使用してフィールド名を検証します。

クエリ同時実行エラー

スケジュールされたクエリが Cloudwatch Logs インサイトクエリと同じクォータを使用していると同時実行エラーが見られる場合、以下に留意すべき重要な点がいくつかあります。同時実行数の制限に達しないように、スケジュールを分散することをお勧めします。

  • クォータ: AWS アカウントごとに最大 30 個の CloudWatch Logs Insights クエリを同時に実行できます。

  • ダッシュボード: CloudWatch ダッシュボードに追加されたクエリは、ダッシュボードがロードまたは更新されたときに実行されるため、この同時実行数の制限にもカウントされます。

  • OpenSearch Service PPL/SQL: 30 の同時クエリ内で、サブセット (現在 15) は OpenSearch PPL または OpenSearch SQL を使用できます。

  • クロスアカウントクエリ: 同時実行クォータは、単一クエリとクロスアカウントクエリの両方に適用されます。CloudWatch クロスアカウントオブザーバビリティを使用する場合、リンクされたソースアカウントに対してモニタリングアカウントで開始されたクエリは、モニタリングアカウントの同時実行数の制限にもカウントされます。

  • 低頻度アクセスロググループ: 低頻度アクセスログクラスのロググループの場合、同時 Logs Insights クエリの最大数は 5 に制限されます。