Managed Service for Apache Flink でアプリケーションロギングを設定する - Managed Service for Apache Flink

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

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

Managed Service for Apache Flink でアプリケーションロギングを設定する

Managed Service for Apache Flink アプリケーションに Amazon CloudWatch ログ記録オプションを追加することで、アプリケーションイベントや設定の問題を監視できます。

このトピックでは、アプリケーションイベントを CloudWatch Logs ストリームに書き込むようにアプリケーションを設定する方法について説明します。 CloudWatch ログ記録オプションは、アプリケーションイベントを CloudWatch ログに書き込む方法を設定するためにアプリケーションが使用するアプリケーション設定とアクセス許可のコレクションです。 AWS Management Console または AWS Command Line Interface () を使用して、 CloudWatch ログ記録オプションを追加および設定できますAWS CLI。

アプリケーションへの CloudWatch ログ記録オプションの追加については、次の点に注意してください。

  • コンソールを使用して CloudWatch ログ記録オプションを追加すると、Managed Service for Apache Flink は CloudWatch ロググループとログストリームを作成し、アプリケーションがログストリームに書き込むために必要なアクセス許可を追加します。

  • を使用して CloudWatch ログ記録オプションを追加する場合はAPI、アプリケーションのロググループとログストリームも作成し、アプリケーションがログストリームに書き込むために必要なアクセス許可を追加する必要があります。

コンソールを使用して CloudWatch ログ記録を設定する

コンソールでアプリケーションの CloudWatch ログ記録を有効にすると、 CloudWatch ロググループとログストリームが作成されます。また、アプリケーションのアクセス許可ポリシーは、ストリームへの書き込みアクセス許可で更新されます。

Managed Service for Apache Flink は、次の規則を使用して という名前のロググループを作成します。ApplicationName はアプリケーションの名前です。

/AWS/KinesisAnalytics/ApplicationName

。Managed Service for Apache Flinkは、新しいロググループに以下の名前でログストリームを作成します。

kinesis-analytics-log-stream

アプリケーションの設定ページの監視ログレベルセクションを使用して、アプリケーション監視メトリックレベルと監視ログレベルを設定します。アプリケーションログレベルの詳細については、 コントロールアプリケーションのモニタリングレベル を参照してください。

を使用して CloudWatch ログ記録を設定する CLI

を使用して CloudWatch ログ記録オプションを追加するには AWS CLI、次の手順を実行します。

  • CloudWatch ロググループとログストリームを作成します。

  • CreateApplication アクションを使用してアプリケーションを作成するときにログ記録オプションを追加するか、 AddApplicationCloudWatchLoggingOption アクションを使用して既存のアプリケーションにログ記録オプションを追加します。

  • ログに書き込むための権限をアプリケーションのポリシーに追加する

CloudWatch ロググループとログストリームを作成する

Logs コンソールまたは を使用して CloudWatch 、 CloudWatch ロググループとストリームを作成しますAPI。 CloudWatch ロググループとログストリームの作成については、「ロググループとログストリームの操作」を参照してください。

アプリケーションの CloudWatch ログ記録オプションを使用する

次のAPIアクションを使用して、新規または既存のアプリケーションに CloudWatch ログオプションを追加するか、既存のアプリケーションのログオプションを変更します。API アクションの入力にJSONファイルを使用する方法については、「」を参照してくださいManaged Service for Apache Flink APIのサンプルコード

アプリケーションの作成時に CloudWatch ログオプションを追加する

次の例は、アプリケーションの作成時に CreateApplicationアクションを使用して CloudWatch ログオプションを追加する方法を示しています。この例では、Amazon Resource Name (ARN) of the CloudWatch Log stream to add to the new application 独自の情報。これらのアクションの詳細については、「CreateApplication」を参照してください。

