Kubernetes 主导着容器编排市场,推动企业向微服务演进。微服务的每个实例都会生成大量日志事件,这些事件很快就会变得难以管理。但更复杂的是,当问题发生时,服务和故障模式之间的复杂交互使得很难找到根本原因。潜在的问题使 Kubernetes 日志管理工具变得非常重要。
企业总是试图找到合适的工具来满足他们的需求,并使监控、日志记录和故障分析变得高效和快速。
Zebrium
您可能优先考虑 Prometheus 或 ELK,但 Zebrium 也可以优先考虑。
这家新创业公司被 Gartner 评为“2020 年值得关注的 25 家企业软件创业公司”。
说到最佳实践,Zebrium 最近还帮助 Sweetwater 将事件跟踪时间从 3 小时减少到几分钟。Zebrium 甚至可以发现以前未被发现的隐藏问题。这是一个很棒的功能,因为它可以帮助在问题影响客户之前识别问题。
那么是什么让 Zebrium 在竞争中脱颖而出呢?
Zebrium 使用人工智能来发现问题并自动发现根本原因,而所有其他工具都依赖于用户手动添加规则。Zebrium 还可以用作独立的日志管理平台或与 ELK Stack 或其他日志管理器集成。
优点:易于安装使用;只需复制/粘贴自定义 HELM 或 kubectl 命令;自动检测问题和根本原因,无需手动规则;可以用作独立的日志管理工具或作为现有日志管理工具(例如 ELK Stack)的机器学习插件。
缺点:免费计划每天限制为 500 MB,保留 3 天;支持 Kubernetes、Docker 和最常见的平台,但不支持 Windows。
Sematext
日志管理和应用程序性能监控解决方案。Smatex 提供系统状态的全栈可见性。
Sematext 不仅限于 Kubernetes 日志,还可以监控和 Kubernetes(基于指标和日志)。
收集的日志会根据几种已知的日志格式自动解析/结构化,用户还可以提供自定义日志模式。它还公开了 Elasticsearch API,因此任何与 Elasticsearch 一起使用的工具,例如 Filebeat 和 Logstash with Sematex,都可以用作 ELK 的变体或与原生 Sematext 生态系统一起使用。
此工具有助于创建特定规则来监视特定情况并捕获异常。借助 Sematex 全面的实时仪表板,客户可以控制和监控所有服务。
优点:与其他 Sematext 云工具集成;可配置的覆盖以防止日志被接受,从而控制成本;ELK的灵活性。
缺点:Sematext 小部件和 Kibana 不能在仪表板上混合使用;自定义解析需要在日志传送过程中进行,Sematext 只在服务端解析 Syslog 和 JSON;另外跟踪系统很弱,但正在计划改进。
Loki
Loki 是受 Prometheus 启发的多租户且高度可用的日志聚合工具。此工具有助于收集日志,但用户需要为其创建手动规则。Loki 与 Grafana、Prometheus 和 Kubernetes 合作。Loki 可以提高内部流程的效率。例如,它为 Paytm Insider 节省了 75% 的日志记录和监控成本。Loki 不会对您的日志内容进行索引,而只会为每个事件流建立一组标签,因此非常高效。
优点:庞大的生态系统;丰富的可视化;由于未索引的日志内容,效率得到提高。
缺点:未针对 Kubernetes 日志管理进行优化;大量使用架构规则的手工工作;缺乏内容索引可能会限制搜索性能。
ELK
ELK 是最著名的日志管理开源工具,是 Elasticsearch、Logstash 和 Kibana 的首字母缩写。每个组件处理日志记录过程的唯一部分;Elasticsearch 是一个强大且可扩展的搜索系统,Logstash 聚合和处理日志,Kibana 提供分析和可视化界面,帮助用户理解数据。它们共同为 Kubernetes 提供了全面的日志记录解决方案。但是,ELK Stack 还有很多其他的变种,比如由 Elasticsearch、Fluentd 和 Kibana 组成的 EFK Stack。
ELK 被 Adobe、T-Mobile 和 Walmart 等许多大公司使用,因此可以证明其可生产性。所以 ELK 是一个可靠且经过验证的工具。但他带来了工作所需的复杂性和大量资源。
优点:ELK 众所周知并且拥有庞大的社区;非常广泛的平台支持;Kibana 中丰富的分析和可视化功能;可以对日志和手动定义的警报规则进行复杂的分析。
缺点:难以维持规模;需要大量调优,尤其是大型环境;大量资源需求;某些功能需要付费许可。
Fluentd
Fluentd 是一个跨平台的开源数据收集器,它提供了一个统一的日志层,但它不是一个独立的日志管理器。作为一款颇受欢迎的工具,它拥有超过 5000 家客户,例如 Atlassian、Microsoft 和 Amazon。看到这些大客户证明了其可靠性和性能。此外,Fluentd 创建了一个统一的日志记录层,可以帮助更有效地使用数据并在软件中快速对其进行迭代。它每秒可以处理 120,000 条记录。
优点:大型社区和插件生态系统;统一日志层;久经考验的可靠性和性能。可在不到 10 分钟内安装完毕。
缺点:难以配置;对转换数据的支持有限;不是一个完整的日志记录解决方案。
结论
您可能会问为什么 Prometheus 没有包含在列表中,因为本文重点介绍日志收集工具,而 Prometheus 只处理指标不支持日志记录。
因此,如果您不擅长手动搜索日志,或者不愿意构建和管理警报规则,请尝试使用基于机器学习算法的 Zebrium。这可能会节省大量时间并摆脱创建大量规则的繁琐任务。
如果您正在寻找更主流的东西并知道要创建哪些规则,请尝试使用 Loki 或 Sematext,它们是非常高效工具。
如果您希望在公共云中使用日志监控,您可能希望使用您的云提供商提供的服务,例如 AWS 的 CloudWatch,他们只为自己云中的企业提供支持。
如果您的日志有多个或特定来源,请尝试使用 Fluentd 及其统一日志记录层,但您仍然需要一个日志记录工具。
- END -