CentOS7搭建Flume服务器

14 篇文章 0 订阅
13 篇文章 0 订阅

Flume的官网是http://flume.apache.org,官网提供了丰富实用的技术资料。另外还有一个中文版的文档https://flume.liyifeng.org/

一、下载软件

网站https://mirrors.tuna.tsinghua.edu.cn/apache/flume提供了各个版本的下载。

cd /var/softwares
wget 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/job
vi conf/job/netcat-flume-logger.conf
# example.conf: 一个单节点的 Flume 实例配置

# 配置Agent a1各个组件的名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 配置Agent a1的source r1的属性
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# 配置Agent a1的sink k1的属性
a1.sinks.k1.type = logger

# 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 把source和sink绑定到channel上
a1.sources.r1.channels = c1
a1.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 = r1
a1.sinks = k1
a1.channels = c1

# 配置Agent a1的source r1的属性
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /tmp/logs/test01.log
a1.sources.r1.shell = /bin/bash -c

# 配置Agent a1的sink k1的属性
a1.sinks.k1.type = file_roll
a1.sinks.k1.sink.directory = /tmp/logs

# 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 把source和sink绑定到channel上
a1.sources.r1.channels = c1
a1.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秒重新创建一个,不管有没有数据。我们可以查看有数据的文件,能够看到我们追加的内容。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值