{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::amzn-s3-demo-bucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>" }] }

既存のアプリケーションに CloudWatch ログオプションを追加する

次の例は、 AddApplicationCloudWatchLoggingOptionアクションを使用して既存のアプリケーションに CloudWatch ログオプションを追加する方法を示しています。この例では、user input placeholder 独自の情報。これらのアクションの詳細については、「AddApplicationCloudWatchLoggingOption」を参照してください。

{ "ApplicationName": "<Name of the application to add the log option to>", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>" }, "CurrentApplicationVersionId": <Version of the application to add the log to> }

既存の CloudWatch ログオプションを更新する

次の例は、 UpdateApplicationアクションを使用して既存の CloudWatch ログオプションを変更する方法を示しています。この例では、user input placeholder 独自の情報。これらのアクションの詳細については、「UpdateApplication」を参照してください。

{ "ApplicationName": "<Name of the application to update the log option for>", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>", "LogStreamARNUpdate": "<ARN of the new log stream to use>" } ], "CurrentApplicationVersionId": <ID of the application version to modify> }

アプリケーションから CloudWatch ログオプションを削除する

次の例は、 DeleteApplicationCloudWatchLoggingOptionアクションを使用して既存の CloudWatch ログオプションを削除する方法を示しています。この例では、user input placeholder 独自の情報。これらのアクションの詳細については、「DeleteApplicationCloudWatchLoggingOption」を参照してください。

{ "ApplicationName": "<Name of application to delete log option from>", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>", "CurrentApplicationVersionId": <Version of the application to delete the log option from> }

アプリケーションのログ記録レベルを設定する

アプリケーションロギングのレベルを設定するには、CreateApplicationアクションのMonitoringConfigurationパラメータまたはUpdateApplicationアクションのMonitoringConfigurationUpdateパラメータを使用します。

アプリケーションログレベルの詳細については、 コントロールアプリケーションのモニタリングレベル を参照してください。

アプリケーションの作成時にアプリケーションログレベルを設定する

以下のCreateApplicationアクションリクエスト例では、アプリケーションログレベルを INFO に設定しています。

{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
アプリケーションのログ記録レベルを更新する

以下のUpdateApplicationアクションリクエスト例では、アプリケーションログレベルを INFO に設定しています。

{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }

CloudWatch ログストリームに書き込むアクセス許可を追加する

Managed Service for Apache Flink には、設定ミスエラーを に書き込むためのアクセス許可が必要です CloudWatch。Managed Service for Apache Flink が引き受ける AWS Identity and Access Management (IAM) ロールにこれらのアクセス許可を追加できます。

Managed Service for Apache Flink のIAMロールの使用の詳細については、「」を参照してくださいAmazon Managed Service for Apache Flink のIDとアクセスマネジメント

信頼ポリシー

Managed Service for Apache Flink にIAMロールを引き受けるアクセス許可を付与するには、次の信頼ポリシーをサービス実行ロールにアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanlaytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

アクセス権限ポリシー

Managed Service for Apache Flink リソース CloudWatch からログイベントを書き込むアクセス許可をアプリケーションに付与するには、次のIAMアクセス許可ポリシーを使用できます。ロググループとストリームに正しい Amazon リソースネーム (ARNs) を指定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*", "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:*", "arn:aws:logs:us-east-1:123456789012:log-group:*", ] } ] }

コントロールアプリケーションのモニタリングレベル

アプリケーションのモニタリングメトリックスレベルモニタリングログレベルを使用してアプリケーションログメッセージの生成を制御します。

アプリケーションのモニタリンググメトリックレベルは、ログメッセージの細分性を制御します。モニタリングメトリクスのレベルは次のように定義されます。

アプリケーションのモニタリンググログレベルは、アプリケーションのログ詳細度を制御します。モニタリングログレベルは次のように定義されます。

  • エラー:アプリケーションで発生可能の壊滅的なイベント

  • 警告:アプリケーションの潜在的で有害な状況。

  • 情報:アプリケーションの情報提供および一時的な障害イベント。。このログレベルを使用することをお勧めします。

  • デバッグ:アプリケーションのデバッグに最も役立つ、きめ細かい情報イベント。:このレベルは一時的なデバッグ目的でのみ使用してください。

ログ記録のベストプラクティスを適用する

アプリケーションには Info ロギングレベルを使用することをおすすめします。Apache Flink エラーを確実に表示するために、このレベルをお勧めします。エラーレベルは Error レベルではなく Info レベルで記録されます。

Debug レベルはアプリケーションの問題を調査する間は一時的にのみ使用することをおすすめします。問題が解決したら、Info レベルに戻してください。Debug ログレベルを使用すると、アプリケーションのパフォーマンスに大きく影響します。

ロギングが多すぎると、アプリケーションのパフォーマンスにも大きな影響を与える可能性があります。例のように処理されたレコードごとにログエントリを書き込まないことをお勧めします。ロギングが多すぎると、データ処理に重大なボトルネックが生じ、ソースからデータを読み取る際にバックプレッシャが発生する可能性があります。

ログ記録のトラブルシューティングを実行する

アプリケーションログがログストリームに書き込まれていない場合は、次のことを確認してください。

  • アプリケーションIAMの役割とポリシーが正しいことを確認します。ログストリームにアクセスするには、アプリケーションのポリシーに以下の権限が必要です。

    • logs:PutLogEvents

    • logs:DescribeLogGroups

    • logs:DescribeLogStreams

    詳細については、「 CloudWatch ログストリームに書き込むアクセス許可を追加する」を参照してください。

  • ステップ 5: アプリケーションが実行されていることを検証する アプリケーションのステータスを確認するには、コンソールでアプリケーションのページを表示するか、 DescribeApplication または ListApplicationsアクションを使用します。

  • などの CloudWatch メトリクスをモニタリングdowntimeして、他のアプリケーション問題を診断します。 CloudWatch メトリクスの読み取りについては、「」を参照してください

CloudWatch Logs Insights を使用する

アプリケーションで CloudWatch ログ記録を有効にしたら、 CloudWatch Logs Insights を使用してアプリケーションログを分析できます。詳細については、「 CloudWatch Logs Insights を使用してログを分析する」を参照してください。