使用 Amazon ECS 日志收集器收集容器日志 - Amazon Elastic Container Service

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

如果您不确定如何收集容器实例上的所有日志,您可以使用 Amazon ECS 日志收集器。在 GitHub 上提供了适用于 LinuxWindows 的日志收集器。此脚本会收集一般操作系统日志以及 Docker 和 Amazon ECS 容器代理日志,这些日志可以帮助解决 AWS Support 支持案例。然后,它会压缩和存档收集到的信息到单个文件中,该文件可以轻松共享以用于诊断目的。它还支持在 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

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

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

  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

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