当前位置: 首页 > news >正文

Apache Flume(5):多个agent模型

可以将多个Flume agent 程序连接在一起,其中一个agent的sink将数据发送到另一个agent的source。Avro文件格式是使用Flume通过网络发送数据的标准方法。

从多个Web服务器收集日志,发送到一个或多个集中处理的agent,之后再发往日志存储中心:

同样的日志发送到不同的目的地:

将前面两个示例组合应用

第一个agent从Netcat接收数据,增加一个channel和sink,将这个sink发送到第二个agent

第二个agent在监控文件变化的同时监控从sink发送来的事件,最终输出到控制台

使用Avro Sink,必须设置以下属性

属性名默认值Description
channel
typeavro
hostname绑定的主机名或者IP地址
port监听端口

使用Avro Source,必须设置以下属性

属性名默认值说明
channels
typeavro
bind绑定的主机名或者IP地址
port监听端口

添加agent1配置文件

# 定义agent名称为a1
# 设置3个组件的名称
a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1 c2# 配置source类型为NetCat,监听地址为本机,端口为44444
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444# 配置sink1类型为Logger
a1.sinks.k1.type = logger
# 配置sink2类型为Avro
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = 192.168.85.132
a1.sinks.k2.port = 55555# 配置channel类型为内存,内存队列最大容量为1000,一个事务中从source接收的Events数量或者发送给sink的Events数量最大为100
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100a1.channels.c2.type = memory
a1.channels.c2.capacity = 1000
a1.channels.c2.transactionCapacity = 100# 将source和sink绑定到channel上
a1.sources.r1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c2

添加agent2配置文件

# 定义agent名称为a2
# 设置3个组件的名称
a2.sources = r1 r2
a2.sinks = k1
a2.channels = c1# 配置source类型为exec,命令为 tail -F app.log
a2.sources.r1.type = exec
a2.sources.r1.command = tail -F app.log# 配置source类型为avro
a2.sources.r2.type = avro
a2.sources.r2.bind = 192.168.85.132
a2.sources.r2.port = 55555# 配置sink类型为Logger
a2.sinks.k1.type = logger# 配置channel类型为内存,内存队列最大容量为1000,一个事务中从source接收的Events数量或者发送给sink的Events数量最大为100
a2.channels.c1.type = memory
a2.channels.c1.capacity = 1000
a2.channels.c1.transactionCapacity = 100# 将source和sink绑定到channel上
a2.sources.r1.channels = c1
a2.sources.r2.channels = c1
a2.sinks.k1.channel = c1

启动agent1和agent2

flume-ng agent -n a1 -c conf -f agent1.conf
flume-ng agent -n a2 -c conf -f agent2.conf

先往app.log中写入日志,可以在agent2看到最新数据

打开Netcat连接到44444,发送数据,可以同时在agent1和agent2看到最新数据。

http://www.lryc.cn/news/263764.html

相关文章:

  • 如何在Ubuntu系统中安装VNC并结合内网穿透实现远程访问桌面
  • JaCoCo 统计度量
  • 我们经常使用的AI技术
  • 静态路由及动态路由
  • MySQL——表的增删查改
  • javascript_1
  • 【ranger】CDP环境 更新 ranger 权限策略会发生低概率丢失权限策略的解决方法
  • Python安装及配置
  • Instagram 外贸产品推广技巧
  • 5款实用的小工具,让你的日常生活多姿多彩
  • 【改进YOLOv8】磁瓦缺陷分类系统:改进LSKNet骨干网络的YOLOv8
  • Linux-VRRP
  • 使用Axure的中继器的交互动作解决增删改查h
  • 华为云Stack 8.X 流量模型分析(一)
  • SpringBoot已经禁掉了循环依赖!
  • 【.NET Core】反射(Reflection)详解(一)
  • jenkins入门
  • HarmonyOS --- 首页(新新新手版,高手误入)
  • springboot升级到3.2导致mybatis-plus启动报错
  • 浏览器原理篇—渲染原理
  • idea安装
  • 用Flask搭建简单的web模型部署服务
  • PCL 点云匹配 3 之 (非线性迭代点云匹配)lM-ICP
  • 【C语言】SCU安全项目2-BufBomb
  • C++第一讲之初入C++
  • 如何实现公网访问本地内网搭建的WBO白板远程协作办公【内网穿透】
  • js知识点1:防抖节流
  • 虚拟机下Ubuntu上网设置
  • Unity3d C#利用Editor编辑器拓展实现配置UI背景样式一键设置UI背景样式功能(含源码)
  • 【微服务】服务间调用