当前位置: 首页 > 科技观察

2020年极力推荐的7款Kubernetes日志管理工具

时间:2023-03-12 20:40:42 科技观察

你可能会疑惑,为什么要用Kubernetes日志管理工具呢?Kubernetes是容器编排市场的主导者,通常用于托管微服务。微服务的每个实例都会生成大量日志事件,这些事件很快就会变得难以管理。但是,更糟糕的是,当出现问题时,由于服务之间复杂的交互以及几乎无穷无尽的可能故障模式,很难找到问题的根源。这个潜在的问题推动了Kubernetes日志管理工具的流行。但是为什么我们有这么多工具呢?是否有一款完美的工具可以满足所有需求,并尽可能高效快速地进行监控、日志记录和根本原因分析?正如您可能已经猜到的那样,答案是否定的。大多数Kubernetes日志管理工具都是ELK的变体,具有相似的功能和相似的局限性。这些工具可以帮助您访问日志和搜索信息,但要注意的是,您需要知道要查找的内容。这些工具中的大多数还需要解析规则和警报规则才能正常工作。但是我遇到了一个异常,它会自动检测问题而无需手动创建规则。下面是我列出的2020年Kubernetes最好的日志管理工具。1.Zebrium你认为其他工具会排在第一位吗?还是普罗米修斯或麋鹿?不,我把Zebrium放在第一位是因为我看到它有可能成为Kubernetes日志管理中的下一件大事。这家刚刚起步的初创公司最近被评为Gartner2020年最值得关注的25家企业软件初创公司,以及福布斯AI50强:美国最有前途的AI公司。说到成功,Zebrium最近还帮助Sweetwater将事件跟踪时间从3小时缩短到几分钟。Zebrium甚至可以发现以前未注意到的隐藏问题。此功能很棒,因为它可以在问题影响客户之前发现问题。那么是什么让Zebrium的方法在竞争中脱颖而出呢?好吧,他们使用人工智能来发现问题并自动找出根本原因,而所有其他工具都依赖用户手动添加规则。Zebrium也可以用作独立的日志管理平台或与ELKStack(他们称之为ZELKstack)或其他日志管理器集成。这听起来像是梦想成真,所以我在一个非常简单的项目上对其进行了测试。在此测试中,Zebrium自动检测网络调用超时。而且我没有为此创建任何规则,也没有手动监控系统。Zebrium刚刚通过其基于机器学习的算法发现了这个问题并立即通知了我。还值得指出的是,我不是专业的DevOps工程师,也没有在更大的项目上测试过Zebrium。容易上手;只需复制/粘贴自定义helm或kubectl命令。自动检测问题及其根本原因,无需手动添加规则。可以用作独立的日志管理工具,也可以用作现有日志管理工具(如ELK堆栈)的机器学习插件。缺点并不像其竞争对手那样广为人知。免费层限制为每天500MB,有效期为3天。支持Kubernetes、Docker和大多数常见平台,但对Windows的原生支持尚不可用。官网:https://www.zebrium.com/2。Sematext这是一个用于日志管理和应用程序性能监控的解决方案。Sematext提供系统状态的全栈可见性。Sematext不仅限于Kubernetes日志,它还基于指标和日志对Kubernetes进行监控和警报。收集的日志会自动解析/构造为几种不同的已知日志格式,用户还可以为自定义日志提供模式。它还公开了ElasticesarchAPI,因此您可以使用任何支持Elasticsearch的工具,例如FileBeat和带有Sematext的Logstash。您可以将它用作ELK的变体或与本机Sematext生态系统一起使用。此工具有助于创建特定规则以监控特定案例并捕获异常情况。得益于Sematext全面的实时仪表板,客户可以控制和监控所有服务。优势与其他Sematext云工具集成,例如体验和基础设施监控。可配置的超时通过组织被摄取的日志来控制成本。ELK的灵活性。缺点Sematext小部件和Kibana不能在一个仪表板上混合使用。需要在日志投递程序中自定义解析,Sematext只在服务端解析Syslog和JSON。跟踪很弱,尽管他们计划改进它。官网:https://sematext.com/3。GrafanaLokiKubernetes日志监控工具榜单第三名不是ELK,而是Loki。受Prometheus的启发,Loki是一个多租户、高可用的日志聚合工具。该工具可以帮助收集日志,但用户需要为其建立手动规则。Loki与Grafana、Prometheus和Kubernetes一起工作。Loki可以让您的内部流程更有效率。例如,它为PaytmInsider节省了75%的日志记录和监控成本。Loki之所以能做到高效,是因为日志内容没有索引,只是为每个事件流设置了一组标签。优点大型生态系统。丰富的格式化功能。由于日志内容没有索引,所以效率很高。缺点没有针对Kubernetes日志管理进行优化。建立规则需要大量的手工工作。缺少内容索引会限制搜索性能。官网:https://grafana.com/oss/loki/4。ElasticStackELK最终排名第四。总的来说,ELK可能是最著名的开源日志管理工具。ELK是Elasticsearch、Logstash和Kibana的首字母缩写。每个组件负责日志记录过程的不同部分。Elasticsearch是一个强大且可扩展的搜索系统,Logstash聚合和处理日志,Kibana提供分析和可视化界面帮助用户理解数据。它们共同为Kubernetes提供了全面的日志记录解决方案。请注意,ELK堆栈还有许多其他变体(如EFK堆栈:Elasticsearch、Flunentd和Kibana)。许多大公司都在使用ELK,例如Adob??e、T-Mobile和沃尔玛等,因此您可以确信它的稳健性。总的来说,这是一个可靠且经过充分验证的工具。我把它排在第四位是因为它的复杂性和工作所需的大量资源。优点该工具众所周知,并且拥有庞大的社区。非常广泛的平台支持。Kibana中丰富的分析和可视化功能。需要复杂的日志分析和警报规则的手动定义。缺点难以保持规模。需要进行大量调整,尤其是对于大型环境。需要大量资源请求。某些功能需要付费许可证。官网:https://www.elastic.co/what-is/elk-stack5。GoogleOperations(以前称为Stackdriver)GoogleOperations,您可能知道的StackDriver,是用于监控、故障排除和提高应用程序性能的原生工具。它在GoogleCloud和您的应用程序上收集指标、日志和跟踪。GoogleOperations相当于CloudWatch的AWS,并且与CloudWatch一样,它具有日志记录和监控解决方案。CloudLogging与GKE深度集成,默认情况下将添加到您创建的每个GKE集群中。您的日志存储在Logging的数据存储中,并为搜索和可视化编制索引。CloudLogging支持灵活的查询(可以保存)、轻松的现场探索和直方图可视化,以及与谷歌基础设施的其他工具无缝集成。优点实时日志管理和分析。指标本质上是可观察的。很多集成。缺点由于请求通过不同级别的谷歌云平台(GCP),因此很难跟踪真正的延迟。仅适用于GCP环境。价格体系很复杂,很难估计某样东西的成本。官网:https://cloud.google.com/products/operations6。CloudWatchCloudWatch是AmazonWebService提供的AWS原生产品。它从AWS收集监控和运营数据,并在自动化仪表板上将其可视化。这使您能够查看和关联日志和指标,以了解问题的根本原因。可以使用CloudWatch自己专门构建的支持聚合、过滤器和正则表达式的查询语言来分析日志。您还可以通过Lambda将日志发送到Elasticsearch。总的来说,如果您已经在使用亚马逊服务,CloudWatch是一个不错的选择。它还可以用于混合云架构,并使用代理或API来监控内部资源。许多知名公司,如Airbnb、Deliveroo、9GAG等,都在使用CloudWatch。由于DynamoDBTTL,它每年还为公司节省了数百万美元。优势专为监控AWS资源而构建。具有允许的最高实例指标(t2CPU积分余额)。详细的监控和自动缩放组。缺点是它只能与AWS服务一起使用。仪表板的自定义选项不多。不支持事务跟踪。官网:https://aws.amazon.com/cloudwatch/7。FluentdFluentd是一个跨平台的开源数据收集器,提供了一个统一的日志层(但它不是一个独立的日志管理器)。这是一个非常受欢迎的工具,拥有超过5000名用户,包括Atlassian、Microso和亚马逊。从客户端,我们可以获得高水平的可靠性和性能。此外,Fluentd还创建了一个统一的日志记录层,以帮助您更高效地使用数据并快速迭代软件中的数据。这个工具可以帮助你每秒处理120,000条记录,就像LINE一样。优点大型社区和插件生态系统。统一日志层。经过验证的可靠性和性能。上手简单,十分钟即可安装。缺点是配置困难。对转换数据的支持有限。不是一个完整的日志记录解决方案。官网:https://www.fluentd.org/8。结论:如何选择一个合格的工具首先,我应该解释一下为什么我没有把Prometheus包括在列表中,因为我相信你会看到它。这是因为本文主要讨论日志监控工具,而Prometheus处理的是指标,不支持日志管理。因此,如果您厌倦了手动挖掘日志以查找问题的根源,或者构建和管理警报规则,那么您应该尝试Zebrium及其基于人工智能和机器学习的算法。这可能会为您从制定大量规则的艰巨任务中节省大量时间。这看起来是一种非常有趣的日志记录方法。但是,如果您正在寻找更主流的东西并且知道要创建哪些警报规则,或者您不信任人工智能,请尝试Loki或Sematext,如果您之前没有使用过日志监控工具,这两者都很棒。有效的工具。如果您已经在使用Grafana或SematextCloud/Enterprise产品,它们将特别有用。如果您的项目使用Google的GCP产品,那么一个很好且相当明显的变体可能是GoogleOperations。如果你有多个或外部日志源,你可以试试Fluentd的统一日志层,但你仍然需要日志工具。当然,如果您是AWS用户,CloudWatch将是您的自然选择。