前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2020年Kubernetes中7个最佳日志管理工具

2020年Kubernetes中7个最佳日志管理工具

作者头像
公众号: 云原生生态圈
发布2020-11-10 11:36:42
4.3K1
发布2020-11-10 11:36:42
举报
文章被收录于专栏:云原生生态圈云原生生态圈

Kubernetes在容器编排市场中占主导地位,通常用于托管微服务。但是,微服务的每个实例都会生成大量日志事件,这些日志事件很快就会变得难以管理。更糟糕的是,当出现问题时,由于服务间的复杂交互以及不可预知的故障模式,很难找到根本原因。

目前,我们有这么多日志工具?是否有一个完美的工具可以满足所有需求,并使监视,日志记录和故障原因分析尽可能地高效和快速?

大多数Kubernetes日志管理工具都是ELK的变体,具有相似的功能并且具有同样的局限性。这些工具可帮助你访问日志和搜索信息。但要,这些工具大多数还需要解析日志规则和警报规则才能正常工作。

接下来,我开始为你介绍2020年Kubernetes最佳日志管理工具

1. Zebrium

我将Zebrium[1]放在首位,因为我发现该工具有潜力成为Kubernetes日志管理中的下一个重要工具。

这家新成立的初创公司,最近入选“ Gartner 2020年值得关注的25家初创企业[2]”和“福布斯AI 50:美国最有前途的人工智能公司[3]”。

Zebrium最近还帮助Sweetwater将事件跟踪时间从3小时减少到只有几分钟[4]。Zebrium甚至可以发现以前未发现的软件问题。这是一项出色的功能,因为它可以帮助你在问题出现之前就发现问题。

那么,什么使Zebrium在竞争中脱颖而出?Zebrium使用人工智能(AI)来发现问题以及自动发现,而所有其他工具都依赖于用户手动添加规则。Zebrium也可以用作独立的日志管理平台,也可以与ELK Stack或其他日志管理器集成。

这听起来像梦想成真,所以我在一个非常简单的项目上进行了测试。在此测试中,Zebrium能够自动检测到网络超时的问题。我没有为此建立任何规则,也没有手动监视系统。Zebrium通过其基于ML的算法解决了这个问题,并立即通知我。

优点:

  1. 易于启动,只需要简单的helm或kubectl命令。
  2. 自动检测问题和软件故障,无需手动配置规则。
  3. 可以用作独立的日志管理工具,也可以用作现有日志管理工具(例如ELK Stack)的ML附件。

缺点:

  1. 免费计划:日志限制为每天500MB,只保留3天的记录。
  2. 支持Kubernetes,Docker和大多数常见平台,但尚不支持Windows。

官网链接:https://www.zebrium.com/

2. Sematext

Sematext

Sematext[5]是用于日志管理和应用程序性能监视的解决方案。Sematex提供了系统状态的可见性。

Sematext不仅限于K8s日志记录,还可以提供监控和警报功能。收集到的日志,会自动根据不同的已知日志格式进行解析/结构化,并且用户还可以提供自定义的日志模式。

Sematext还公开了Elasticsearch API,因此你也可以使用任何与Elasticsearch配合使用的工具,例如Filebeat和Logstash与Sematex。

Sematext可以创建特定规则,以监视特定情况并捕获异常。借助Sematext全面的实时仪表板[6],用户可以控制和监视所有服务。

优点:

  1. 与其他Sematext Cloud工具(如监控)集成。
  2. 配置方便灵活。
  3. ELK的灵活性。

缺点:

  1. Sematex和Kibana不能在一个仪表板上混合使用。
  2. 自定义解析需要在日志传送器(log shipper)中完成,Sematext仅在服务器端解析Syslog和JSON。
  3. 跟踪功能较弱,尽管他们计划进行改进。

官网链接:https://sematext.com/

3. Grafana的Loki

K8s日志监视工具列表中的第三位不是ELK,而是Loki[7]

Loki是一个受Prometheus启发的,支持多租户高度可用日志聚合工具。该工具有助于收集日志,但是用户需要为其手动建立规则。

