flume日志收集系统常见配置

    前面介绍了flume入门实例,介绍了配置netcat信源,以及memory信道,logger信宿,其实flume常见的信源信道信宿有很多,这里介绍flume常用信源的三种方式:netcat,avro,exec,信道的三种方式:memory,jdbc,file,信宿的两种方式FILE_ROLL,hdfs。理论上,这些组合在一起,可以构建十多种配置方式,这里我们就通过几个例子来展示这些配置,通过示例来了解他们的区别。

    从信源类型来看,avro和netcat类似,都需要开启监听服务,而且模拟发送avro信息需要通过flume-ng命令,并且需要指定连接的主机和端口。exec这种信源,表示将一个命令执行的结果作为信源,交给flume来收集。

    从信道类型来看,memory是最常用的方式,是将收集的数据缓存在内存中,但是他的可靠性不够,一旦出现故障,数据就难以恢复,而jdbc是将数据默认缓存在derby数据库中,file类型是将数据缓存在文件系统中,但是后两者的效率没有memory高。

    从信宿类型来看,FILE_ROLL是将数据最终存储在文件系统中,但是大小会受到限制,因此一般是将数据存储在分布式系统如hadoop中,这里就是hdfs,指定了hdfs类型,就需要指定存储的路径。

    在信源上,我们可以指定拦截器,让收集的数据更加的精确,更加的满足我们的系统分析需求。默认的拦截器有时间戳,正则等,同时也支持用户自定义拦截器,这就需要用户编码来定义拦截器,然后配置在信源中。

    信源、信道、信宿这三个组件组成一个代理agent,他们在一个代理agent中,可以是多个信道,多个信宿的组合,在本文最后,我们会给出一个复杂的示例,展示两个信道memory对应两个信宿hdfs和FILE_ROLL的组合。下面我们给出几个实例,并运行。

1、将命令执行的结果保存到平面文件中的示例:

简单配置如下:

a2.sources=s2
a2.channels=c2
a2.sinks=k2

a2.sources.s2.type=exec
a2.sources.s2.command=cat /home/software/flume/flume-test

a2.sinks.k2.type=FILE_ROLL
a2.sinks.k2.sink.directory=/home/software/flume/files
a2.sinks.k2.sink.rollInterval=0

a2.channels.c2.type=file
a2.channels.c2.checkpointDir=/home/software/flume/fc/checkpoint
a2.channels.c2.dataDirs=/home/software/flume/fc/data

a2.sources.s2.channels=c2
a2.sinks.k2.channel=c2

启动flume,加载配置:

bin/flume-ng agent --conf conf --conf-file conf/exec.conf --name a2 -Dflume.root.logger=INFO,console

运行命令,打印日志ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值