如何排除"指纹"来自elasticsearch的字段

时间:2015-07-23 12:45:15

标签: elasticsearch logstash

我正在使用Logstash中的fingerprint过滤器创建指纹字段,我在document_id输出中设置为elasticsearch

配置如下:

filter {
  fingerprint {
    method => "SHA1"
    key => "KEY"
  }
}

output {
  elasticsearch {
    host => localhost
    document_id => "%{fingerprint}"
  }
}

这导致Elasticsearch中的冗余fingerprint字段与_id的值相同。如何防止将此冗余字段保存到ES?

2 个答案:

答案 0 :(得分:6)

如果您使用的是logstash 1.5或更高版本,则可以将字段放在metadata中,然后不会将其作为常规消息的一部分发送到elasticsearch。

实施例

filter {
  fingerprint {
    ...
    target => "[@metadata][fingerprint]"
  }
}

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

答案 1 :(得分:-1)

您可以将document_id设置为fingerprint target

filter {
  fingerprint {
    method => "SHA1"
    key => "KEY"
    target => "document_id"
  }
}