elasticsearch Logstash(使用正则表达式提取字段的部分),elasticsearch,logstash,elastic-stack,logstash-grok,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Grok,Logstash Configuration" /> elasticsearch Logstash(使用正则表达式提取字段的部分),elasticsearch,logstash,elastic-stack,logstash-grok,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Grok,Logstash Configuration" />

elasticsearch Logstash(使用正则表达式提取字段的部分)

elasticsearch Logstash(使用正则表达式提取字段的部分),elasticsearch,logstash,elastic-stack,logstash-grok,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Grok,Logstash Configuration,我正在使用Kafka插件从Kafka向logstash输入数据 input { kafka { bootstrap_servers => ["{{ kafka_bootstrap_server }}"] codec => "json" group_id => "{{ kafka_consumer_group_id }}" auto_offset_reset => "earliest"

我正在使用Kafka插件从Kafka向logstash输入数据

input {
    kafka {
        bootstrap_servers => ["{{ kafka_bootstrap_server }}"]
        codec => "json"
        group_id => "{{ kafka_consumer_group_id }}"
        auto_offset_reset => "earliest"
        topics_pattern => ".*" <- This line ensures it reads from all kafka topics
        decorate_events => true
        add_field => { "[@metadata][label]" => "kafka-read" }

    }
}

因此,我的es索引最终是
摄取abc YYYY MM DD
摄取xyz YYYY MM DD

如何将索引前缀设置为 abc YYYY MM DD&xyz YYYY MM DD 通过去掉公共摄取前缀

匹配它的正则表达式是:
(?!ingest)\b(?)\S+
但我不确定它在配置中的位置


谢谢

好吧,我想如果有人遇到类似的问题, 我基本上使用了gsub过滤器,而不是过滤器和grok

这将用argument3中传递的文本替换任何匹配的文本

filter {
    mutate {
        rename => { "[@metadata][kafka]"  => "kafka"}
        gsub => [ "[@metadata][index_prefix]", "ingest-", "" ]
    }
}

考虑更新问题,澄清问题。给出一个你期望的输入和输出的例子。你想如何“使用正则表达式”?在grok过滤器中?当然,让我用一个更清晰的例子来澄清这一点,让它更详细,希望能有所帮助:)
filter {
    mutate {
        rename => { "[@metadata][kafka]"  => "kafka"}
        gsub => [ "[@metadata][index_prefix]", "ingest-", "" ]
    }
}