Loki与Grafana,Prometheus和Kubernetes合作。Loki可以使你的内部流程更有效率。例如,它节省了Paytm Insider 75%的日志记录和监视成本。

Loki不会索引你的日志内容,而是仅索引每个事件流的一组标签,因此效率很高。

优点:

  1. 大型的生态系统。
  2. 丰富的可视化功能。
  3. 由于未索引日志内容而提高了效率

缺点:

  1. 未对Kubernetes日志管理进行优化。
  2. 大量的手工操作。
  3. 缺少内容索引可能会限制搜索性能。

官网链接:https://grafana.com/oss/loki/

4. ELK Stack ( Elastic Stack)

Daniel Berg – Centralize EPiServer logs with the ELK stack

ELK[8]名列第四。一般而言,ELK可能是最著名的日志管理开源工具。ELK是Elasticsearch,Logstash和Kibana的首字母缩写。每个组件负责日志记录过程的不同部分。

Elasticsearch是一个功能强大且可扩展的搜索系统,Logstash聚合并处理日志,而Kibana提供了一个数据分析和可视化的界面,可帮助用户理解数据。它们共同为K8s提供了全面的日志记录解决方案。

请注意,ELK堆栈还有许多其他变体(例如EFK Stack -Elasticsearch,Fluentd和Kibana)。

ELK被Adobe,T-Mobile和Walmart等许多大公司使用,因此你可以相信它的健壮性。通常,这是一个可靠且经过验证的工具。

但是,由于它的复杂性和所需的大量资源,我将其放在第四位。

优点:

  1. 该工具是众所周知的,并且拥有庞大的社区。
  2. 非常广泛的平台支持。
  3. Kibana中丰富的分析和可视化功能。
  4. 需要手动定义的警报规则,日志分析复杂。

缺点:

  1. 维护困难
  2. 在大型环境中,需要调整很多属性
  3. 大量的资源需求
  4. 某些功能需要付费

官网链接:https://www.elastic.co/cn/what-is/elk-stack

5.Google Operations (Stackdriver)

Google Operations[9](也称为Stackdriver)是在Google环境中用于监视,故障排除和提高应用程序性能的工具。

它收集整个Google Cloud和你的应用程序的指标,日志信息和软件跟踪信息。Google Operations与AWS上的CloudWatch等效,并且与CloudWatch一样,它是一个具有日志记录和监视的解决方案。

Cloud Logging与GKE紧密集成,默认情况下会添加到你创建的每个GKE群集中。你的日志存储在Logging的数据存储中,并为搜索和可视化编制索引。

Cloud Logging支持灵活的查询,并且可以与Google基础架构中的其他工具无缝集成。

优点:

  1. 实时的日志管理和分析。
  2. 内置大规模的度量指标。
  3. 可以集成Google基础架构中的其他工具。

缺点:

  1. 由于请求会通过Google Cloud Platform(GCP)的各个级别,因此很难跟踪实际的延迟。
  2. 仅适用于GCP环境。
  3. 复杂的定价系统。很难预先估计要花多少钱。

官网链接:https://cloud.google.com/products/operations

6. CloudWatch

CloudWatch[10]是Amazon Web Services的产品。

它从AWS中收集数据,并在单个自动化仪表板中将其可视化。这使你可以查看日志和指标并将它们相互关联,以了解问题的根本原因。

用户可以使用CloudWatch自己专用的查询语言来分析日志,该语言支持聚合,过滤器和正则表达式。你还可以通过Lambda将日志发送到Elasticsearch。

总体而言,如果你已经在使用Amazon服务,则CloudWatch是一个不错的选择。它也可以用于混合云体系结构,并使用代理或API来监视软件资源。AirWatch,Deliveroo,9GAG等许多知名品牌都在使用CloudWatch。

优点:

  1. 专为监视AWS资源而设计。
  2. 具有指标爆发性属性
  3. 详细的监视和自动缩放组。

