您的位置:首页 > 其它

Flume安装与应用,日志收集保存

2016-03-31 09:54 435 查看
flume解压缩

tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /opt/modules/

tar -zxvf apache-flume-1.6.0-src.tar.gz -C /opt/modules/

src里面文件内容,覆盖解压后bin文件里面的内容

cp -ri apache-flume-1.6.0-src/* apache-flume-1.6.0-bin/

重命名

mv apache-flume-1.6.0-bin/ flume

修改环境变量/etc/profile

export FLUME_HOME=/opt/modules/flume

export PATH=$PATH:$FLUME_HOME/bin

环境变量生效

source /etc/profile

验证Flume安装是否成功

flume-ng version

建立配置文件 源-Source,接收器-Sink,通道-Channel。

代理1监控source1/opt/tools/flumedir目录下文件,sink1上传到HDFS上flume目录,channel1配置了两个临时目录

/opt/modules/flume/conf

#gent1表示代理名称

agent1.sources=source1

agent1.sinks=sink1

agent1.channels=channel1

#Spooling Directory是监控指定文件夹中新文件的变化,

一旦新文件出现,就解析该文件内容,然后写入到channle。写入完成后,标记该文件已完成或者删除该文件。

#配置source1

agent1.sources.source1.type=spooldir

agent1.sources.source1.spoolDir=/opt/tools/flumedir

agent1.sources.source1.channels=channel1

agent1.sources.source1.fileHeader = false #是否添加一个存储的绝对路径名的头文件。

agent1.sources.source1.interceptors = i1

agent1.sources.source1.interceptors.i1.type = timestamp

#配置sink1

agent1.sinks.sink1.type=hdfs

agent1.sinks.sink1.hdfs.path=hdfs://hadoop-master.dragon.org:9000/flume

agent1.sinks.sink1.hdfs.fileType=DataStream

agent1.sinks.sink1.hdfs.writeFormat=TEXT

agent1.sinks.sink1.hdfs.rollInterval=4 #在滚动当前文件之前等待的秒数

agent1.sinks.sink1.channel=channel1

agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d #名字的HDFS目录水槽创建的文件的前缀

#配置channel1

agent1.channels.channel1.type=file

agent1.channels.channel1.checkpointDir=/opt/tools/flumedir2 #存储检查点文件的目录

agent1.channels.channel1.dataDirs=/opt/tools/flumedir3 #用于存储日志文件的逗号分隔的目录列表。使用多个目录放在不同的磁盘可以提高文件通道性能

4.启动flume

flume-ng agent -n agent1 -c conf -f /opt/modules/flume/conf/example -Dflume.root.logger=DEBUG,console

往hdfs写的策略是当时间达到3600s或者文件大小达到128M。

agent1.sources = spooldirSource

agent1.channels = fileChannel

agent1.sinks = hdfsSink

agent1.sources.spooldirSource.type=spooldir

agent1.sources.spooldirSource.spoolDir=/opt/tools/flumedir

agent1.sources.spooldirSource.channels=fileChannel

agent1.sinks.hdfsSink.type=hdfs

agent1.sinks.hdfsSink.hdfs.path=hdfs://hadoop-master.dragon.org:9000/flume/%y-%m-%d

agent1.sinks.hdfsSink.hdfs.filePrefix=flume

agent1.sinks.sink1.hdfs.round = true

# Number of seconds to wait before rolling current file (0 = never roll based on time interval)

agent1.sinks.hdfsSink.hdfs.rollInterval = 3600

# File size to trigger roll, in bytes (0: never roll based on file size)

agent1.sinks.hdfsSink.hdfs.rollSize = 128000000 #文件大小,以触发卷,以字节为单位

agent1.sinks.hdfsSink.hdfs.rollCount = 0 #写入文件之前的事件数

agent1.sinks.hdfsSink.hdfs.batchSize = 1000 #写入文件之前被刷新到HDFS的事件数

#Rounded down to the highest multiple of this (in the unit configured using hdfs.roundUnit), less than current time.

agent1.sinks.hdfsSink.hdfs.roundValue = 1 #圆下来的最高倍数

agent1.sinks.hdfsSink.hdfs.roundUnit = minute #该单位的全面下降值-“秒”,“分钟”或“小时”

agent1.sinks.hdfsSink.hdfs.useLocalTimeStamp = true #使用本地时间(而不是时间戳的事件标题)而更换的转义序列

agent1.sinks.hdfsSink.channel=fileChannel

agent1.sinks.hdfsSink.hdfs.fileType = DataStream

agent1.channels.fileChannel.type = file

agent1.channels.fileChannel.checkpointDir=/opt/tools/flumedir2

agent1.channels.fileChannel.dataDirs=/opt/tools/flumedir3

flume-ng agent -n agent1 -c conf -f /opt/modules/flume/conf/exa2 -Dflume.root.logger=DEBUG,console

flume-ng agent --conf ./conf/ -f conf/flume-site.xml -Dflume.root.logger=DEBUG,console -n agent1>log.log 2>&1 &

让日志收集任务以后台进程运行,且将运行日志重定向到./log.log保存。2>&1就是用来将标准错误2重定向到标准输出1中的最后一个&,则是让bash在后台执行

$ flume-ng agent -c /etc/flume-ng/conf -f /etc/flume-ng/conf/f1.conf -Dflume.root.logger=DEBUG,console -n agent-1

-n 指定agent名称

-c 指定配置文件目录

-f 指定配置文件

-Dflume.root.logger=DEBUG,console 设置日志等级

>/dev/null 2>&1

将输出重定向到它的好处是不会因为输出的内容过多而导致文件大小不断的增加,将命令的输出扔弃掉了。

丢弃你的标准输出和错误输出,当你不希望某一命令或程序产生任何输出的时候,就可以这样做
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: