Flume与Logstash比较

Flume与Logstash相比,个人的体会如下:

  • Logstash比较偏重于字段的预处理;而Flume偏重数据的传输;
  • Logstash有几十个插件,配置灵活;FLume则是强调用户的自定义开发(source和sink的种类也有一二十个吧,channel就比较少了)。
  • Logstash的input和filter还有output之间都存在buffer,进行缓冲;Flume直接使用channel做持久化(可以理解为没有filter)

一、Logstash浅谈:

  • input负责数据的输入(产生或者说是搜集,以及解码decode);
  • Filter负责对采集的日志进行分析,提取字段(一般都是提取关键的字段,存储到elasticsearch中进行检索分析);
  • output负责把数据输出到指定的存储位置(如果是采集agent,则一般是发送到消息队列中,如kafka,redis,mq;如果是分析汇总端,则一般是发送到elasticsearch中)

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

二、Flume浅谈

在Flume中:

  • source 负责与Input同样的角色,负责数据的产生或搜集(一般是对接一些RPC的程序或者是其他的flume节点的sink)
  • channel 负责数据的存储持久化(一般都是memory或者file两种)
  • sink 负责数据的转发(用于转发给下一个flume的source或者最终的存储点——如HDFS)

Flume比较看重数据的传输,因此几乎没有数据的解析预处理。仅仅是数据的产生,封装成event然后传输。传输的时候flume比logstash多考虑了一些可靠性。因为数据会持久化在channel中(一般有两种可以选择,memoryChannel就是存在内存中,另一个就是FileChannel存储在文件种),数据只有存储在下一个存储位置(可能是最终的存储位置,如HDFS;也可能是下一个Flume节点的channel),数据才会从当前的channel中删除。这个过程是通过事务来控制的,这样就保证了数据的可靠性。

不过flume的持久化也是有容量限制的,比如内存如果超过一定的量,也一样会爆掉。

参见:http://www.cnblogs.com/xing901022/p/5631445.html

时间: 2024-08-26 00:43:00

Flume与Logstash比较的相关文章

聊聊Flume和Logstash的那些事儿

本文适合有一定大数据基础的读者朋友们阅读,但如果你没有技术基础,照样可以继续看(这就好比你看<葵花宝典>第一页:欲练此功,必先自宫,然后翻到第二页:若不自宫,也可练功,没错就是这种感觉→_→). 大数据的数据采集工作是大数据技术中非常重要.基础的部分,数据不会平白无故地跑到你的数据平台软件中,你得用什么东西把它从现有的设备(比如服务器,路由器.交换机.防火墙.数据库等)采集过来,再传输到你的平台中,然后才会有后面更加复杂高难度的处理技术. 目前,Flume和Logstash是比较主流的数据采集

大数据实战之Logstash采集-&gt;Kafka-&gt;ElasticSearch检索

1. Logstash概述 Logstash的官网地址为:https://www.elastic.co/cn/products/logstash,以下是官方对Logstash的描述. Logstash是与Flume类似,也是一种数据采集工具,区别在于组件和特性两大方面.常用的数据采集工具有Sqoop.Flume.Logstash,计划将单独写一篇博文论述它们之间的区别,所以这里就不赘述,感兴趣可关注后期的博文. 2. Kafka概述 Kafka的官网是:http://kafka.apache.o

HBase多条件及分页查询的一些方法

HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一.它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯地依靠RowKey.也只有使用RowKey查询数据才能得到非常高

运维之我的docker-使用ELK处理docker日志

因为docker产生的容器不是一个永久存储的文件,所以无法保证你的文件永久保存.建议大家把容器产生的日志通过fluentd,flume,logstash等工具传送到一个日志仓库,这样保证方便保证数据的安全和管理.由于docker官方的推荐,我们本次讲解是fluentd日志收集组件. 具体使用如下: 安装ES 1. 初始化环境 [[email protected] src]# vim /etc/sysctl.conf vm.max_map_count = 290000 [[email protec

日志收集之--将Kafka数据导入Elastic

最近需要搭建一套日志监控平台,结合系统本身的特性总结一句话也就是:需要将Kafka中的数据导入到elasticsearch中.那么如何将Kafka中的数据导入到elasticsearch中去呢,总结起来大概有如下几种方式: Kafka->logstash->elasticsearch->kibana(简单,只需启动一个代理程序) Kafka->kafka-connect-elasticsearch->elasticsearch->kibana(与confluent绑定紧

总结Fedora 22跨版本升级到Fedora 24方法

(总结)Fedora 22跨版本升级到Fedora 24方法   最近测试一套比较新的开源ERP,对系统软件版本要求很新,CentOS7也没这么新的开发包,也不喜欢编译安装(洁癖).想起了Fedora来,之前有台测试机Fedora22,就想把它更新到最新的Fedora24.该版本glibc 更新到2.23,GCC编译器更新到6.1了,够新!折腾了下,跨版本升级成功.注意:此操作只合适开发和测试环境,不能在生产环境这样折腾.Fedora是新技术试验场,不合适用于生产环境的. 一.使用 DNF 插件

rsyslog管理分布式日志

背景 有一个4台机器的分布式服务,不多不少,上每台机器上查看日志比较麻烦,用Flume,Logstash.ElasticSearch.Kibana等分布式日志管理系统又显得大材小用,所以想到了centos自带的rsyslog. 简介 Rsyslog可以简单的理解为syslog的超集,在老版本的Linux系统中,Red Hat Enterprise Linux 3/4/5默认是使用的syslog作为系统的日志工具,从RHEL 6 开始系统默认使用了Rsyslog. Rsyslog 是负责收集 sy

sudo/visudo集中权限管理

用户集中权限的实战: Host_Alias(主机别名)  ALL User_Alias(用户别名)  OLD_AMDINS = oldboy, oldgril, %sa OLD_KAIFA = anla, fefe Runas_Alias(身份别名)   OP1=root, oldboy Runas_Alias             OP2=root, oldgirl Cmnd_Alias(命令别名)  DISKCMD = /sbin/fdisk Cmnd_Alias            

linux日志审计项目案例实战(生产环境日志审计项目解决方案)

所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析.处理.展示(包括文本或者录像) 推荐方法:sudo配合syslog服务,进行日志审计(信息较少,效果不错) 1.安装sudo命令.syslog服务(centos6.4或以上为rsyslog服务) [[email protected]_back ~]#rpm -qa "sudo|syslog"   查询系统是否已安装sudo.syslog程序 rsyslog-5.8.10-8.el6.x86_64 sudo-1.8.6