本文共 2215 字,大约阅读时间需要 7 分钟。
Flume的官网是,官网提供了丰富实用的技术资料。另外还有一个中文版的文档。
一、下载软件
网站提供了各个版本的下载。
cd /var/softwareswget https://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz
二、解压
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /var/app
三、创建配置文件
cd /var/app/apache-flume-1.9.0-bin/mkdir -p conf/jobvi conf/job/netcat-flume-logger.conf
# example.conf: 一个单节点的 Flume 实例配置# 配置Agent a1各个组件的名称a1.sources = r1a1.sinks = k1a1.channels = c1# 配置Agent a1的source r1的属性a1.sources.r1.type = netcata1.sources.r1.bind = localhosta1.sources.r1.port = 44444# 配置Agent a1的sink k1的属性a1.sinks.k1.type = logger# 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的a1.channels.c1.type = memorya1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 100# 把source和sink绑定到channel上a1.sources.r1.channels = c1a1.sinks.k1.channel = c1
这个配置文件就是从官网和中文网复制下来的一个agent的配置文件,它描述了一个日志收集逻辑。即从本地44444端口获取数据,然后在控制台打印出来,如果端口不断输入数据,Flume也会不断进行收集和输出。因为Flume就是一个流式日志收集框架。
四、测试
1. 启动一个agent
cd /var/app/apache-flume-1.9.0-bin/bin/flume-ng agent -n a1 -c conf -f conf/job/netcat-flume-logger.conf -Dflume.root.logger=INFO,console
此时处于阻塞状态,agent正在监听44444端口,等待数据。
2. 另外打开一个终端,启动netcat。不过要先安装netcat。
nc localhost 44444
然后发送数据,在agent那边就可以看到新的日志输出。
五、进阶测试
测试的套路就是修改或者另建一个配置文件,按照官网给定的规则配置source、channel、sink和bind,source是输入配置,就是数据来源,channel是缓存部分,sink是数据输出目标,bind则是channel跟输入与输出线路的绑定关系。这跟logstash的配置很像。
我们这里的测试,就是把数据源改成监控本地日志文件的追加内容,然后输出到另外的本地文件序列中。这里的本地日志文件内容增加我们用echo来模拟。
vi conf/job/file-flume-file.conf
# example.conf: 一个单节点的 Flume 实例配置# 配置Agent a1各个组件的名称a1.sources = r1a1.sinks = k1a1.channels = c1# 配置Agent a1的source r1的属性a1.sources.r1.type = execa1.sources.r1.command = tail -F /tmp/logs/test01.loga1.sources.r1.shell = /bin/bash -c# 配置Agent a1的sink k1的属性a1.sinks.k1.type = file_rolla1.sinks.k1.sink.directory = /tmp/logs# 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的a1.channels.c1.type = memorya1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 100# 把source和sink绑定到channel上a1.sources.r1.channels = c1a1.sinks.k1.channel = c1
启动agent。
bin/flume-ng agent -n a1 -c conf -f conf/job/file-flume-file.conf
我们用以下命令不断改变向本地文件追加内容。
echo hello world >> /tmp/logs/test01.log
在/tmp/logs文件夹下会多出很多一时间戳命名的文件。这就是我们的输出文件。这些文件会定时30秒重新创建一个,不管有没有数据。我们可以查看有数据的文件,能够看到我们追加的内容。
转载地址:https://blog.csdn.net/xxkalychen/article/details/117405250 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!