如何使用 S3 输入将 AWS ELB 访问日志添加到 logstash?

如何使用 S3 输入将 AWS ELB 访问日志添加到 logstash?

我正在使用 ELK 堆栈进行服务器监控。我的应用程序的访问日志来自 AWS ELB,存储在 AWS S3 中。我尝试使用以下输入将它们添加到 logstash:

input {
  s3 {
    access_key_id => "my_id"
    secret_access_key => "my_key"
    bucket => "my_bucket"
    region => "region"
    prefix => "AWSLogs/828557649675/elasticloadbalancing/eu-west-1/**/**/**/*.log"
    type => "elb"
  }
}

但是没有任何东西添加到 logstash,我做错了什么?还有其他方法可以将它们添加到 logstash 吗?过滤器和输出部分似乎没问题,所以我没有发布它们。

注:我使用的是logstash 2.1版本

答案1

似乎前缀应该是,因为插件不支持globs(*):

 prefix => "AWSLogs/828557649675/elasticloadbalancing/eu-west-1/"

完整示例:

input {
  s3 {
    access_key_id => "my_id"
    secret_access_key => "my_key"
    bucket => "my_bucket"
    region => "region"
    prefix => "AWSLogs/828557649675/elasticloadbalancing/eu-west-1/"
  }
}

答案2

您能添加sincedb_path => "/tmp/alb-sincedb"并保留类似的前缀prefix => "AWSLogs/"吗?

另外,如果您安装最新版本的 input s3 gem,那就太好了。我相信我看到了那里与使用前缀迭代存储桶内的对象相关的更改,方法是使用 V2 资源 API。我当前的版本是logstash-input-s3-3.1.2.gem

相关内容