elasticsearch - 删除事件字段并在 Logstash 中引用它

标签 elasticsearch logstash logstash-configuration

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

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

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

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

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

我想添加

filter{ mutate { remove_field => "%{[id]}"} }

在配置中,但该字段已被删除,因此不能用作document_id...

最佳答案

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

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

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

关于elasticsearch - 删除事件字段并在 Logstash 中引用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916090/

相关文章:

regex - Elasticsearch模式正则表达式以

ElasticSearch 模板

elasticsearch - 如何将Logstash数据导出到外部数据库

java - jhipster 应用程序中 application-prod.yml 和 application-dev.yml 之间的区别

mongodb - 使用 Logstash 将数据从 mongoDB 同步到 elasticsearch

elasticsearch - 如何使用logstash自动在弹性中插入,更新和删除

elasticsearch - 使用Docker进行 Elasticsearch

logging - logstash/kibana中的子查询或类似查询?

elasticsearch - 如何使用if-else条件进行 Elasticsearch ,根据输出部分中logstash conf中的名称过滤kafka主题

elasticsearch - 在LogStash中写入@timestamp