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
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