アプリケーションログ記録の設定 - Managed Service for Apache Flink

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

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

アプリケーションログ記録の設定

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

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

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

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

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

コンソールを使用した CloudWatch ログ記録の設定

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

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

/AWS/KinesisAnalytics/ApplicationName

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

kinesis-analytics-log-stream

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

CLI を使用した CloudWatch ログ記録の設定

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

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

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

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

CloudWatch ロググループとログストリームの作成

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

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

次の API アクションを使用して、新規または既存のアプリケーションに CloudWatch ログオプションを追加したり、既存のアプリケーションのログオプションを変更したりできます。JSON ファイルを API アクションの入力に使用する方法の詳細については、Apache Flink API のマネージドサービスのサンプルコード を参照してください。

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

次の例は、アプリケーションの作成時に CreateApplicationアクションを使用して CloudWatch ログオプションを追加する方法を示しています。この例では、 CloudWatch ログストリームの Amazon リソースネーム (ARN) を置き換えて、新しいアプリケーションに自分の情報を追加します。これらのアクションの詳細については、「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:::mybucket", "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 ログオプションを追加する方法を示しています。例では、各 ユーザー入力プレースホルダー を独自の情報に置き換えます。これらのアクションの詳細については、「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 ログオプションを変更する方法を示しています。例では、各 ユーザー入力プレースホルダー を独自の情報に置き換えます。これらのアクションの詳細については、「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 ログオプションを削除する方法を示しています。例では、各 ユーザー入力プレースホルダー を独自の情報に置き換えます。これらのアクションの詳細については、「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:::mybucket", "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) ロールに追加できます。

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

信頼ポリシー

IAM ロールを引き受けるためのアクセス権限を Managed Service for Apache Flinkに付与するには、以下の信頼ポリシーをそのロールにアタッチします。

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

アクセス権限ポリシー

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

{ "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 メトリクスの読み取りについては、「」を参照してくださいManaged Service for Apache Flink のメトリクスとディメンション

次のステップ

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