flume和logstash的区别

一、flume架构

Flume的配置是真繁琐,source,channel,sink

1、source负责数据产生的搜集

2、channel负责数据的存储持久化

3、sink负责数据的转发

二、logstash

input、filter、output

1、input负责数据的输入

2、filter负责对采集日志进行分析,提取字段,一般都是将关键字段提取放入es中检索分析

3、output负责把数据输出到指定的存储位置,redis、kafka、mq等,一般是发送到es中

logstash比较看重input、filter、output之间的协同工作,因此多个输入会把数据汇总到input和filter的buffer中,filter从buffer中读取数据,进行过滤分析,然后存储在filter与output中的buffer中,当buffer满足一定的条件,会触发output刷新数据

 

三、区别

1、logstash侧重于字段的预处理。flume偏重数据的传输

2、logstash插件配置灵活,flume比较适合用户自定义开发

3、logstash的input filter output都存在buffer,进行缓冲。flume直接使用channel做持久化

4、flume传输比logstash更可靠,数据持久化到channel中,只有存储到下一个位置,数据才会从channel中删除,这个过程是通过事务控制的,保证了数据的可靠性

 

参考
Flume开发者指南
Flume使用指南

 


版权声明:本文为qq_34936033原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。