共计 3660 个字符,预计需要花费 10 分钟才能阅读完成。
本篇内容主要讲解“Kubernetes 中日志管理工具有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Kubernetes 中日志管理工具有哪些”吧!
Kubernetes 在容器编排市场中占主导地位,通常用于托管微服务。但是,微服务的每个实例都会生成大量日志事件,这些日志事件很快就会变得难以管理。更糟糕的是,当出现问题时,由于服务间的复杂交互以及不可预知的故障模式,很难找到根本原因。
目前,我们有这么多日志工具?是否有一个完美的工具可以满足所有需求,并使监视,日志记录和故障原因分析尽可能地高效和快速?
大多数 Kubernetes 日志管理工具都是 ELK 的变体,具有相似的功能并且具有同样的局限性。这些工具可帮助你访问日志和搜索信息。但要,这些工具大多数还需要解析日志规则和警报规则才能正常工作。
1. Zebrium
我将 Zebrium 放在首位,因为我发现该工具有潜力成为 Kubernetes 日志管理中的下一个重要工具。
这家新成立的初创公司,最近入选“Gartner 2020 年值得关注的 25 家初创企业”和“福布斯 AI 50:美国最有前途的人工智能公司”。
Zebrium 最近还帮助 Sweetwater 将事件跟踪时间从 3 小时减少到只有几分钟。Zebrium 甚至可以发现以前未发现的软件问题。这是一项出色的功能,因为它可以帮助你在问题出现之前就发现问题。
那么,什么使 Zebrium 在竞争中脱颖而出?Zebrium 使用人工智能(AI)来发现问题以及自动发现,而所有其他工具都依赖于用户手动添加规则。Zebrium 也可以用作独立的日志管理平台,也可以与 ELK Stack 或其他日志管理器集成。
这听起来像梦想成真,所以我在一个非常简单的项目上进行了测试。在此测试中,Zebrium 能够自动检测到网络超时的问题。我没有为此建立任何规则,也没有手动监视系统。Zebrium 通过其基于 ML 的算法解决了这个问题,并立即通知我。
优点:
易于启动,只需要简单的 helm 或 kubectl 命令。
自动检测问题和软件故障,无需手动配置规则。
可以用作独立的日志管理工具,也可以用作现有日志管理工具(例如 ELK Stack)的 ML 附件。
缺点:
免费计划:日志限制为每天 500MB,只保留 3 天的记录。
支持 Kubernetes,Docker 和大多数常见平台,但尚不支持 Windows。
官网链接:https://www.zebrium.com/
2. Sematext
Sematext 是用于日志管理和应用程序性能监视的解决方案。Sematex 提供了系统状态的可见性。
Sematext 不仅限于 K8s 日志记录,还可以提供监视和警报功能。收集到的日志,会自动根据不同的已知日志格式进行解析 / 结构化,并且用户还可以提供自定义的日志模式。
Sematext 还公开了 Elasticsearch API,因此你也可以使用任何与 Elasticsearch 配合使用的工具,例如 Filebeat 和 Logstash 与 Sematex。
Sematext 可以创建特定规则,以监视特定情况并捕获异常。借助 Sematex 全面的实时仪表板,用户可以控制和监视所有服务。
优点:
与其他 Sematext Cloud 工具(如监视)集成。
配置方便灵活。
ELK 的灵活性。
缺点:
Sematex 和 Kibana 不能在一个仪表板上混合使用。
自定义解析需要在日志传送器中完成,Sematext 仅在服务器端解析 Syslog 和 JSON。
跟踪功能较弱,尽管他们计划进行改进。
官网链接:https://sematext.com/
3.Grafana 的 Loki
K8s 日志监视工具列表中的第三位不是 ELK,而是 Loki。
Loki 是一个受 Prometheus 启发的,支持多租户和高度可用的日志聚合工具。该工具有助于收集日志,但是用户需要为其手动建立规则。
Loki 与 Grafana,Prometheus 和 Kubernetes 合作。Loki 可以使你的内部流程更有效率。例如,它节省了 Paytm Insider 75%的日志记录和监视成本。
Loki 不会索引你的日志内容,而是仅索引每个事件流的一组标签,因此效率很高。
优点:
大型的生态系统。
丰富的可视化功能。
由于未索引日志内容而提高了效率
缺点:
未对 Kubernetes 日志管理进行优化。
大量的手工操作。
缺少内容索引可能会限制搜索性能。
官网链接:https://grafana.com/oss/loki/
4. ELK Stack (Elastic Stack)
ELK 名列第四。一般而言,ELK 可能是最著名的日志管理开源工具。ELK 是 Elasticsearch,Logstash 和 Kibana 的首字母缩写。每个组件负责日志记录过程的不同部分。
Elasticsearch 是一个功能强大且可扩展的搜索系统,Logstash 聚合并处理日志,而 Kibana 提供了一个数据分析和可视化的界面,可帮助用户理解数据。它们共同为 K8s 提供了全面的日志记录解决方案。
请注意,ELK 堆栈还有许多其他变体(例如 EFK Stack -Elasticsearch,Fluentd 和 Kibana)。
ELK 被 Adobe,T-Mobile 和 Walmart 等许多大公司使用,因此你可以相信它的健壮性。通常,这是一个可靠且经过验证的工具。
但是,由于它的复杂性和所需的大量资源,我将其放在第四位。
优点:
该工具是众所周知的,并且拥有庞大的社区。
非常广泛的平台支持。
Kibana 中丰富的分析和可视化功能。
需要手动定义的警报规则,日志分析复杂。
缺点:
维护困难
在大型环境中,需要调整很多属性
大量的资源需求
某些功能需要付费
官网链接:https://www.elastic.co/cn/what-is/elk-stack
5.Google Operations (Stackdriver)
Google Operations(也称为 Stackdriver)是在 Google 环境中用于监视,故障排除和提高应用程序性能的工具。
它收集整个 Google Cloud 和你的应用程序的指标,日志信息和软件跟踪信息。Google Operations 与 AWS 上的 CloudWatch 等效,并且与 CloudWatch 一样,它是一个具有日志记录和监视的解决方案。
Cloud Logging 与 GKE 紧密集成,默认情况下会添加到你创建的每个 GKE 群集中。你的日志存储在 Logging 的数据存储中,并为搜索和可视化编制索引。
Cloud Logging 支持灵活的查询,并且可以与 Google 基础架构中的其他工具无缝集成。
优点:
实时的日志管理和分析。
内置大规模的度量指标。
可以集成 Google 基础架构中的其他工具。
缺点:
由于请求会通过 Google Cloud Platform(GCP)的各个级别,因此很难跟踪实际的延迟。
仅适用于 GCP 环境。
复杂的定价系统。很难预先估计要花多少钱。
官网链接:https://cloud.google.com/products/operations
6. CloudWatch
CloudWatch 是 Amazon Web Services 的产品。
它从 AWS 中收集数据,并在单个自动化仪表板中将其可视化。这使你可以查看日志和指标并将它们相互关联,以了解问题的根本原因。
用户可以使用 CloudWatch 自己专用的查询语言来分析日志,该语言支持聚合,过滤器和正则表达式。你还可以通过 Lambda 将日志发送到 Elasticsearch。
总体而言,如果你已经在使用 Amazon 服务,则 CloudWatch 是一个不错的选择。它也可以用于混合云体系结构,并使用代理或 API 来监视软件资源。AirWatch,Deliveroo,9GAG 等许多知名品牌都在使用 CloudWatch。
优点:
专为监视 AWS 资源而设计。
具有指标爆发性属性
详细的监视和自动缩放组。
缺点:
它只能用于 AWS 服务。
仪表板的定制选项不多。
不支持事务跟踪。
官网链接:https://aws.amazon.com/cloudwatch/
7.Fluentd
Fluentd 是跨平台的开源数据收集器,提供了统一的日志记录层(但它不是独立的日志管理器)。
Fluentd 是一个颇受欢迎的工具,拥有 Atlassian,Microsoft 和 Amazon 等 5,000 多个用户。Fluentd 有很高的可靠性和性能。
此外,Fluentd 还创建了一个统一的日志记录层,可帮助你更有效地使用数据。该工具可以像 LINE 一样帮助你 每秒处理 120,000 条记录。
优点:
大型的社区和插件生态系统。
统一日志记录层。
经过验证的可靠性和性能。
安装简单
缺点:
配置复杂
对数据转换的支持有限。
不是完整的日志记录解决方案
官网链接:https://www.fluentd.org/
到此,相信大家对“Kubernetes 中日志管理工具有哪些”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!