【发布时间】:2016-11-26 18:10:22
【问题描述】:
我想在 Logstash 中处理时将 elasticsearch 索引名称添加为事件中的字段。这应该是非常简单的,但索引名称不会被打印出来。这是完整的 Logstash 配置。
input {
elasticsearch {
hosts => "elasticsearch.example.com"
index => "*-logs"
}
}
filter {
mutate {
add_field => {
"log_source" => "%{[@metadata][_index]}"
}
}
}
output {
elasticsearch {
index => "logstash-%{+YYYY.MM}"
}
}
这将导致log_source 被设置为%{[@metadata][_index]} 而不是索引的实际名称。我已经尝试过使用 _id 并且不使用下划线,但它始终只会输出引用而不是值。
仅执行%{[@metadata]} 会导致 Logstash 崩溃,错误是它试图错误地访问列表,因此正在设置 [@metadata],但似乎缺少索引或任何值。
有没有人有另一种方法来为事件分配索引名称?
我正在使用 Logstash 和 Elasticsearch 的 5.0.1。
【问题讨论】:
标签: elasticsearch logstash logstash-configuration