我正在使用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)\b(?!-)\S+
但是我不确定它在配置中适合什么地方。
谢谢!
答案 0 :(得分:1)
好的,所以我想出了如果有人偶然发现类似问题, 我基本上使用了gsub过滤器,而不是过滤器和grok, 这会将所有匹配的文本替换为争论3中传递的文本
filter {
mutate {
rename => { "[@metadata][kafka]" => "kafka"}
gsub => [ "[@metadata][index_prefix]", "ingest-", "" ]
}
}