是否有一些AWS命令可以从ECS集群中获取所有服务/任务的日志?像这样:
aws ecs logs --cluster dev
或
aws ecs describe-clusters --cluster dev logs
例如,必须有一些API才能检索此处UI中显示的日志:
答案 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消息必须使用特定格式 有效的方式。接收者可以从有效消息中提取 以下信息:
但是最好的方法是针对每个容器有一个日志组。由于 syslog 在发生Fargate的情况下不起作用,因此最好对每个容器使用日志组。