如何获取ECS集群的所有日志

5 amazon-ecs

是否有一些 AWS 命令​​ get 可以从 ECS 集群的所有服务/任务中获取日志?就像是:

aws ecs logs --cluster dev
Run Code Online (Sandbox Code Playgroud)

或者

aws ecs describe-clusters --cluster dev logs
Run Code Online (Sandbox Code Playgroud)

例如,必须有一些 API 来检索 UI 中显示的日志:

enter image description here

Adi*_*iii 4

不存在这样的开箱即用的选项,可以从基于集群的所有服务中获取日志,就像每个容器在自己的空间(EC2 实例)中运行一样。

因此,您可以尝试类似的选项,但在此之前,您需要了解AWS ECS的日志记录机制。

日志驱动程序

用于容器的日志驱动程序。为此参数列出的有效值是 Amazon ECS 容器代理默认情况下可以与之通信的日志驱动程序。

对于使用 Fargate 启动类型的任务,支持的日志驱动程序是awslogs, splunk, and awsfirelens.

对于使用 EC2 启动类型的任务,支持的日志驱动程序为awslogs, fluentd, gelf, json-file, journald, logentries, syslog, splunk, and awsfirelens.

因此,如果您在同一个 ec2 实例上运行多个容器,那么 syslog 对您来说很有意义。

系统日志记录驱动程序

系统日志记录驱动程序将日志路由到系统日志服务器。syslog 协议使用原始字符串作为日志消息并支持有限的元数据集。系统日志消息必须采用特定方式格式化才能有效。从有效消息中,接收者可以提取以下信息: 在此输入图像描述

但最好的方法是针对每个容器使用一个日志组。由于syslog在 Fargate 的情况下不起作用,因此最好为每个容器使用日志组。

在此输入图像描述