Logstash简介

本文探讨了ELK(ElasticSearch、Logstash、Kibana)与Flume在日志收集、处理和存储方面的差异。Logstash由乔丹西塞于2009年创建,后被ElasticSearch公司收购,其强大的Filter插件如grok,能够解析和结构化非结构化日志数据。而Flume最初由Cloudera开发,但在后续发展中暴露出一些问题,特别是在日志传输稳定性方面。

参考文章:

聊聊Flume和Logstash的那些事儿

Logstash是ELK组件中的一个。所谓ELK就是指,ElasticSearch、Logstash、Kibana这三个组件。那么为什么这三个组件要合在一起说呢?第一,这三个组件往往是配合使用的(ES负责数据的存储和索引,Logstash负责数据采集和过滤转换,Kibana则负责图形界面处理);第二,这三个组件又先后被收购于Elastic.co公司名下。是不是很巧合?这里说个题外话,原ELK Stack在5.0版本加入Beats(一种代理)套件后改称为Elastic Stack,这两个词是一个意思,只不过因为增加了Beats代理工具,改了个名字。

Logstash诞生于2009年8有2日,其作者是世界著名的虚拟主机托管商DreamHost的运维工程师乔丹 西塞(Jordan Sissel)。Logstash的开发很早,对比一下,Scribed诞生于2008年,Flume诞生于2010年,Graylog2诞生于2010年,Fluentd诞生于2011年。2013年,Logstash被ElasticSearch公司收购。这里顺便提一句,Logstash是乔丹的作品,所以带着独特的个人性格,这一点不像Facebook的Scribe,Apache的Flume开源基金项目。

 

Logstash的设计非常规范,有三个组件,其分工如下:

1、Shipper 负责日志收集。职责是监控本地日志文件的变化,并输出到 Redis 缓存起来;2、Broker 可以看作是日志集线器,可以连接多个 Shipper 和多个 Indexer;3、Indexer 负责日志存储。在这个架构中会从 Redis 接收日志,写入到本地文件。

这里要说明,因为架构比较灵活,如果不想用 Logstash 的存储,也可以对接到 Elasticsearch,这也就是前面所说的 ELK 的套路了。

如果继续细分,Logstash也可以这么解剖来看

Logstash三个工作阶段

Logstash就是这么简约,全部将代码集成,程序员不需要关心里面是如何运转的。

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

----------------------------------------------------------------------------------------------------------------------------------

对比flume:

最早Flume是由Cloudrea开发的日志收集系统,初始的发行版本叫做Flume OG(就是original generation的意思),作为开源工具,一经公布,其实是很受关注的一套工具,但是后面随着功能的拓展,暴露出代码工程臃肿、核心组件设计不合理、核心配置不标准等各种缺点。尤其是在Flume OG的最后一个发行版本0.94.0中,日志传输不稳定的现象特别严重。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值