如何自动从我的 Amazon ECS 容器实例收集日志?

1 分钟阅读
0

我正在对我的 Amazon Elastic Container Service(Amazon ECS)环境进行故障排除或使用 AWS Support 打开一个案例,我需要从我的容器实例收集各种日志。

简短描述

Amazon ECS 日志收集器是一个脚本,它可以从容器实例中自动收集日志。该脚本会收集一般的操作系统日志以及 Docker 和 Amazon ECS 容器代理日志。然后,该脚本将日志压缩并存档到一个文件中,您可以在对问题故障排除时共享该文件。

您还可以在 AWS Systems Manager Automation 中使用 AWSSupport-CollectECSInstanceLogs 运行手册从 ECS 实例收集日志。该运行手册允许您将日志上传到您创建的 S3 桶。您必须在 LogDestination 输入参数中提供 S3 桶的位置。

注意: AWSSupport-CollectECSInstanceLogs 不支持调试模式。有关详细信息,请参阅运行自动化

解决方法

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

1.    连接到您的容器实例

2.    要确认是否已安装 curl,请运行以下命令:

curl --version

该命令的输出应类似于以下内容:

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3

**注意:**如果命令未返回预期结果,请安装 curl 包。

3.    要下载 Amazon ECS 日志收集器脚本,请运行以下命令:

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

4.    要使用该脚本收集日志并创建存档,请运行以下命令:

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

运行该脚本后,可以在该脚本创建的 collect 文件夹中检查收集的日志。在该文件夹中,您可以找到 collect.tgz 文件,它是所有日志的压缩存档。

在调试模式下运行适用于 Linux 的 Amazon ECS 日志收集器

如果日志未提供您需要的所有信息,则可以使用 --mode=enable-debug 选项为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试日志记录。此选项允许该脚本收集在启用调试模式之前系统生成的日志。该脚本会重启 Docker 进程守护程序和 Amazon ECS 代理,然后终止在此实例上运行的所有容器。运行以下命令之前,请考虑耗尽容器实例并将所有重要任务迁移到其他容器实例。有关详细信息,请参阅容器实例耗尽

要在运行该脚本时启用调试模式,请运行以下命令:

[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh --mode=enable-debug

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

1.    连接到您的容器实例

2.    要下载该脚本,请使用管理员权限打开 Windows PowerShell,然后运行以下命令:

Invoke-WebRequest -OutFile ecs-logs-collector.ps1 https://raw.githubusercontent.com/awslabs/aws-ecs-logs-collector-for-windows/master/ecs-logs-collector.ps1

3.    在同一个窗口中,运行以下脚本来收集日志并创建存档:

.\ecs-logs-collector.ps1

运行该脚本后,可以在该脚本创建的 collect 文件夹中检查收集的日志。在该文件夹中,您可以找到 collect.tgz 文件,它是所有日志的压缩存档。

在调试模式下运行适用于 Windows 的 Amazon ECS 日志收集器

如果日志未提供您需要的所有信息,则可以使用 -RunMode debug 选项为 Docker 进程守护程序和 Amazon ECS 容器代理启用调试日志。此选项允许该脚本收集在启用调试模式之前系统生成的日志。该脚本会重启 Docker 进程守护程序和 Amazon ECS 代理,然后终止在此实例上运行的所有容器。运行以下命令之前,请考虑耗尽容器实例并将所有重要任务迁移到其他容器实例。有关详细信息,请参阅容器实例耗尽

要在运行该脚本时启用调试模式,请使用管理员权限打开 Windows PowerShell,然后运行以下命令:

.\ecs-logs-collector.ps1 -RunMode debug
AWS 官方
AWS 官方已更新 2 年前