Logstash每小时只更新一次S3访问日志索引

我使用Logstash和AWS Elasticsearch服务的组合来索引S3访问日志。

日志收集在S3存储桶中,使用Logstash S3inputfilter处理,在处理完成后重命名,然后存档到另一个存储桶中。 我使用这种方法,以便Logstash在每次轮换中必须处理的访问日志文件的数量尽可能小。

但是,日志没有被实时处理。 当我查看Kibana或查询Elasticseach时,我看到的最近的日志条目将是前一小时的最新日志条目。 我从来没有看到<1小时前的日志条目。

我无法看到s3inputconfiguration选项中的任何内容来控制此行为。 有一个间隔configuration选项,我已经设置为120秒。 这应该指示Logstash每隔2分钟轮询包含日志的S3存储桶。

我也使用这个Logstash系统处理来自各种服务器的系统日志input,这些服务器实时处理日志。

这是Logstash中S3inputfilter特有的东西吗?

这个问题似乎来自于S3生成访问日志的方式,而不是Elasticsearch或Logstash。

根据:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html

服务器访问日志logging以尽力而为的方式提供。 对于正确configuration的日志logging的大多数请求将导致提供的日志logging,并且大多数日志logging将在它们被logging的几个小时内被传送。

从我可以看到,从查看包含目标S3存储桶中的日志的实际文件,您将永远不会看到<1小时前的日志条目。

您将看到正好1小时的日志条目,这就是说您看到的条目直到小时标记。

因此,Elasticsearch和Logstash都按照devise执行,问题在于AWS S3。