【问题标题】:Logstash: how to use filter to match filename when using s3Logstash:使用 s3 时如何使用过滤器匹配文件名
【发布时间】:2019-09-09 23:09:05
【问题描述】:

我是 Logstash 的新手。我有一些日志存储在 AWS S3 中,我可以将它们导入到 logstash。我的问题是:是否可以使用 grok 过滤器根据文件名添加标签?我尝试使用:

grok { 
    match => {"path" => "%{GREEDYDATA}/%{GREEDYDATA:bitcoin}.err.log"}
    add_tag => ["bitcoin_err"]
    }

这不起作用。我猜原因是“路径”仅适用于文件输入。

这是我的 S3 存储桶的结构:

my_buckets
    ----A
        ----2014-07-02
            ----a.log
            ----b.log
    ----B
        ----2014-07-02
            ----a.log
            ----b.log

我正在使用这个输入配置:

s3 {
    bucket => "my_buckets"
    region => "us-west-1"
    credentials => ["XXXXXX","XXXXXXX"]
    }

我想要的是,对于任何日志消息:

  • “A/2014-07-02/a.log”:它们将有标签 ["A","a"]。

  • “A/2014-07-02/b.log”:它们将有标签 ["A","b"]。

  • “B/2014-07-02/a.log”:它们将有标签 ["B","a"]。

  • “B/2014-07-02/b.log”:它们将有标签 ["B","b"]。

对不起我的英语......

【问题讨论】:

    标签: amazon-s3 logstash logstash-grok


    【解决方案1】:

    S3 输入中没有“路径”。我将 S3 存储安装在我的服务器上并使用文件输入。通过文件输入,我现在可以使用过滤器来匹配路径。

    【讨论】:

    • 想知道您是否可以详细说明您是如何做到这一点的?我正在尝试解决类似的问题,我在文件夹中按小时在文件夹中汇总日志,因此我需要能够遍历文件结构以回填数据
    • 我停止了这个工作。我无法再访问该服务器了。我的服务器上只有我的代码。如果你能在这里提供一些例子,我可以帮助你
    【解决方案2】:

    使用 Logstash 6.0.1,我能够从 S3 获取每个文件的密钥。在您的情况下,您可以在过滤器中使用此键(或路径)来添加标签。

    例子:

    input {
        s3 {
            bucket => "<bucket-name>"
            prefix => "<prefix>"
        }
    }
    
    filter {
        mutate {
            add_field => {
                "file" => "%{[@metadata][s3][key]}"
            }
        }
        ...
    }
    

    在过滤器中使用上面的 file 字段来添加标签。

    参考:

    在this issue中寻找eye8的答案

    【讨论】:

      【解决方案3】:

      如果你想使用基于文件名的标签,我认为这会起作用(我没有测试过):

      filter {
        grok {
          match => [ "path", "%{GREEDYDATA:content}"]   
        }     
        mutate {
          add_tag => ["content"]
        }
      }
      

      “content”标签将是文件名,现在由您来修改模式以使用文件名的特定部分创建不同的标签。

      【讨论】:

      • 它不工作。这只会为所有文件添加标签
      • 我不确定 s3 输入是否会有“路径”字段。有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多