Logstash多次索引文件



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

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

进程在t2上运行需要很长时间。微(~ 1天)。

我使用的配置是:

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的文件都不同。

感谢收到任何建议!

s3输入非常脆弱。它记录最后一个文件被处理的时间,因此共享相同时间戳的任何文件都不会被处理,并且多个logstash实例不能从同一个bucket中读取。正如您所看到的,在确定要处理哪些文件时,它的速度也非常慢(这在很大程度上要归咎于amazon)。

s3只适用于我使用单个logstash读取文件,然后删除(或备份到另一个桶/文件夹)的文件,以保持原始桶尽可能空,然后设置sincedb_path为/dev/null。

相关内容

  • 没有找到相关文章

最新更新