logstash与flume区别

左心房为你撑大大i 提交于 2020-02-26 22:16:50

-1.

Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。

  • Inputs:用于从数据源获取数据,常见的插件如file, syslog, redis, beats 等
  • Filters:用于处理数据如格式转换,数据派生等,常见的插件如grok, mutate, drop, clone, geoip等
  • Outputs:用于数据输出,常见的插件如elastcisearch,file, graphite, statsd等

Logstash最值得一提的是,在Filter plugin部分具有比较完备的功能,比如grok,能通过正则解析和结构化任何文本,Grok 目前是Logstash最好的方式对非结构化日志数据解析成结构化和可查询化。此外,Logstash还可以重命名、删除、替换和修改事件字段,当然也包括完全丢弃事件,如debug事件。还有很多的复杂功能供程序员自己选择,你会发现这些功能Flume是绝对没有(以它的轻量级线程也是不可能做到的)。当然,在input和output两个插件部分也具有非常多类似的可选择性功能,这一点跟Flume是比较相似的。

-2.

Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 Flume比较看重数据的传输,因此几乎没有数据的解析预处理。仅仅是数据的产生,封装成event然后传输。

源(Source输入)——存储(Channel管道)——出口(Sink目标输出)。因为涉及到这三个结构,所以做配置就比较复杂。

-3.总结

logstash简单方便,侧重对数据的预处理。 flume使用配置繁琐,最初设计目的是为了把数据传入到HDFS中,侧重传输(多路由)中稳定性。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!