flume 多数据源

一:多一个数据源web

首先在dome/flume下新建一个叫app2的目录,编程

而后再app2目录下新建一个叫app2.cf内容以下:app

app1.cf负载均衡

agent1.sources=src1 src2dom

agent1.sinks=sin1tcp

agent1.channels=chn1测试

#src1spa

agent1.sources.src1.type=netcatorm

agent1.sources.src1.bind=192.168.208.128ip

agent1.sources.src1.port=6666

agent1.sources.src1.channels=chn1

 

#src2

agent1.sources.src2.type=syslogtcp

agent1.sources.src2.host=192.168.208.128

agent1.sources.src2.port=5140

agent1.sources.src2.channels=chn1

 

#channel

agent1.channels.chn1.type=memory

#

agent1.sinks.sin1.type=logger

agent1.sinks.sin1.channel=chn1

后面的一个东西是咱们把修改了,改为最简单的了

r.sh

flume-ng agent --conf-file app1.cf --name agent3 -Dflume.root.logger=INFO,console

咱们把服务启动起来

而后测试netcat

键入:telnet   0   6666

接着键入

telnet 192.168.208.128 6666

而后测试syslogtcp

键入:

logger neirong

便可

二:一个数据源对应多个channel,多个sink

1:怎么让一个数据源对应多个channel

A:数据源就一个,复制这个数据源给其它的channel

a1.sources = r1

a1.channels = c1 c2 c3

a1.source.r1.selector.type = replicating(这个是默认的)

a1.source.r1.channels = c1 c2 c3

a1.source.r1.selector.optional = c3

 

B:根据header把不一样的分布到不一样的channel上(针对channel的)

a1.sources = r1

a1.channels = c1 c2 c3 c4

a1.sources.r1.selector.type = multiplexing

a1.sources.r1.selector.header = state头部这个字段

a1.sources.r1.selector.mapping.CZ = c1头部state对应的值含有CZ

a1.sources.r1.selector.mapping.US = c2 c3

a1.sources.r1.selector.default = c4其他的

 

 

C:须要本身编程定制。

三个:多个数据源,多个channel,多个sink,咱们能够灵活的配置。

咱们还有sinkgroup,这个是用来负载均衡用的,可是没怎么经常使用。

a1.sinkgroups = g1

a1.sinkgroups.g1.sinks = k1 k2

a1.sinkgroups.g1.processor.type = load_balance

任意的到一个sink上。

下面这个是具备优先级的:

a1.sinkgroups = g1

a1.sinkgroups.g1.sinks = k1 k2

a1.sinkgroups.g1.processor.type = failover

a1.sinkgroups.g1.processor.priority.k1 = 5

a1.sinkgroups.g1.processor.priority.k2 = 10

a1.sinkgroups.g1.processor.maxpenalty = 10000

先到优先级高的,而后等优先级高的出问题后,才到优先级低的。

相关文章
相关标签/搜索