使用 Amazon ECS 日志收集器收集容器日志 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon ECS 日志收集器收集容器日志

如果您不确定如何收集容器实例上的所有日志,您可以使用 Amazon ECS 日志收集器。在 GitHub 上提供了适用于 LinuxWindows 的日志收集器。此脚本会收集一般操作系统日志以及 Docker 和 Amazon ECS 容器代理日志,这些日志可以帮助解决 Amazon Web Services 支持 支持案例。然后,它会压缩和存档收集到的信息到单个文件中,该文件可以轻松共享以用于诊断目的。它还支持在 Amazon Linux 变体(例如经 Amazon ECS 优化的 AMI)上为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试模式。目前,Amazon ECS 日志收集器支持以下操作系统:

  • Amazon Linux

  • Red Hat Enterprise Linux 7

  • Debian 8

  • Ubuntu 14.04

  • Ubuntu 16.04

  • Ubuntu 18.04

  • Windows Server 2016

注意

对于 LinuxWindows,都可以从 GitHub 获得 Amazon ECS 日志收集器的源代码。我们鼓励您针对要包含的更改提交提取请求。但是,Amazon Web Services 当前不支持运行此软件的修改后副本。

要下载并运行适用于 Linux 的 Amazon ECS 日志收集器
  1. 连接到您的容器实例。

  2. 下载 Amazon ECS 日志收集器脚本。

    curl -O https://raw.githubusercontent.com/awslabs/ecs-logs-collector/master/ecs-logs-collector.sh
  3. 运行脚本以收集日志并创建存档。

    注意

    要为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试模式,可将 --mode=enable-debug 选项添加到以下命令。这可能会重新启动 Docker 进程守护程序,从而终止正在该实例上运行的所有容器。启用调试模式前,应考虑耗尽容器实例并将所有重要任务迁移到其他容器实例。有关更多信息,请参阅 耗尽 Amazon ECS 容器实例

    [ec2-user ~]$ sudo bash ./ecs-logs-collector.sh
重要

我们建议您编辑日志并从文件中删除所有敏感数据。您可以搜索已知数据,也可以在文件中搜索环境变量,例如 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN

运行脚本后,您可以在脚本创建的 collect 文件夹中检查收集的日志。collect.tgz 文件是所有日志的压缩存档,您可以与 Amazon Web Services 支持 支持共享该文件以帮助诊断。

下载并运行适用于 Windows 的 Amazon ECS 日志收集器
  1. 连接到您的容器实例。有关更多信息,请参阅《Amazon EC2 用户指南》中的使用 RDP 连接到 Windows 实例

  2. 使用 PowerShell 下载 Amazon ECS 日志收集器脚本。

    Invoke-WebRequest -OutFile ecs-logs-collector.ps1 https://raw.githubusercontent.com/awslabs/aws-ecs-logs-collector-for-windows/master/ecs-logs-collector.ps1
  3. 运行脚本以收集日志并创建存档。

    注意

    要为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试模式,可将 -RunMode debug 选项添加到以下命令。这会重新启动 Docker 进程守护程序,从而终止正在该实例上运行的所有容器。启用调试模式前,应考虑耗尽容器实例并将所有重要任务迁移到其他容器实例。有关更多信息,请参阅 耗尽 Amazon ECS 容器实例

    .\ecs-logs-collector.ps1
重要

我们建议您编辑日志并从文件中删除所有敏感数据。您可以搜索已知数据,也可以在文件中搜索环境变量,例如 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN

运行脚本后,您可以在脚本创建的 collect 文件夹中检查收集的日志。collect.tgz 文件是所有日志的压缩存档,您可以与 Amazon 支持共享该文件以帮助诊断。