Flume实战三,将A服务器日志实时采集到B服务器中

架构图:
在这里插入图片描述
技术选型:
exec source + memory channel + avro sink
avro source + memory channel + logger sink

1)server A 数据收集端

在cd $FLUME_HOME/conf
vim exec-memory-avro.conf

    #exec-memory-avro.conf内容
    # a1可以看做是flume服务的名称,每个flume都由sources、channels和sinks三部分组成
    # sources可以看做是数据源头、channels是中间转存的渠道、sinks是数据后面的去向
    exec-memory-avro.sources = exec-source
    exec-memory-avro.sinks = avro-sink
    exec-memory-avro.channels = memory-channel
    
    # 配置Source
    exec-memory-avro.sources.exec-source.type = exec
    exec-memory-avro.sources.exec-source.command = tail -F /data/a.txt
    exec-memory-avro.sources.exec-source.shell = /bin/sh -c
    #exec-memory-avro.sources.exec-source.command = for i in /path/*.txt; do cat $i; done
    
    # 配置Channel
    exec-memory-avro.channels.memory-channel.type = memory
    
    # 配置Sinks
    exec-memory-avro.sinks.avro-sink.type = avro
    exec-memory-avro.sinks.avro-sink.hostname = 0.0.0.0
    exec-memory-avro.sinks.avro-sink.port = 44444
    
    # 绑定
    exec-memory-avro.sources.exec-source.channels = memory-channel
    exec-memory-avro.sinks.avro-sink.channel = memory-channel

2)server B 数据存储端

在cd $FLUME_HOME/conf
vim avro-memory-logger.conf

    # avro-memory-logger.conf内容
    # a1可以看做是flume服务的名称,每个flume都由sources、channels和sinks三部分组成
    # sources可以看做是数据源头、channels是中间转存的渠道、sinks是数据后面的去向
    avro-memory-logger.sources = avro-source
    avro-memory-logger.sinks = logger-sink
    avro-memory-logger.channels = avro-memory-logger-channel
    
    # 配置Source
    #由于我们是在本机测试的,所以port设置的是127.0.0.1
    avro-memory-logger.sources.avro-source.type = avro
    avro-memory-logger.sources.avro-source.bind = 127.0.0.1
    avro-memory-logger.sources.avro-source.port = 44444
    
    # 配置Channel
    avro-memory-logger.channels.avro-memory-logger-channel.type = memory
    
    # 配置Sinks
    avro-memory-logger.sinks.logger-sink.type = logger
    
    # 绑定
    avro-memory-logger.sources.avro-source.channels = avro-memory-logger-channel
    avro-memory-logger.sinks.avro-sink.channel = avro-memory-logger-channel

注意:

需要先启动avro-source端

    $FLUME_HOME/bin/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

再启动exec-source端

    $FLUME_HOME/bin/flume-ng agent \
    --name exec-memory-avro \
    --conf $FLUME_HOME/conf \
    --conf-file $FLUME_HOME/conf/exec-memory-logger.conf \
    -Dflume.root.logger=INFO,console

日志收集过程:
1)机器A上监控一个文件,当我们访问主站时会有用户行为日志记录到access.log中
2)exec source监控数据,监控到数据后通过channel传输到avro sink指定hostname和port
3)由另一个agent的avro source监控hostname和port,数据后通过channel传递给控制台输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛!Destiny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值