首页 > 解决方案 > Logstash 如果字段包含值

问题描述

我正在使用 Filebeat 将日志转发到 Logstash。例如,我的文件名中包含“v2”:

C:\logs\Engine\v2.latest.log

我想对这些文件执行不同的 grok。我尝试了以下两种方法:

filter{
   if "v2" in [filename] {
          grok {
            .....
            .....
          }

   }
 }

或者

    filter{
           if [filename] =~ /v2/ {
                  grok {
                    .....
                    .....
                  }

           }
     }

标签: logstashlogstash-grok

解决方案


好吧,我的问题是“文件名”字段是在过滤器之后生成的。所以我的语法是正确的,但它根本没有捕捉到任何东西,因为它不存在。但是,从 6.7 版开始,他们添加了一个“log.file.path”字段,这是我之前生成的“文件名”字段。


推荐阅读