如何阻止Flume从其收到的syslog事件中删除日期和主机名?

时间:2016-11-30 19:46:29

标签: apache-kafka flume syslog

这是我从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

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用Host Interceptor向Flume事件添加主机名,然后通过执行一些Morphline魔术(将主机字符串重新添加到每一行)或路径替换来使用额外标头写信HDFS时。 (%{headername}字符串将在HDFS路径中插入)