使用Logstash重写Elasticsearch字段中的_version元数据

时间:2018-10-05 14:40:33

标签: elasticsearch logstash

我正在使用ELK-Stack导入CSV文件。每次导入CSV文件时,文档的“ _version”字段都会增加,这与预期的一样。但是,由于_version字段是元数据字段,因此ELK不会对其进行索引。因此,该字段不可搜索,无法在仪表板中使用。

我创建了第二个logstash配置,其中输入和输出均为Elasticsearch。

过滤器配置:

filter {
mutate {
   add_field => {"Version" => "{[@metadata][_version]}"}
 }
}

输入配置:

input {
elasticsearch {
  hosts => ["localhost:9200"]
  index => "test_csv"
  query => '{"query":{"match_all" : {}}}'
  size => 1000
  scroll => "1s"
  docinfo => true
  docinfo_fields => ["_index", "_type", "_id", "_version"]
  schedule => "/1 * * * *" 
}
}

我无法从_version字段获取值。 Kibana中的输出如下:

Version         {[@metadata][_version]}

如果我用_id或_index替换过滤器中的_version字段,则会得到信息。

关于如何从_version字段中获取价值的任何想法?对此事的任何想法都受到高度赞赏。

Chloe

1 个答案:

答案 0 :(得分:0)

对于6.4.2版,以下对我有用:

filter {
     mutate {  
         add_field => {"Version" => "%{[@version]}"} 
     }
}