我的 Amazon Elastic Container Service (Amazon ECS) 容器日志未按预期出现在 Amazon CloudWatch Logs 中。
将 awslogs 日志驱动程序添加到任务定义中的 logConfiguration 参数中。对于具有多个容器的 Amazon ECS 任务,请为每个容器配置 logConfiguration 参数。
如果您有 Amazon Elastic Compute Cloud (Amazon EC2) 启动类型,请将您的 Amazon ECS 容器实例更新到 1.9.0 或更高版本。
如果您的容器实例不使用经过 Amazon ECS 优化的亚马逊机器映像 (AMI),请运行以下环境变量来启动容器代理:
ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'
**注意:**在容器实例上指定 awslogs 日志驱动程序。
有关详细信息,请参阅安装 Amazon ECS 容器代理。
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
rePost Polyglot
已提问 3 年前
Lei Pei
已发布 2 年前