【问题标题】:Is there a way to determine logstash input plugin from message?有没有办法从消息中确定logstash输入插件?
【发布时间】:2020-10-15 14:59:32
【问题描述】:

我的 logstash 配置中有两个 (kafka) 输入插件。每个输入插件都配置为侦听不同的 kafka 代理。 我想在消息中包含一些表示哪个输入插件生成消息的字段。 我希望能够在我的输入定义中包含一个硬编码字段,如“input=kafka1”、“input=kafka2”等。 我不认为我可以使用 mutate 过滤器,因为到那时,我不知道消息来自哪里?

【问题讨论】:

    标签: apache-kafka logstash


    【解决方案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 代理设置不同的管道。

    【讨论】:

    • 谢谢!因此,如果我想添加标签以便稍后在 kibana 中查询它,我是否需要使用 mutate 过滤器添加一个字段,还是已经添加了?
    • 如果您在输入中添加tags,则tags字段将在您的文档中,您可以稍后在kibana上使用它进行过滤,无需添加其他字段。
    猜你喜欢
    • 2023-03-22
    • 2021-11-24
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2021-08-19
    • 2019-08-18
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多