スキップしてコンテンツを表示

Amazon ECS のコンテナログが CloudWatch ログに配信されていない原因を教えてください。

所要時間1分
0

Amazon CloudWatch Logs において、Amazon Elastic Container Service (Amazon ECS) のコンテナログが想定通りに表示されません。

解決策

awslogs ログドライバーを変更する

タスク定義の awslogs log driverlogConfiguration パラメータを追加します。Amazon ECS タスクには複数のコンテナを含む場合は、各コンテナに logConfiguration パラメータを設定します。

起動タイプが Amazon Elastic Compute Cloud (Amazon EC2) の場合は、Amazon ECS コンテナインスタンスをバージョン 1.9.0 以降に更新してください。

コンテナインスタンスでは Amazon ECS 最適化 Amazon マシンイメージ (AMI) を使用しない場合は、次の環境変数を実行してコンテナエージェントを起動します。

ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'

注: コンテナインスタンスで awslogs ログドライバーを指定します。

詳細については、「Amazon ECS コンテナエージェントのインストール」を参照してください。

IAM ロールの必要な権限を追加します。

AWS Fargate 起動タイプ

AmazonECSTaskExecutionRolePolicy ポリシーを Amazon ECS タスク実行用の AWS Identity and Access Management (IAM) ロールにアタッチします。このポリシーには、必要なアクセス許可 logs:CreateLogStream および logs:PutLogEvents が含まれます。または、必要なアクセス許可を含むカスタム IAM ポリシーを作成します。

タスク実行 IAM ロールが含まれない Amazon EC2 起動タイプのタスク

AmazonEC2ContainerServiceforEC2Role ポリシーをコンテナインスタンスの IAM ロールにアタッチします。このポリシーには、必要なアクセス許可 logs:CreateLogStream および logs:PutLogEvents が含まれています。または、必要なアクセス許可を含むカスタム IAM ポリシーを作成します。

タスク実行 IAM ロールを含む Amazon EC2 起動タイプのタスク

コンテナエージェントの設定ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE パラメータを true に変更します。

注: コンテナエージェントパラメータのデフォルト値は、バージョン 1.16.0-1 以降の Amazon ECS 最適化 AMI では true、Windows では false です。

ネットワーク構成を確認する

タスクが Amazon Virtual Private Cloud (Amazon VPC) で awslogs ログドライバーを使用しており、インターネットゲートウェイを使用していない場合は、CloudWatch Logs にインターフェイス VPC エンドポイントを作成します。サービスには com.amazonaws.Region.logs を選択します。

コンテナのログレベル設定を確認する

awslogs ログドライバーは、STDOUT および STDERR I/O ストリームを Docker から CloudWatch Logs に渡します。

ログを構成するには、アプリケーションを更新し、ログを STDOUT および STDERR I/O ストリームに送信する設定を行います。次にコンテナのビルド時に、環境変数または設定ファイルを使用してアプリケーションのログレベルを設定します。

関連情報

Amazon ECS の監視ツール

Amazon ECS または Amazon EKS のコンテナログが欠けている場合のトラブルシューティング方法を教えてください

Amazon ECS ログを CloudWatch に送信する

AWS公式更新しました 7ヶ月前
コメントはありません

関連するコンテンツ