这是我从linux rsyslog发送到flume的示例日志条目:
Nov 30 09:16:12 server1 achaos: Sep 1 07:45:53 cent65-template testLog[13942]: [DEBUG] [UUID= MAX= MIN=] ENTERED findByMin for 999
这是水槽发送给Kafka或写入磁盘的内容:
achaos: Sep 1 07:45:53 cent65-template testLog[13942]: [DEBUG] [UUID= MAX= MIN=] ENTERED findByMin for 999
如您所见,事件开始时的日期和主机名已消失。无论syslog源是什么,都会发生这种情况。
这是我的水槽配置。非常简单:
a1.sources = source1
a1.channels = channel1
a1.sinks = sink1
a1.sources.source1.type = syslogudp
a1.sources.source1.port = 514
a1.sources.source1.host = 10.10.2.18
a1.sources.source1.channels = channel1
a1.sinks.sink1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.sink1.topic = firewall
a1.sinks.sink1.brokerList = 10.10.2.1:6667,10.10.2.2:6667
a1.sinks.sink1.channel = channel1
a1.channels.channel1.type = memory
a1.channels.channel1.capacity = 10000000
a1.channels.channel1.transactionCapacity = 1000
从广泛的谷歌搜索,似乎问题与水槽标题有关。我不明白这种行为对我有什么帮助。我没有找到任何似乎做我想要的样本配置。
我需要做些什么改变才能将一些感觉变成Flume的厚头?
仅供参考:数据来自Flume1 - >卡夫卡 - > Flume2 - > HDFS
谢谢!
答案 0 :(得分:0)
您可以使用Host Interceptor向Flume事件添加主机名,然后通过执行一些Morphline魔术(将主机字符串重新添加到每一行)或路径替换来使用额外标头写信HDFS时。 (%{headername}
字符串将在HDFS路径中插入)