缺点:

  1. 它只能用于AWS服务。
  2. 仪表板的定制选项不多。
  3. 不支持事务跟踪。

官网链接:https://aws.amazon.com/cloudwatch/

7.Fluentd

img

Fluentd[11]是跨平台的开源数据收集器,提供了统一的日志记录层(但它不是独立的日志管理器)。

Fluentd是一个颇受欢迎的工具,拥有Atlassian,Microsoft和Amazon等?5,000多个用户。Fluentd有很高的可靠性和性能。

此外,Fluentd还创建了一个统一的日志记录层,可帮助你更有效地使用数据。该工具可以像LINE一样帮助你 每秒处理120,000条记录。

优点:

  1. 大型的社区和插件生态系统。
  2. 统一日志记录层。
  3. 经过验证的可靠性和性能。
  4. 安装简单

缺点:

  1. 配置复杂
  2. 对数据转换的支持有限。
  3. 不是完整的日志记录解决方案

官网链接:https://www.fluentd.org/

结论:如何选择合适的日志管理工具?

首先,我应该解释一下为什么我没有将Prometheus 列入名单,原因是本文专注于日志管理工具,而Prometheus是处理指标Metrics而不支持日志。

因此,如果你讨厌手动搜索日志,或者讨厌构建和管理警报规则,则应尝试使用基于AI和ML的算法的Zebrium。这可能会节省大量时间,并使你摆脱创建大量规则的繁琐任务。

但是,如果你正在寻找更主流的东西,并且知道要创建哪个警报规则(或者你不信任AI),请尝试使用Loki或Sematext,如果你以前没有使用过日志监视工具,它们将是非常适合你的高效工具。如果你已经在使用Grafana或Sematext Cloud / Enterprise的产品,它们将特别有用。

如果你在项目中使用Google的GCP产品,则Google Operations的可能是一个很好的选择。

如果你的日志有多个或特殊的来源,请尝试使用Fluentd及其统一的日志记录层。

当然,如果你是AWS用户,则CloudWatch将是你的自然选择。

转载修订:《云原生生态圈》 译文链接:https://dzone.com/articles/7-best-log-management-tools-for-kubernetes-2020 翻译来自:https://www.kubernetes.org.cn/8595.html

你可能还喜欢 点击下方图片即可阅读

参考资料

[1]

Zebrium: https://www.zebrium.com/

[2]

Gartner 2020年值得关注的25家初创企业: https://www.forbes.com/sites/louiscolumbus/2020/07/05/gartners-top-25-enterprise-software-startups-to-watch-in-2020/#2248a8247822

[3]

福布斯AI 50:美国最有前途的人工智能公司: https://www.forbes.com/sites/alanohnsman/2020/07/03/ai-50-americas-most-promising-artificial-intelligence-companies/#44c9c9cb5c99

[4]

Sweetwater customer case: https://www.zebrium.com/company/customers/sweetwater-case-study

[5]

Sematext: https://sematext.com/

[6]

Sematext: https://sematext.com/resources/case-studies/case-study-uala/

[7]

Grafana Loki: https://grafana.com/oss/loki/

[8]

ELK stack: https://www.elastic.co/what-is/elk-stack

[9]

Stackdriver: https://cloud.google.com/products/operations

[10]

CloudWatch: https://aws.amazon.com/cloudwatch/

[11]

Fluentd: https://www.fluentd.org/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Zebrium
    • 优点:
      • 缺点:
      • 2. Sematext
        • 优点:
          • 缺点:
          • 3. Grafana的Loki
            • 优点:
              • 缺点:
              • 4. ELK Stack ( Elastic Stack)
                • 优点:
                  • 缺点:
                  • 5.Google Operations (Stackdriver)
                    • 优点:
                      • 缺点:
                      • 6. CloudWatch
                        • 优点:
                          • 缺点:
                          • 7.Fluentd
                            • 优点:
                              • 缺点:
                              • 结论:如何选择合适的日志管理工具?
                              相关产品与服务
                              容器服务
                              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档