这是我们列出的满足您需求的前 5 名开源日志托运商。

其中许多可以以不同的方式被视为“Logstash 替代品”。对于那些还不了解的人,Logstash 在 DevOps 中非常流行,因为它可以从不同来源摄取数据、动态数据转换等等。

但是,它可能不是每个人的正确选择。如果您正在寻找开源替代方案并选择最适合您的方案 - 本指南可为您提供帮助。

这是快速列表:

1.Logstash

  1. 向量

  2. 文件节拍

4.流利D

  1. Promtail

对于每个 log shipper,我们还采用了一些核心标准,例如插件数量和配置难度,您可以在本文末尾找到完整的比较表。

Logstash

Logstash 的问题

让我们从日志收集器之王开始。如果您了解Logstash,请随意向下滚动以获取其他选项。

众所周知,Logstash 是著名的 ELK 堆栈的一部分,并在其中充当主力。它用于收集、解析和发送您的日志。然而,由于它的高工作量,与其他更轻量级的选项相比,它在性能测试中的数据较低(见下面的参考文献 1)。

正如 Logz.io](https://logz.io/learn/complete-guide-elk-stack/#logstash)博客文章中提到的[,性能低下的原因之一是 Logstash 需要 JVM 运行,这种依赖性会导致大量内存消耗。当您有许多数据管道和高级过滤时尤其如此。这就是创建 Filebeat 的原因之一,稍后我们将对此进行更多讨论,但请随时深入了解Logz.io的博客文章,其中详细比较了 Filebeat 和 Logstash。

至于 Logstash 与其他的性能比较,Vector 有一个有见地的基准TCP To Blackhole Performance Test(ref.1),它比较了 Vector、Logstash、FluentD 和 FluentBit。

$ bin/compare -t tcp_to_blackhole_performance

| Metric          | fluentbit | fluentd   | logstash  | vector    |
|:----------------|:----------|:----------|:----------|:----------|
| IO Thrpt (avg)  | 64.4MiB/s | 27.7MiB/s | 40.6MiB/s | 86MiB/s W |
| CPU sys (max)   | 4         | 3.5 W     | 6.1       | 6.5       |
| CPU usr (max)   | 53.2      | 50.8 W    | 91.5      | 96.5      |
| Load 1m (avg)   | 0.5 W     | 0.8       | 1.8       | 1.7       |
| Mem used (max)  | 614.8MiB  | 294MiB    | 742.5MiB  | 181MiB W  |
| Disk read (sum) | 9MiB      | 2.6MiB W  | 2.6MiB    | 2.6MiB    |
| Disk writ (sum) | 14.8MiB   | 13.7MiB   | 11.6MiB   | 11MiB W   |
| Net recv (sum)  | 3.9gib    | 1.7gib    | 2.4gib    | 5.1gib W  |
| Net send (sum)  | 7.9MiB    | 5.7MiB    | 2.6MiB    | 9MiB      |
| TCP estab (avg) | 663       | 664       | 665       | 664       |
| TCP sync (avg)  | 0         | 0         | 0         | 0         |
| TCP close (avg) | 1         | 2         | 7         | 4         |
-------------------------------------------------------------------------------------------------------------
W = winner
fluentbit = 1.1.0
fluentd = 3.3.0-1
logstash = 7.0.1
vector = 0.2.0-6-g434bed8

参考1,TCP转黑洞性能测试,来源:Vector Repo

Logstash 的优点和缺点

以下是 Logstash 的优缺点列表(与本指南中的其他日志托运人相比):

优点

缺点

输入插件:很多

配置难度:高

输出插件:很多

资源使用:高

配置能力:高

文档:复杂

社区活动:高(上个月 68 个 PR)

矢量图

Vector是一个用于收集、转换和路由所有日志和指标的工具。它由 TimberIO 于 2019 年创建,并于 2021 年被Datadog收购。

尽管 Vector 是一个端到端的代理和聚合器,它仍然可以用作日志发送器/收集器,并且凭借其令人印象深刻的基准,它可能成为您堆栈中的重要工具。

Vector 的优点在于它是用 Rust 编写的,Rust 以其性能、内存安全性而闻名,并且专为高强度工作而设计。 Vector 还提供分布式、集中式和基于流的部署。

为了将基于功能的 Vector 与其他日志托运人进行比较,Vector repo 与我添加的 Beats、Fluentbit、FluentD、Logstash、Splunk UF 和 Splunk HF 进行了良好的并排比较(下面的参考 2)下面供参考。

Vector 的特征与其他 Log Shippers参考 2,Vector 的特征,来源:Vector Repo

之前讨论的基准尤其引起了我们的注意,它是比较 Vector 与其他原木托运人的表现的一个很好的基础。简而言之,Vector在IO Thrpt (avg)Mem used (max),Disk writ (sum)Net recv (sum)在TCP to Blackhole测试中胜出Logstash、FluentD和Fluentbit。

矢量优缺点

以下是 Vector 的优缺点列表(与本指南中的其他原木托运人相比):

优点

缺点

资源使用:低

输入插件:更少

配置难度:低

输出插件:更少

配置能力:高

文档:简单

社区活动:高(上个月 220 个 PR)

文件节拍

另一种选择是Filebeat。如果您不需要高级调整,那么创建这个的目标是成为 Logstash 的轻量级替代品。即使您可以同时使用 Logstash 和 Filebeat,您也可以选择直接使用 Filebeat 将日志发送到您的集中式日志记录平台。随着您越来越熟悉或需要其他功能,您可以随时将 Logstash 连接到您的流程。

如果你想在远程机器上收集日志,Filebeat 是一个不错的选择。如果您不需要对数据进行转换,那么您可以直接将其直接发送到 Elasticsearch!但通常情况下,如果您需要的不仅仅是时间戳和消息字段,您将需要 Logstash。

总的来说,与 Logstash 相比,它是一个更简单的选择。这使得它对新用户更可靠,因为您旋转的齿轮和手柄更少。

为了扩展 Filebeat,您很可能仍然需要在您的堆栈中使用 Logstash。但是,在这种情况下,拥有一个设计良好/架构良好的集群非常重要。

对于您的堆栈,您可能不仅使用 Filebeat。如果您正在考虑缩放,这将特别有用。下面是使用 Beats、Logstash、Elasticsearch 和 Kibana 大规模展示您的流程的示意图。

部署和扩展 Logstash 指南源:Elastic.co, 部署和扩展 Logstash 指南

Filebeat 的优缺点

以下是 Filebeat 的优缺点列表(与本指南中的其他日志传送器相比):

优点

缺点

资源使用:低

输入插件:更少

配置难度:低

输出插件:更少

文档:简单

配置能力:低

社区活动:高(上个月 220 个 PR)

FluentD

构建这个的想法是尽可能多地以 JSON 格式构建数据。FluentD声称此方法允许统一日志层(换句话说,统一日志基础设施)。

由于插件数量众多,对于那些拥有来自不同或独特来源的数据的人来说,FluentD 是一个不错的选择。

如果您正在寻找适合更多小型设备和分布式系统的东西,Fluentbit 也是一个可以考虑的选项。就像 FluentBit,它是由 Treasure Data 创建的,但后来在 2015 年。有一个FluentD 和 Fluentbit的并排比较Logz.io,我们建议您查看。

有一篇有见地的文章有多个测试比较FluentD和FluentBit,其中一个是Forwarding 5,000 1KB events per second,结果FluentD 80% CPU和120MB Memory,但FluentBit 27% CPU和26MB Memory。

但是,当将 FluentD 与本指南中的其他日志传送器进行比较时,它的表现相当不错。

FluentD 的优缺点

以下是 FluentD 的优缺点列表(与本指南中的其他日志托运人相比):

优点

缺点

资源使用:低

配置难度:高

输入插件:很多

社区活动:低(上个月有 6 个 PR)

输出插件:很多

文档:复杂

配置能力:高

Promtail

了解 Loki 的人,你可能听说过Promtail。它的用例是专门为 Loki 量身定制的,它可以在本地收集日志,也可以为 Kubernetes pod 收集日志。

至于比较,你可以参考的一篇byCrashLaker的文章,它比较了 Loki、ELK 和 Splunk。在它之上,还有一篇Medium文章byRonen Schaffer,对Promtail进行了包括写路径性能、读路径性能等分析。

Promtail 优点和缺点

以下是 Promtail 的优缺点列表(与本指南中的其他原木托运人相比):

优点

缺点

资源使用:低

输入插件:更少

配置难度:低

输出插件:更少

文档:简单

配置能力:低

社区活动:低(人们等待数月才能收到回复,上个月只有 8 个 PR)

结论

让我们以一个包含上述所有日志托运人的比较表结束:

日志存储

向量

文件节拍

流利的D

长尾

资源使用

高的

低的

低的

中等的

低的

输入插件

高的

更少

更少

更少

小的

输出插件

许多

更少

更少

许多

更少

配置能力

高的

高的

低的

高的

低的

配置难度

高的

低的

低的

高的

低的

文档

复杂的

简单的

简单的

复杂的

简单的

社区活动

高的

高的

高的

低的

低的

我们希望本指南可以帮助您分析顶级日志托运人的表面功能,以了解您应该进一步探索哪种解决方案并将其添加到您的堆栈中。

如果您对任何工具有任何疑问,请告诉我,我会尽快看到评论并回复!谢谢阅读。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