gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:28:15 26 4
gpt4 key购买 nike

我正在使用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" }

}
}


kafka主题的格式
摄取abc&
摄取xyz

我使用以下过滤器通过设置[@metadata] [index_prefix]字段来指定ES索引应在哪里结束。
filter {
mutate {
add_field => {
"[@metadata][index_prefix]" => "%{[@metadata][kafka][topic]}"
}
remove_field => ["[kafka][partition]", "[kafka][key]"]
}
if [message] {
mutate {
add_field => { "[pipeline_metadata][normalizer][original_raw_message]" => "%{message}" }
}
}
}

所以我的es索引最终被
摄取abc-YYYY-MM-DD
摄取xyz-YYYY-MM-DD

如何将index_prefix设置为
改为abc-YYYY-MM-DD和xyz-YYYY-MM-DD
通过摆脱commong ingest-前缀

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

谢谢!

最佳答案

好的,所以我弄清楚了,如果有人偶然发现类似问题,
我基本上使用了gsub过滤器,而不是过滤器和grok,
这会将所有匹配的文本替换为arguments3中传递的文本

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

关于elasticsearch - Logstash(使用正则表达式的字段的一部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com