【问题标题】:Parse a log using Losgtash使用 Losgtash 解析日志
【发布时间】:2016-02-16 09:59:10
【问题描述】:

我正在使用 Logstash 来解析日志文件。示例日志行如下所示。

2011/08/10 09:51:34.450457,1.048908,tcp,213.200.244.217,47908,->,147.32.84.59,6881,S_RA,0,0,4,244,124,flow=Background-Established-cmpgw-CVUT

我在我的配置文件中使用了以下过滤器。

 grok {
       match => ["message","%{DATESTAMP:timestamp},%{BASE16FLOAT:value},%{WORD:protocol},%{IP:ip},%{NUMBER:port},%{GREEDYDATA:direction},%{IP:ip2},%{NUMBER:port2},%{WORD:status},%{NUMBER:port3},%{NUMBER:port4},%{NUMBER:port5},%{NUMBER:port6},%{NUMBER:port7},%{WORD:flow}" ]
    }

它适用于无错误的日志行。但是当我有如下一行时,它失败了。请注意,缺少第二个字段。

2011/08/10 09:51:34.450457,,tcp,213.200.244.217,47908,->,147.32.84.59,6881,S_RA,0,0,4,244,124,flow=Background-Established-cmpgw-CVUT

如果缺少值,我想在我的输出 Json 对象中放一个默认值。我该怎么做?

【问题讨论】:

    标签: logstash logstash-grok logstash-configuration


    【解决方案1】:

    (%{BASE16FLOAT:value})? 用于第二个字段以使其成为可选 - 即。正则表达式()? .

    即使第二个字段为空,grok 也会起作用。

    所以整个 grok 看起来像这样:

    %{DATESTAMP:timestamp},(%{BASE16FLOAT:value})?,%{WORD:protocol},%{IP:ip},%{NUMBER:port},%{GREEDYDATA:direction},%{IP:ip2},%{NUMBER:port2},%{WORD:status},%{NUMBER:port3},%{NUMBER:port4},%{NUMBER:port5},%{NUMBER:port6},%{NUMBER:port7},%{WORD:flow}
    

    【讨论】:

      【解决方案2】:

      在您的 conf 文件中使用它。现在,如果 value 字段为空,它将在响应中省略它。

      input {
         stdin{
         }
      }
      filter {
      
      grok {
             match => ["message","%{DATESTAMP:timestamp},%{DATA:value},%{WORD:protocol},%{IP:ip},%{NUMBER:port},%{GREEDYDATA:direction},%{IP:ip2},%{NUMBER:port2},%{WORD:status},%{NUMBER:port3},%{NUMBER:port4},%{NUMBER:port5},%{NUMBER:port6},%{NUMBER:port7},%{WORD:flow}" ]
          }
      
      }
      output {
        stdout {
              codec => rubydebug
        }
      }
      

      【讨论】:

      • 如果您想在空值字段的情况下获得一些固定响应,请告诉我,我也会插入该配置。
      • 这给了一个例外。不过非常感谢您的帮助。
      • 分享你的异常信息。
      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 2013-11-26
      • 2011-01-17
      相关资源
      最近更新 更多