【问题标题】:Remove an event field and reference it in Logstash删除一个事件字段并在 Logstash 中引用它
【发布时间】:2015-04-28 09:53:53
【问题描述】:

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

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

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

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

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

我想添加

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

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

【问题讨论】:

  • 有人能解释一下为什么我在这个问题上得了-1,所以我可以改进它吗?

标签: elasticsearch logstash logstash-configuration


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-14
    • 2016-03-13
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    相关资源
    最近更新 更多