常用日志采集框架对比
一、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
加微信:wonter 发送:技术Q
医疗微信群:
加微信:wonter 发送:医疗Q
更多文章关注公众号: