【发布时间】:2019-02-12 07:12:24
【问题描述】:
我正在使用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+
但我不确定它在配置中的位置。
谢谢!
【问题讨论】:
-
考虑更新问题以澄清它。举一个你期望的输入和输出的例子。你想如何“使用正则表达式”?在 grok 过滤器中?
-
当然,让我用一个更清晰的例子来澄清这一点
-
写得更详细了,希望对您有所帮助:)
标签: elasticsearch logstash elastic-stack logstash-grok logstash-configuration