logstash索引文件多次?

时间:2016-06-25 14:21:54

标签: elasticsearch logstash

我正在使用logstash(v2.3.3-1)索引从S3到AWS ElasticSearch的大约800,000个文档,有些文档被索引2到3次,而不是只有一次。

文件是静态的(没有更新或触摸它们)并且它们非常小(每个大约是1.1KB)。

该过程需要很长时间才能在t2.micro(~1day)上运行。

我正在使用的配置是:

input {

s3 {
bucket => "$BUCKETNAME"
codec => "json"
region => "$REGION"
access_key_id => '$KEY'
secret_access_key => '$KEY'
type => 's3'
}
}

filter {
  if [type] == "s3" {
    metrics {
      meter => "events"
      add_tag => "metric"
    }
  }
}

output {

if "metric" in [tags] {
    stdout { codec => line {
        format => "rate: %{[events][rate_1m]}"
           }
      }
} else {
     amazon_es {
      hosts => [$HOST]
      region => "$REGION"
      index => "$INDEXNAME"
      aws_access_key_id => '$KEY'
      aws_secret_access_key => '$KEY'
      document_type => "$TYPE"
     }

     stdout { codec => rubydebug }
}
}

我现在运行了两次同样的问题(进入不同的ES索引),被索引的文件> 1x每次都不同。

感激不尽的任何建议!

1 个答案:

答案 0 :(得分:1)

s3输入非常脆弱。它记录最后一个文件的处理时间,因此不会处理共享相同时间戳的任何文件,并且无法从同一个桶读取多个logstash实例。正如你所看到的那样,确定要处理哪些文件的速度也很慢(这里有很大一部分责任归于亚马逊)。

当我使用单个logstash读取文件,然后删除(或备份到另一个存储桶/文件夹)文件以使原始存储桶尽可能为空时, s3仅适用于我,然后将sincedb_path设置为/ dev /空。