amazon-ecs - 如何从 ECS 集群中获取所有日志
问题描述
是否有一些 AWS 命令可以从 ECS 集群的所有服务/任务中获取日志?就像是:
aws ecs logs --cluster dev
或者
aws ecs describe-clusters --cluster dev logs
例如,必须有一些 API 来检索此处 UI 中显示的日志:
解决方案
不,没有这种开箱即用的选项可以从基于集群的所有服务中获取日志,因为每个容器都在它们自己的空间(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 日志记录驱动程序将日志路由到 syslog 服务器。syslog 协议使用原始字符串作为日志消息,并支持一组有限的元数据。系统日志消息必须以特定方式格式化才能有效。从有效消息中,接收者可以提取以下信息:
但最好的方法是针对每个容器使用一个日志组。因为syslog在 fargate 的情况下不起作用,所以最好使用每个容器的日志组。
推荐阅读
- c# - Microsoft Graph 个人帐户。如何获取用户照片?
- javascript - JS不识别函数
- ios - ionic build ios成功,但启动应用程序后打开nginx错误
- python - 在类中引用方法有什么好处?
- sql - 从表中计算多个列值
- javascript - 将文本元素定位在父 svg 的左侧
- batch-file - 显示文本文件中任何文件的当前位置路径(带斜杠)
- .htaccess - htaccess - 使用参数重定向网站
- mysql - 如何在插入 MySQL 数据库之前以编程方式检查重复行
- security - 需要帮助了解 ASP.NET Core 2 中的身份验证和身份概念