使用flume搭建日志收集系统
前言自动生成日志的打点服务器完成了,日志便可以顺利生成了。接下来就要使用flume对日志进行收集,即将日志产生的节点收集到一个日志主控节点上去,这样的目的是便于在主控节点上为不同的日志打上不同的标签,从而推送到kafka上,供不同的消费者来使用。下面为大家介绍一下如何使用flume搭建自己的日志收集系统。环境操作系统: CentOS7 * 2Flume版本:flume-ng-1.6.0-cdh5.
前言
自动生成日志的打点服务器完成了,日志便可以顺利生成了。接下来就要使用flume对日志进行收集,即将日志产生的节点收集到一个日志主控节点上去,这样的目的是便于在主控节点上为不同的日志打上不同的标签,从而推送到kafka上,供不同的消费者来使用。下面为大家介绍一下如何使用flume搭建自己的日志收集系统。
环境
操作系统: CentOS7 * 2
Flume版本:flume-ng-1.6.0-cdh5.7.0
JDK版本:1.8
步骤
1. 分别安装jdk1.8和flume
上传到服务器后解压,配置环境变量JAVA_HOME,进入到Flume主目录下
cd conf
cp flume-env.sh.template flume-env.sh
配置flume-env.sh
# JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME=jdk安装目录
2. 在日志产生节点上进入flume主目录/conf/下进行配置
vim exec-memory-avro.conf
配置内容:
exec-memory-avro.sources = exec-source
exec-memory-avro.sinks = avro-sink
exec-memory-avro.channels = memory-channel
exec-memory-avro.sources.exec-source.type = exec
exec-memory-avro.sources.exec-source.command = tail -F 日志文件路径
exec-memory-avro.sources.exec-source.shell = /bin/sh -c
exec-memory-avro.sinks.avro-sink.type = avro
exec-memory-avro.sinks.avro-sink.hostname = 日志主控服务器IP
exec-memory-avro.sinks.avro-sink.port = 9898
exec-memory-avro.channels.memory-channel.type = memory
exec-memory-avro.sources.exec-source.channels = memory-channel
exec-memory-avro.sinks.avro-sink.channel = memory-channel
3. 进入日志主控服务器进入flume/conf目录下配置
vim avro-memory-logger.conf
配置内容:
avro-memory-logger.sources = avro-source
avro-memory-logger.sinks = logger-sink
avro-memory-logger.channels = memory-channel
avro-memory-logger.sources.avro-source.type = avro
avro-memory-logger.sources.avro-source.bind = 0.0.0.0
avro-memory-logger.sources.avro-source.port = 9898
avro-memory-logger.sinks.logger-sink.type = logger
avro-memory-logger.channels.memory-channel.type = memory
avro-memory-logger.sources.avro-source.channels = memory-channel
avro-memory-logger.sinks.logger-sink.channel = memory-channel
注: avro-source.bind配置的是要监听的IP,为了方便起见,这里设置成监听所有IP,即所有的IP都可以进行连接
4. 启动日志主控服务器的flume
flume-ng agent \
--name avro-memory-logger \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/avro-memory-logger.conf \
-Dflume.root.logger=INFO,console
5. 启动日志源节点的flume
flume-ng agent \
--name exec-memory-avro \
--conf $FLUME_HOME/conf \
--conf-file $FLUME_HOME/conf/exec-memory-avro.conf \
-Dflume.root.logger=INFO,console
注:注意顺序,否则会报错,需先启动主控服务器监听端口,准备接受数据后,再启动日志源节点flume将数据进行传送。
6. 测试
向日志文件中写入数据,在主控节点的控制台上会输出日志。因为还没有搭建kafka消息队列,所以此次接收到的数据就先写出到控制台上,如果需要对接kafka,可以等我下一篇博客更新。至此,flume搭建任务已完成
更多推荐
所有评论(0)