我的logstash配置中有两个(kafka)输入插件。每个输入插件都配置为侦听不同的kafka代理。 我想在消息中包含一些字段,这些字段代表哪个输入插件生成了消息。 我希望能够在输入定义中包含一个硬编码字段,例如“ input = kafka1”,“ input = kafka2”等。 我认为我不能使用mutate过滤器,因为到那时,我还不知道消息来自何处?
答案 0 :(得分:1)
在输入中使用tags
选项。
input {
kafka {
*** your first input config ***
tags => ["kafka1"]
}
kafka {
*** your second config ***
tags => ["kafka2"]
}
}
然后,您可以使用这些标签在filter
块中进行过滤。
filter {
if "kafka1" in [tags] {
filters for kafka 1 tag
}
if "kafka2" in [tags] {
filters for kafka 2 tag
}
}
您可以在output
块中使用相同的条件。
您还可以使用multiple pipelines并为每个kafka经纪人设置不同的管道。