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

gudnpqoy  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(371)

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

这是flume发送到kafka或写入磁盘的内容:

achaos: Sep 1 07:45:53 cent65-template testLog[13942]: [DEBUG] [UUID= MAX= MIN=] ENTERED findByMin for 999

如您所见,事件开始时的日期和主机名都消失了。无论系统日志源是什么,都会发生这种情况。
这是我的Flume配置。非常简单:

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头有关。我不明白这种行为怎么可能对我有帮助。我还没有找到任何样本配置,似乎做什么我想要的。
我需要做什么样的改变才能让flume的厚脑袋变得有意义?
仅供参考:数据来自flume1->kafka->flume2->hdfs
谢谢!

kkih6yb8

kkih6yb81#

您可以使用主机拦截器将主机名添加到flume事件中,然后在写入hdfs时通过执行morphline魔术(将主机字符串重新添加到每一行)或路径替换来使用额外的头( %{headername} 字符串将在hdfs路径中插入)

相关问题