多个Agent的数据汇聚到同一个Agent
我这里是用本机模拟此架构,三个日志收集Flume Agent节点和一个日志Flume Collector节点
Agent1节点的flume.conf配置
|
|
Agent2节点的flume.conf配置
|
|
Agent3节点的flume.conf配置
|
|
Collector节点的flume_collect.conf配置
|
|
注意
这里需要注意一下sources和sinks的配置,我们在三个Agent节点都指定了sinks的hostname=10.10.1.23,但是Collector节点指定的sources的bind=10.10.1.23,这两个参数需要注意下,我开始的时候就配置错了,在sinks使用的bind=10.10.1.23,而没有使用hostname参数,Flume启动的时候就会提示”java.lang.IllegalStateException: No hostname specified”这个错误,后来查了一下官网的配置,发现是我自己把sources和sinks的绑定主机的参数搞混了
- sources使用的是bind(意思是监听主机)
- sinks使用的是hostname(意思是传输数据的主机)
分别启动Collector和三个Agent节点
|
|
启动三个Agent节点分别会看到如下输出信息
|
|
|
|
|
|
我们会看到每个Agent实际上是启动了一个NettyServer进行通信,三个Agent的启动log都会在本机IP:10.10.1.23上开启一个端口号与Collector的端口号41414进行通信
|
|
我们在分别查询一下当前flume的所有进程和上面对应的三个端口号,会发现50791, 50797, 50822这三个端口号正如上面所说的是Agent1 -> AgentX, Agent2 -> AgentX, Agent3 -> AgentX的通信端口
|
|
|
|
验证结果
这时候我们只要在system.log, install.log, command.log中产生任何日志,都会输出对应的日志文件到/Users/yunyu/Downloads/sinkout/路径
参考文章: