我正在使用 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
。