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

时间:2019-09-18 22:17:39

标签: amazon-ecs

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

aws ecs logs --cluster dev

aws ecs describe-clusters --cluster dev logs

例如,必须有一些API才能检索此处UI中显示的日志:

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

logDriver

  

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

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

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

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

系统日志记录驱动程序

  

syslog日志记录驱动程序将日志路由到syslog服务器。系统日志   协议使用原始字符串作为日志消息并支持有限   元数据集。 syslog消息必须使用特定格式   有效的方式。接收者可以从有效消息中提取   以下信息:   enter image description here

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

enter image description here