【老王公众号】

常用日志采集框架对比

一、Logstash

  Logstash诞生于2009年8月,2013年被ElasticSearch公司收购。Logstash是一个分布式日志收集框架,开发语言是JRuby,经常与ElasticSearch,Kibana配合使用组成著名的ELK技术栈,所谓ELK就是ElasticSearch、Logstash、Kibana这三个组件。

 

 

二、Filebeat

  Filebeat是一款轻量级日志采集器(同一个公司推出的Logstash替代品),可用于转发和汇总日志与文件。Filebeat内置有多种模块(Nginx、MySQL、Redis、Elasticsearch、Logstash等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。

 

三、Flume

  Flume诞生于2010年,最早由Cloudrea开发,是一个高可用,高可靠的分布式海量日志采集系统,支持定制各类数据发送方,一般和 kafka 订阅消息系统搭配较多。其设计原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储系统中。Flume目前有两个版本,OG和NG,区别很大,初始的发行版本叫做FlumeOG,后被apache收购,改名为Apache Flume,收购重构后的版本统称为Flume NG(next generation下一代的意思);所以现在Flume已经是ApacheETL工具集中的一员。

  Flume与logstash相比,两者最初的设计目的就不太一样。Flume本身最初设计的目的是为了把数据传入HDFS中(并不是为了采集日志而设计,这和Logstash有根本的区别)。

 

 

四、Fluentd

fluentd是一款开源的日志收集工具。基于ruby和C编写,它拥有非常多的插件,可以满足的我们对各种格式的日志进行收集,过滤,解析等。把日志信息变成我们想要的格式。并且,没有找到满足我们的插件,我们可以自己写插件。

fluentd收集日志时,将所有日志看做JSON格式的数据。并且用正则表达式去匹配日志。fluentd自带丰富的日志收集格式。以及可以将日志收集到各种存储的数据库。

fluentd有7种类型的插件:输入、解析器、过滤器、输出、格式化程序、存储和缓冲区。

Fluend-bit是Fluentd的精华版本,纯C编写、大小450kb,更轻量级,主要支持数据的收集和处理功能。

对比

类型
Logstash
Filebeat
Flume
Fluentd

平台

Linux&Windows Linux&Windows Linux&Windows Linux&Windows
运行环境 java go java ruby
资源开销 非常小
配置 简单 简单 较复杂 复杂
可靠性 不稳定 稳定 高可靠 可靠

方案

较成熟的日志系统方案:Filebeat → Logstash → ElasticSearch → Kibana

 

posted @ 2021-06-09 17:48  CTO老王  阅读(3978)  评论(0编辑  收藏  举报