Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudWatch Logs Insights を使用してログを分析する
前のセクションで説明したようにCloudWatch ロギング オプションをアプリケーションに追加した後、CloudWatch Logs Insightsを使用して、特定のイベントまたはエラーについてログ ストリームをクエリできます。
CloudWatch Logs Insights を使用すると、Amazon CloudWatch Logs のログデータをインタラクティブに検索し分析することが可能になります。
CloudWatch Logs Insights の詳細については、「CloudWatch Logs Insights を使用したログデータの分析」を参照してください。
サンプルクエリを実行する
このセクションでは、CloudWatch Logs Insightsのサンプルクエリを実行する方法について説明します。
前提条件
-
CloudWatch Logs で設定されている既存のロググループとログストリーム
-
ログは CloudWatch Logs に保存されます。
Amazon Route 53 AWS CloudTrailや Amazon VPC などのサービスを使用している場合は、CloudWatch Logs に移動するようにそれらのサービスのログを既に設定している可能性があります。CloudWatch Logs の詳細については、[Getting Started with CloudWatch Logs] (CloudWatch Logs の開始方法) を参照してください。
CloudWatch Logs Insights のクエリは、ログイベントから一連のフィールドを返すか、ログイベントに対して実行された数学的な集約やその他のオペレーションの結果を返します。このチュートリアルでは、ログイベントのリストを返すクエリを示します。
CloudWatch Logs Insights サンプルクエリを実行するには
CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/
) を開きます。 -
ナビゲーションペインで、[Insights] を選択します。
-
[Logs Insights] (ログのインサイト) ページでは、クエリエディタにデフォルトクエリが表示されます。デフォルトでは、最新の 20 件のログイベントが返されます。クエリエディタの上で、クエリを実行する対象のロググループを選択します。
ロググループを選択すると、CloudWatch Logs Insights はロググループのデータのフィールドを自動的に検出し、右側のペインの [Discovered fields (検出済みフィールド)] に表示します。また、このロググループのログイベントを時間の経過に従って棒グラフで表示します。この棒グラフは、表に示されるイベントだけでなく、クエリと時間範囲に一致するロググループ内のイベントの分布を示します。
-
[Run query] (クエリの実行) を選択します。
クエリの結果が表示されます。この例では、タイプを問わず、最新の 20 件のログイベントが結果として表示されます。
-
返されたログイベントのいずれかについて、すべてのフィールドを表示するには、そのログイベントの左側にある矢印を選択します。
CloudWatch Logs Insights クエリを実行および変更する方法の詳細については、サンプルクエリの実行と変更を参照してください。
クエリの例を確認する
このセクションには、Managed Service for Apache Flinkのアプリケーションログを分析するための CloudWatch Logs Insights サンプルクエリが含まれています。これらのクエリは、いくつかのエラー状態の例を検索して、他のエラー状態を検索するクエリを作成するためのテンプレートとして機能します。
注記
次のクエリ例のリージョン (us-west-2)、アカウント ID (012345678901
)、アプリケーション名 (yourApplication) を、アプリケーションのリージョンとアカウント
ID に置き換えてください。
このトピックには、次のセクションが含まれています。
分析オペレーション: タスクの分散
次の CloudWatch Logs Insights クエリは、Apache Flink Job マネージャーがタスクマネージャー間で分散するタスクの数を返します。クエリが以前のジョブのタスクを返さないように、クエリの時間枠を 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 の詳細については、「」を参照してくださいManaged Service for Apache Flink で自動スケーリングを使用する。
fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc
エラーの分析: アクセスが拒否されました
次の CloudWatch Logsインサイトクエリは Access Denied
ログを返します。
fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalytics
us-west-2
:012345678901
:application\/YourApplication
/ | filter @message like /AccessDenied/ | sort @timestamp desc
エラーの分析: ソースまたはシンクが見つかりません
次のCloudWatch Logsインサイトクエリは ResourceNotFound
ログを返します。 Kinesis ソースまたはシンクが見つからない場合、結果を ResourceNotFound
ログに記録します。
fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalytics
us-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:kinesisanalytics
us-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:kinesisanalytics
us-west-2
:012345678901
:application\/YourApplication
/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc