Logstash在S3存储桶内输入s3文件名

时间:2016-11-21 19:51:54

标签: amazon-web-services elasticsearch amazon-s3 logstash

我想将输入发送到logstash在S3上传的特定文件。

我有一个S3存储桶,并且想要指定文件名,以便只能将该特定的S3文件名作为Elasticsearch的输入而不是整个存储桶的内容。

知道如何做到这一点。试图给出文件名,但没有工作。

我也未能找到类似的问题。

编辑..这是我正在使用的conf文件的输入。

输入 {

  s3 
{
    bucket => "logstashtestbucket1"
    access_key_id => "Key"
    secret_access_key => "SecretKey"
    region => "us-west-2"
}

}

1 个答案:

答案 0 :(得分:0)

当您只想使用logstash从s3加载一个对象时,请指定prefix及其中对象的完整路径。

如果您的文件是logstashtestbucket1,并且您的对象具有路径“ a / b / c.txt”和“ a / b / d.txt”,而您只想加载“ a / b / c.txt”,则您的logstash输入将显示为:

a ← 2 3 3⍴⍳4
b ← 3 3 4⍴⍳5
f ← {⍺+⊂⍵}
g ← {⍺⍵}
⎕←(a f.g b) ≡ (↓[≢⍴a]a) ∘.{⊃ f/ ⍺ g¨ ⍵} (↓[1]b)
需要设置

input { s3 { bucket => "logstashtestbucket1" prefix => "a/b/c.txt" region => "us-west-2" watch_for_new_files => false } } 来告诉logstash加载已经存在的对象,然后退出。否则,它将等待带有该前缀的新对象到达,因此永远不会退出或进行任何工作。

经过logstash 7.6测试,watch_for_new_files自从至少logstash 2.x以来一直是一项功能。

我从配置块中删除了秘密,以防有人复制该引用而又不理解它。如果您未在EC2的instance profile中拥有权限,则请将您的机密信息放入环境变量中。