logging - 哪种最佳集中式日志记录方法适合实施和维护以管理 AWS ECS 上的容器?
问题描述
我们正在使用 ECS 迁移到 AWS 上的容器。所以,我正在寻找一些关于集中式日志记录的建议。有人可以建议我在 ECS 上进行应用程序和容器日志记录的最佳和有效方式吗?
其中一些喜欢:1. ELK Stack 2. awslog 驱动程序 3. Cloudwatch 等。
解决方案
很难确定哪种解决方案是最好的,但您可以选择适合您当前情况的解决方案(包括团队规模、技能组合、日志量、预算等)。
- CloudWatch 日志。这是最简单的一种。您可以使用
awsdriver
将日志传送到 CloudWatch 日志。- 优点:
- 您不需要维护日志服务。您的团队可以致力于您的业务发展
- 日志服务可以开箱即用
- 现收现付
- 与 S3(用于归档)、分析解决方案(使用 Glue/Athena 偶尔搜索归档日志)的良好集成
- 缺点:
- CloudWatch Logs 的 UI/UX 还不错
- 没有强大的仪表板(相比
Kibana
) - 日志洞察适用于大多数情况
- 如果日志量很大,CloudWatch 日志的数据摄取费用会很昂贵
- 结论:对于初创团队来说,CloudWatch Logs 是一种特别非常好的解决方案,可以在不维护基础设施的情况下快速启用日志/警报
- 优点:
- EFK 堆栈(Fluentd/Fluent bit/Elastic search/Kibana)。您可以使用记录器驱动程序firelens将您的日志传送到 ES,然后使用 Kibana 作为仪表板。
- 优点:
- 借助功能强大的仪表板利用复杂的 EFK 解决方案
- 容器和ES设置在同一个AZ,免收数据费
- 缺点:
- 你的团队应该有 ES/Kibana 技能方面的专家
- 您必须维护 ES/Kibana 的基础设施,以便在必要时横向扩展/缩减
- 优点:
- 其他 PaaS 服务,例如
Splunk
此外,您对日志有实时分析要求,您还可以使用firelens将日志传送到流(例如Kinesis
, MKS
)以进行实时处理。
总之,您必须权衡以根据您的上下文优先级选择最合适的解决方案。
推荐阅读
- python - python上有没有用k最近邻法去除异常的方法?
- java - 没有内部类的 Java Timer 功能
- docker - 在 Vuex 中使用命名卷
- jupyter-notebook - 虚拟环境中的 Jupyter
- c# - 通过 REST API 返回 HttpClient 的响应
- python - 有没有办法在终端上对多个打印进行单元测试?
- java - 有没有办法在 Springboot 中进行提前编译?
- javascript - 来自谷歌图书 API 的数据在第二次点击事件后显示
- reactjs - 如何在特定页面上不呈现切换按钮?
- tensorflow - 如何在tensorflow中解决“分配具有形状[XXX]的张量时的OOM”(训练GCN时)