

# 使用 Amazon ECS 日志收集器收集容器日志
<a name="ecs-logs-collector"></a>

**注意**  
您无法在 Amazon ECS 托管实例上使用 Amazon ECS 日志收集器。

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

**注意**  
在 Amazon Linux 经 Amazon ECS 优化的 AMI 版本 20250909 及更高版本上，Amazon ECS 日志收集器预安装在 `/opt/amazon/ecs/ecs-logs-collector.sh` 下，无需从 GitHub 下载即可使用。有关更多信息，请参阅经 ECS 优化的 AMI 文档中的 [ECS Logs Collector](https://github.com/aws/amazon-ecs-ami?tab=readme-ov-file#ecs-logs-collector)。

目前，Amazon ECS 日志收集器支持以下操作系统：
+ Amazon Linux
+ Red Hat Enterprise Linux
+ Ubuntu
+ Windows Server

**运行适用于 Linux 的 Amazon ECS 日志收集器（经 ECS 优化的 AMI）**

1. 连接到您的容器实例。

1. 运行脚本以收集日志并创建存档。
**注意**  
要为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试模式，可将 `--mode=enable-debug` 选项添加到以下命令。这可能会重新启动 Docker 进程守护程序，从而终止正在该实例上运行的所有容器。启用调试模式前，应考虑耗尽容器实例并将所有重要任务迁移到其他容器实例。有关更多信息，请参阅 [耗尽 Amazon ECS 容器实例](container-instance-draining.md)。

   ```
   [ec2-user ~]$ sudo /opt/amazon/ecs/ecs-logs-collector.sh
   ```

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

**要下载并运行适用于 Linux 的 Amazon ECS 日志收集器**

1. 连接到您的容器实例。

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

   ```
   curl -O https://raw.githubusercontent.com/awslabs/ecs-logs-collector/master/ecs-logs-collector.sh
   ```

1. 运行脚本以收集日志并创建存档。

   ```
   $ sudo bash ./ecs-logs-collector.sh
   ```

**下载并运行适用于 Windows 的 Amazon ECS 日志收集器**

1. 连接到您的容器实例。有关更多信息，请参阅《Amazon EC2 用户指南》中的[使用 RDP 连接到 Windows 实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)**。

1. 使用 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
   ```

1. 运行脚本以收集日志并创建存档。
**注意**  
要为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试模式，可将 `-RunMode debug` 选项添加到以下命令。这会重新启动 Docker 进程守护程序，从而终止正在该实例上运行的所有容器。启用调试模式前，应考虑耗尽容器实例并将所有重要任务迁移到其他容器实例。有关更多信息，请参阅 [耗尽 Amazon ECS 容器实例](container-instance-draining.md)。

   ```
   .\ecs-logs-collector.ps1
   ```

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