删除事件字段并在Logstash

时间:2015-04-28 09:53:53

标签: elasticsearch logstash logstash-configuration

使用Logstash,我想将文档索引到Elasticsearch中,并指定需要索引的文档的类型,id等。如何在我的配置中指定那些而不在我的文档中保留无用的字段?

示例:我想指定用于插入的ID:

input {
    stdin {
        codec => json {}
    }
}

output {
    elasticsearch { document_id => "%{[id]}" }
}

这将使用id id 在Elasticsearch中插入文档,但文档将在映射中保留冗余字段“id”。我怎么能避免这种情况?

我想添加

filter{ mutate { remove_field => "%{[id]}"} }
在配置中

,但该字段已删除,因此无法用作 document_id ...

1 个答案:

答案 0 :(得分:4)

现在这是不可能的。 Logstash 1.5引入了一个@metadata字段,其内容不包含在最终发送到输出的内容中,因此您可以创建[@metadata] [id]字段并在输出中引用该字段,

output {
    elasticsearch { document_id => "%{[@metadata][id]}" }
}

没有该字段污染索引到Elasticsearch的消息有效负载。请参阅@metadata documentation