CloudWatch Logs Insights を使用したログの分析 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

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

CloudWatch Logs Insights を使用したログの分析

前のセクションで説明したようにアプリケーションに CloudWatch ログ記録オプションを追加したら、 CloudWatch Logs Insights を使用してログストリームに特定のイベントやエラーをクエリできます。

CloudWatch Logs Insights を使用すると、Logs CloudWatch でログデータをインタラクティブに検索および分析できます。

CloudWatch Logs Insights の開始方法については、「Logs Insights を使用した CloudWatch ログデータの分析」を参照してください。

サンプルクエリを実行する

このセクションでは、サンプルの CloudWatch Logs Insights クエリを実行する方法について説明します。

前提条件

  • Logs で設定された既存のロググループと CloudWatch ログストリーム。

  • Logs に保存されている既存の CloudWatch ログ。

AWS CloudTrail、Amazon Route 53、Amazon VPC などのサービスを使用している場合は、これらのサービスからのログを CloudWatch ログに移動するように設定済みである可能性があります。ログを CloudWatch ログに送信する方法の詳細については、「 CloudWatch ログの開始方法」を参照してください。

CloudWatch Logs Insights のクエリは、ログイベントから一連のフィールド、またはログイベントに対して実行された数学的集計やその他のオペレーションの結果を返します。このチュートリアルでは、ログイベントのリストを返すクエリを示します。

CloudWatch Logs Insights サンプルクエリを実行するには
  1. https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。

  2. ナビゲーションペインで、[Insights] を選択します。

  3. [Logs Insights] (ログのインサイト) ページでは、クエリエディタにデフォルトクエリが表示されます。デフォルトでは、最新の 20 件のログイベントが返されます。クエリエディタの上で、クエリを実行する対象のロググループを選択します。

    ロググループを選択すると、 CloudWatch Logs Insights はロググループ内のデータ内のフィールドを自動的に検出し、右側のペインの検出済みフィールドに表示します。また、このロググループのログイベントを時間の経過に従って棒グラフで表示します。この棒グラフは、表に示されるイベントだけでなく、クエリと時間範囲に一致するロググループ内のイベントの分布を示します。

  4. [Run query] (クエリの実行) を選択します。

    クエリの結果が表示されます。この例では、タイプを問わず、最新の 20 件のログイベントが結果として表示されます。

  5. 返されたログイベントのいずれかについて、すべてのフィールドを表示するには、そのログイベントの左側にある矢印を選択します。

CloudWatch Logs Insights クエリを実行および変更する方法の詳細については、「サンプルクエリを実行および変更する」を参照してください。

クエリの例

このセクションでは、Managed Service for Apache Flink アプリケーションログを分析するための CloudWatch Logs Insights クエリの例を示します。これらのクエリは、いくつかのエラー状態の例を検索して、他のエラー状態を検索するクエリを作成するためのテンプレートとして機能します。

注記

次のクエリ例のリージョン (us-west-2)、アカウント ID (012345678901)、アプリケーション名 (YourApplication) をアプリケーションのリージョンとアカウント ID に置き換えます。

分析オペレーション: タスクの分散

次の CloudWatch Logs Insights クエリは、Apache Flink Job Manager がタスクマネージャー間で分散するタスクの数を返します。クエリが以前のジョブのタスクを返さないように、クエリの時間枠を 1 回のジョブ実行と一致するように設定する必要があります。並列ロードの詳細については、「スケーリング」をご参照ください。

fields @timestamp, message | filter message like /Deploying/ | parse message " to flink-taskmanager-*" as @tmid | stats count(*) by @tmid | sort @timestamp desc | limit 2000

次の CloudWatch Logs Insights クエリは、各タスクマネージャーに割り当てられたサブタスクを返します。サブタスクの総数は、各タスクの並列処理の合計です。タスク並列処理は演算子の並列処理から派生し、コード内でsetParallelismを指定して変更しない限り、デフォルトではアプリケーションの並列処理と同じです。演算子の並列処理の設定の詳細について、Apache Flink ドキュメント並列処理の設定:演算子レベルを参照してください。

fields @timestamp, @tmid, @subtask | filter message like /Deploying/ | parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid | sort @timestamp desc | limit 2000

タスクスケジューリングについて詳しくは、Apache Flink ドキュメントジョブとスケジューリングを参照してください。

分析オペレーション: 並列処理の変更

次の CloudWatch Logs Insights クエリは、アプリケーションの並列処理に対する変更 (自動スケーリングなど) を返します。このクエリでは、アプリケーションの並列処理に対する手動による変更も返されます。 Auto Scaling の詳細については、「」を参照してくださいAuto Scaling

fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc

エラーの分析: アクセスが拒否されました

次の CloudWatch Logs Insights クエリはAccess Deniedログを返します。

fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /AccessDenied/ | sort @timestamp desc

エラーの分析: ソースまたはシンクが見つかりません

次の CloudWatch Logs Insights クエリはResourceNotFoundログを返します。 は、Kinesis ソースまたはシンクが見つからない場合に結果をResourceNotFoundログに記録します。

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /ResourceNotFoundException/ | sort @timestamp desc

エラーの分析: アプリケーションタスク関連の障害

次の CloudWatch Logs Insights クエリは、アプリケーションのタスク関連の失敗ログを返します。これらのログは、アプリケーションのステータスがRUNNINGからRESTARTINGに切り替わった場合に生成されます。

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to RESTARTING/ | sort @timestamp desc

Apache Flink バージョン 1.8.2 以前を使用するアプリケーションでは、タスク関連の障害が発生すると、アプリケーションのステータスが代わりにRUNNINGからFAILEDに切り替わります。Apache Flink 1.8.2 以前のバージョンを使用している場合は、次のクエリを使用してアプリケーションタスク関連の障害を検索してください。

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc