Flume-NG 日志文件收集 简单实例

公司计划部署Flume日志采集系统,所以简单学习了一下相关的配置和使用。主要在自己的虚拟机上测试验证。

虚拟机是CentOS6.7系统,Flume1.6.0。Flume安装很简单,下载官方软件包,解压,配置环境变量,注意需要JDK1.6以上版本支持。


下面使用Flume实现简单的日志收集功能:将loga目录下新产生的日志文件自动收集到logb目录

配置文件test.conf 主要配置项如下。配置项中指定的各个目录需提前创建。


#配置agent包含的各个组件
agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1

#配置 source1 
agent1.sources.source1.type = spooldir
agent1.sources.source1.spoolDir = /home/wangping/loga/
agent1.sources.source1.channels = channel1
 
#配置 sink1
agent1.sinks.sink1.type = file_roll  #表示将数据存入本地文件系统
agent1.sinks.sink1.sink.directory=/home/wangping/logb/
agent1.sinks.sink1.sink.rollInterval=0  #滚动时间(每隔一段时间,系统会生成一个新的文件存放数据,为0时表示只有一个文件存放数据)

#配置 channel1 
agent1.channels.channel1.type = file
agent1.channels.channel1.checkpointDir=/home/wangping/chn/checkpoint   #存放检查点
agent1.channels.channel1.dataDirs=/home/wangping/chn/data    #存放数据 
agent1.channels.channel1.capacity = 1000    #checkpoint文件存放event信息的最大容量
agent1.channels.channel1.transactionCapactiy = 100   #事务的最大容量

#将source、sink与channel绑定
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1
 

配置完毕,启动agent,使用的命令是
flume-ng agent -c /usr/local/flume1.6.0/conf -f /usr/local/flume1.6.0/conf/test.conf  -Dflume.root.logger=DEBUG,console -n agent1 

各参数含义:
-n  指定agent名称
-c  指定配置文件目录
-f  指定配置文件
-Dflume.root.logger=DEBUG,console   设置运行日志等级为DEBUG,控制台输出;
 若-Dflume.root.logger=INFO,LOGFILE  则日志等级为INFO,输出到logs目录下的flume.log文件
 
loga目录下放入loga.txt文件,flume自动开始传输数据,传输完毕后loga.txt被重命名为loga.txt.COMPLETED,数据传输到logb目录下,新生成文件 1448882458302-1
关于file_roll类型的sink产生的文件名,查阅相关资料:RollingFileSink文件名不能自定义,而且不能定时滚动文件,只能按时间间隔滚动,可以自己定义sink,来做定时写文件


其他参考:
《记Flume-NG一些注意事项》
http://www.tuicool.com/articles/FRv6VvR
《Flume使用小结》
http://www.cnblogs.com/cswuyg/p/4498804.html
《Flume-NG源码阅读之SpoolDirectorySource 》
http://blog.csdn.net/szwangdf/article/details/34095941
《Flume-NG源码阅读之FileChannel》
http://www.cnblogs.com/lxf20061900/p/3713682.html?utm_source=tuicool&utm_medium=referral

你可能感兴趣的:(其它技术学习)