当前位置:网站首页>【翻译】Logstash、Fluentd、Fluent Bit,还是Vector?如何选择合适的开源日志收集器...
【翻译】Logstash、Fluentd、Fluent Bit,还是Vector?如何选择合适的开源日志收集器...
2022-07-25 18:25:00 【programmer_ada】
特邀文章,原载于ERA软件公司的博客 ,作者Stela Udovic
在这篇博客中,我们将讨论最流行的日志收集器,包括Logstash、Fluentd、Fluent Bit和Vector。

无论你是已经使用了一个开源的日志收集器,还是准备为你的环境选择一个或多个日志收集器,了解对你的日常操作至关重要的日志收集器的关键要求是很重要的。这些要求包括高数据吞吐量、可靠性、可扩展性、灵活性、安全性和资源消耗(CPU、内存)。在这篇博客中,我们将讨论最流行的日志收集器,包括Logstash、Fluentd、Fluent Bit和Vector。
评估日志收集器时需要考虑的关键要求
在深入研究具体的开源日志收集器实现之前,以下是评估日志收集器时需要考虑的重要要求。
高数据吞吐量
为了成功地调试问题,工程团队需要每秒有大量的日志和低延迟的日志处理。为了避免业务中断或故障,工程师需要快速获得关键的日志数据,而这正是具有高数据吞吐量的日志收集器的优势所在。
可靠性
日志收集器应确保处理数据的高度完整性。即使在数据吞吐量增加的情况下,数据的完整性也应该被保存下来。日志收集器的数据丢失的频率和数量应该是有限制的,最好在任何条件下都能避免。
可扩展性
有几种策略可以使日志收集器处理大量的数据。过滤不属于高优先级的日志、解析或压缩复杂的日志只是其中的一部分。此外,重要的是要考虑到,这种数据处理可能会引起CPU和内存资源利用率的增加,这是为扩展能力所付出的代价。另外,当数据率增加时,会有更高的资源消耗和可能的背压,这也会影响到日志收集器的扩展能力。
处理各种数据格式
日志以许多不同的格式出现在云应用和基础设施的各种元素中。容器和微服务是用不同的编程语言或框架开发的,对日志格式有不同的处理方法。避免使用一个以上的日志收集器来处理大量的格式,可以减少整体的复杂性。
对各种数据源和目的地的支持
日志收集器从各种云环境中获取数据。日志数据源还可能包括消息队列和流媒体平台,如Kafka、Redis和RabbitMQ。日志收集器将数据发送到不同的目的地,如日志管理工具和存储档案。日志收集器处理各种来源和目的地的能力增加了其灵活性和可用性。
安全性
在评估任何日志收集器时,应考虑处理敏感信息的能力,如匿名化或排除机密字段,并以安全方式将日志发送到存储后端。
现在,让我们讨论一下具体的开源收集器和它们的关键特征。
Logstash
Logstash是最受欢迎的日志收集器之一,它是ELK(Elasticsearch、Logstash、Kibana)堆栈的一部分。
Logstash的主要优点。
处理结构化和非结构化的数据。
支持提高数据安全性,能够匿名化或排除敏感字段。
支持数百个插件,包括输入、过滤和输出插件。过滤器插件执行日志处理,如聚合和解析。
虽然Logstash是一个可靠的日志收集器,有许多处理日志数据的选项,但如果小的内存占用是一个关键的要求,本博客中描述的其他日志收集器可能更好。因为Logstash是用Java编写的,它需要JVM的支持。如果你打算从嵌入式设备和物联网应用中收集日志,它不是最佳选择。
Fluentd
Fluentd是一个内存占用小的日志收集器,可以处理各种日志源和目的地。许多支持的插件允许连接到多种类型的源和目的地。与其他日志收集器一样,Fluentd的典型来源包括应用程序、基础设施和消息队列平台,而通常的目的地是日志管理工具和存储档案。
Fluentd的主要优势。
- 支持许多日志源和目的地
- 灵活和可扩展的解析选项,支持大量的输入格式
- 拥有一个庞大的生态系统,包括数百个插件和用Ruby编写自己的插件的能力。
- 支持Apache许可证,2.0版
- 供应商中立性(一个CNCF项目)
如果你在寻找供应商中立性,Fluentd是一个不错的选择。它与Kubernetes和容器化环境一起使用也非常受欢迎。
Fluent Bit
Fluent Bit在Kubernetes集群等容器化环境中运行良好。另外,Fluent Bit可以扩展,并且仍然节约资源,因为它的占用空间小。虽然Fluent Bit经常被用于Kubernetes环境,但它也可以部署在裸机服务器、虚拟机和嵌入式设备上。
Fluent Bit的主要优势。
- 轻量级设计,内存占用最小(通常小于1MB)。
- 易于扩展的架构
- 可插拔的架构,有许多输入、过滤和输出插件
- 支持基于度量的以及基于日志的有效载荷
- 支持通过安全连接将日志发送到存储后端
- 支持使用SQL进行流处理
- 支持Apache许可证,2.0版
- 供应商中立性(CNCF项目)
Fluent Bit从各种来源收集日志和指标,并像其他日志收集器一样将它们发送到不同的目的地。Fluent Bit真正闪亮的地方是在嵌入式、边缘和其他资源受限的环境中,精简的运行时间与广泛的输入/输出选项相搭配是至关重要的。Fluent Bit不仅是一个日志收集器,而且还可以作为一个流处理器,以及一个将日志数据转发到Fluentd的运输器。
Vector
Vector被设计成一个高性能的日志收集器。与本博客中讨论的其他日志收集器相比,它是一个相对较新的产品。
Vector的主要优势。
- 高效的内存/CPU消耗和高数据吞吐量
- 良好的可靠性,具有正确性和交付保证
- 包括定制的DSL,用于以安全和高性能的方式对数据进行实时转换
- 支持基于度量的以及基于日志的有效载荷
- 大量的输入和输出集成
- 可以作为一个代理或聚合器来部署
Vector是一个伟大的、灵活的选择,因为它有广泛的部署选项,支持度量和日志,以及可用的集成数量。此外,由于Vector是用Rust编写的,它提供了内存安全和效率保证,这使它在其他现有产品中独树一帜。无论你是在一个新的还是旧的环境中工作,它肯定都值得仔细看看。
Vector引入了一个单元测试框架,使得维护复杂的日志收集器拓扑结构更加容易。同时,Vector的软件组件试图为交付给目的地的日志和事件提供交付保证。Vector的用户也可以获得Vector组件的一般代码稳定性的保证。
总结
很难找到一个主导空间的单一收集器。选择合适的日志收集器取决于你的具体需求和要求。例如,如果你正在为需要小资源消耗的物联网应用寻找日志收集器,那么你最好选择Vector或Fluent Bit而不是Logstash。如果你正在寻找供应商的中立性,CNCF支持的项目,如Fluentd和Fluent Bit是不错的选择。
仔细检查性能、资源消耗、支持各种输入和输出格式的灵活性、可扩展性、可靠性、厂商锁定和安全要求,可以帮助你找到适合你的日志收集器。
幸运的是,无论你选择哪种日志收集器,都有可能以合理的成本和实时的方式来搜索和分析日志。
要了解EraSearch如何与Fluentd集成,请阅读Connecting Fluentd to EraSearch博客。通过阅读以下博客来了解EraSearch和Vector的集成情况。使用 Vector 将 Kubernetes 日志运送到 EraSearch,以及低成本地收集所有 Cloudflare 日志。
边栏推荐
- Practice of RTC performance automation tool in memory optimization scenario
- NC78 反转链表
- Design practice of Netease strictly selecting inventory center
- 7. 依赖注入
- OV7725 yuv 640*[email protected] 配置文件
- Diagonalization, power of a
- mysql的小数number类型select之后丢失了前面的0
- Could not stop Cortex-M device! please check the JTAG cable的解决办法
- LeetCode 101. 对称二叉树 && 100. 相同的树 && 572. 另一棵树的子树
- Linux启动mysql报错
猜你喜欢

