使用logstash file input plugin与filebeat进行日志采集的功能对比

我们知道,logstash的file input plugin可以读取nginx日志等日志类文件,而filebeat也可以进行相同的功能。那这两者有什么区别呢?在选型上应该怎么做呢?最佳实践是什么?

 

答案是:

当处理日志文件时,几乎总是需要使用Filebeat和Logstash的组合。为什么?

原因1:logstash提供了ETL中的强大的Transfer功能

原因2:支持多个日志记录管道,比如你采集的日志不仅仅来自于文件,还来自于kafka等多个消息源

但是logstash也有自己的问题,就是其是jruby编写的,是基于JVM的,所以比较重。如果部署多个logstash,使用file input plugin来采集多个端的file文件,并不合适

这个时候就需要filebeat了。

filebeat是golang语言编写的,比较轻量级,性能很好。但其不足的一点是并没有提供logstash那么强大的transfer功能,比如logstash的ruby filter plugin支持自定义的逻辑。

 

而将这两者配合使用,filebeat作为采集器,logstash执行transfer,优势互补

 

另外,针对使用logstash的两大原因,如果我们需要的transfer不复杂,也没有多个数据源的需求,使用filebeat提供了ingest pipeline,也可以进行transfer功能,那么可以直接使用filebeat直接到es的技术架构

 

参考:

Filebeat vs. Logstash — The Evolution of a Log Shipper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值