【问题标题】:ECS Fargate log file locationECS Fargate 日志文件位置
【发布时间】:2026-01-03 19:10:01
【问题描述】:

如何配置 ECS Fargate + Cloudwatch 以包含特定文件位置。

我有 app-access.log 我的框架将我的所有访问日志放在其中。 Cloudwatch 目前仅使用来自我的服务器命令 IO 的日志。如何让 ECS Fargate 也使用 app-access.log

PS。我正在使用 Cloudformation。

【问题讨论】:

  • 确保您在ErrorWarning 级别进行日志记录,否则日志将在您的容器之外不可见。

标签: dockerfile amazon-cloudformation amazon-ecs aws-fargate


【解决方案1】:

ECS 或 Cloudwatch 不监视容器中的文件。 ECS 与 docker 日志集成,如果 docker 容器从 access.log 发出日志,那么这些将可用于 Cloudwatch。这就是为什么您只看到 IO 命令。

所以这不是关于 ECS,而是关于 docker 日志记录的工作方式。有关 docker 日志记录的更多详细信息,请参阅 here

您必须确保将任何日志行写入 STDOUT 或 STDERR。 一种方法是符号链接 /path/to/app-access.log -> /dev/stdout。 但通常,确保您的服务有一个控制台附加程序会更容易。

【讨论】:

  • 谢谢。 Dockerfile 中的RUN ln -s /dev/stdout ./app-access.log 为我工作。
  • 嗨 @roxxypoxxy,我尝试在 Dockerfile 中添加该行,它在 ecs fargate 任务中成功运行,但你能告诉我如何检查该文件吗?