flume实时收集日志到kafka

来源:互联网 发布:杀人案 知乎 编辑:程序博客网 时间:2024/05/19 06:39
Flume实时收集日志
kafka版本0.8.2
1.版本apache-flume-1.7.0-bin.tar.gz
解压后conf 目录下配置以.conf结尾的文件如(flume_properties.conf)
2.配置文件信息
// sources 数据源每增加一个添加即可
a1.sources  =  r1 r2 r3 r4 r5
//数据输出方式
a1.sinks  =  k1
//数据汇聚存储方式
a1.channels  =  c1


//收集数据类型 exec为监控输出文件
a1.sources.r1.type  = exec
//文件的路径
a1.sources.r1.command=tail -F apache-tomcat-0/logs/catalina.2017-03-08.out
//增加每一个数据源都需要配置
a1.sources.r2.type  = exec
a1.sources.r2.command=tail -F apache-tomcat-1/logs/catalina.2017-03-08.out


a1.sources.r3.type  = exec
a1.sources.r3.command=tail -F apache-tomcat-2/logs/catalina.2017-03-08.out


a1.sources.r4.type  = exec
a1.sources.r4.command=tail -F apache-tomcat-3/logs/catalina.2017-03-08.out


a1.sources.r5.type  = exec
a1.sources.r5.command=tail -F apache-tomcat-4/logs/catalina.2017-03-08.out


//数据输出类型
a1.sinks.k1.type= org.apache.flume.sink.kafka.KafkaSink
//kafka地址
a1.sinks.k1.brokerList=0.0.0.1:9092
//topic
a1.sinks.k1.topic=logs
//数据类型
a1.sinks.k1.serializer.class=kafka.serializer.StringEncoder


//通道类型(内存)
a1.channels.c1.type  =  memory
//容量
a1.channels.c1.capacity  =  1000 
//event事务容量
a1.channels.c1.transactionCapacity  =  100


//数据源使用的通道
a1.sources.r1.channels  =  c1
a1.sources.r2.channels  =  c1
a1.sources.r3.channels  =  c1
a1.sources.r4.channels  =  c1
a1.sources.r5.channels  =  c1


//sinks输出的通道
a1.sinks.k1.channel  =  c1


3.启动flume 


bin/flume-ng agent --conf conf --conf-file /home/flume/conf/flume_properties.conf  --name a1 -Dflume.root.logger=INFO,console &


logger打印启动日志信息
增加 & 在后台启动 退出shell时注意 输入exit 关闭连接
4.每日文件名变更
日志文件会按日期分割,sources的监控的文件也会变化.
Flume 配置文件变更时会实时重新加载文件,用 crontab + shell  每天更新配置文件内容即可:
Shell脚本:(flumeUpdate.sh)
#!/bin/bash
DATEFORMATTYPE=$(date +%Y-%m-%d)
Sed -i 's/catalina.*/catalina.'${DATEFORMATTYPE}'.out/g' /home/flume/conf/flume_properties.conf
crontab任务:
0 5 * * * sh /home/x-sh/flumeUpdate.sh
阅读全文
1 0
原创粉丝点击