Could not stop Cortex-M device! please check the JTAG cable的解决办法

Kendryte K210 在freertos上的lcd屏幕的使用
![[web page performance optimization] what about the slow loading speed of the first screen of SPA (single page application)?](/img/e2/9b62dd9bd0f2bc8dcbb6d9c851254d.png)
[web page performance optimization] what about the slow loading speed of the first screen of SPA (single page application)?

7. Dependency injection

CircleIndicator组件,使指示器风格更加多样化

Stm8s003f3 internal flash debugging

Thales launches solutions to help SAP customers control cloud data

One week activity express | in simple terms, issue 8; Meetup Chengdu station registration in progress

Express of nodejs simple example program

图的相关操作
随机推荐
Jz71 jump step expansion problem
C语言 整数与字符串的相互转换
srec_cat 常用参数的使用
pd.melt() vs reshape2::melt()
VIM basic operation commands
BiSeNet v1
C盘空间不够 mklink解决VScode扩展迁移到其他盘
Number two 2010 real test site
Leetcode 101. symmetric binary tree & 100. same tree & 572. Subtree of another tree
用GaussDB(for Redis)存画像,推荐业务轻松降本60%
Error when starting MySQL on Linux
Use of join function in MATLAB
工程师必看的示波器探头安全使用说明书
C language libcurl cross compilation
这是一张机器&深度学习代码速查表
数二2010真题考点
BL602 开发环境搭建
vim基本操作命令
BiSeNet v1
C语言 cJSON库的使用