【问题标题】:Grok patterns format in logstashLogstash 中的 Grok 模式格式
【发布时间】:2018-06-07 06:40:36
【问题描述】:

大部分情况下我的模式都在工作,但在 Framework Error in :] 之后部分没有在日志中看到。

如何在日志上打印其余部分。 我最后尝试了模式,但仍然无法正常工作 %{GREEDYDATA:restofthem}

我的 grok 模式:

\[%{TIMESTAMP_ISO8601:ServerTimestamp}\|%{WORD:Log4netHostname}\|%{DATA:ProjectName}\|%{DATA:TestName}\|%{DATA:UserName}\|%{DATA:ClientIP}\|%{DATA:ClientMachineName}\|%{LOGLEVEL:LogLevel}\|%{DATA:method}\|%{DATA:message}\|%{GREEDYDATA:Exception}|%{GREEDYDATA:Exception}\]%{GREEDYDATA:restofthem}

我的日志:

[2018-06-05 13:26:57,641|host1|Appname|TTA|KKM|112.310.104.722|Host23|ERROR|Logger.Log4Net|LogError|Framework Error in :]
WebDriverTimeoutException: Timed out after 5 seconds
 at DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)
 at DefaultWait`1.Until[TResult](Func`2 condition)

【问题讨论】:

    标签: logstash elastic-stack logstash-grok


    【解决方案1】:

    原因是:] 后面有一个新行,你需要匹配\n 字符才能解析它。 有多种不同的方法可以做到这一点,你可以像这样使用\n字符匹配一个新行,

    \[%{TIMESTAMP_ISO8601:ServerTimestamp}\|%{WORD:Log4netHostname}\|%{DATA:ProjectName}\|%{DATA:TestName}\|%{DATA:UserName}\|%{DATA:ClientIP}\|%{DATA:ClientMachineName}\|%{LOGLEVEL:LogLevel}\|%{DATA:method}\|%{DATA:message}\|%{GREEDYDATA:Exception}\n%{GREEDYDATA:2ndLine}\n%{GREEDYDATA:3rdLine}\n%{GREEDYDATA:4thLine}
    

    这将产生,

      ......
    
      "Exception": [
        [
          "Framework Error in :]"
        ]
      ],
      "2ndLine": [
        [
          "WebDriverTimeoutException: Timed out after 5 seconds"
        ]
      ],
      "3rdLine": [
        [
          " at DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)"
        ]
      ],
      "4thLine": [
        [
          " at DefaultWait`1.Until[TResult](Func`2 condition)"
        ]
      ]
    

    或,

    使用?m 匹配一个块中第一行之后的所有行,如下所示,

    \[%{TIMESTAMP_ISO8601:ServerTimestamp}\|%{WORD:Log4netHostname}\|%{DATA:ProjectName}\|%{DATA:TestName}\|%{DATA:UserName}\|%{DATA:ClientIP}\|%{DATA:ClientMachineName}\|%{LOGLEVEL:LogLevel}\|%{DATA:method}\|%{DATA:message}\|%{GREEDYDATA:Exception}(?m)%{GREEDYDATA:everythingelse}
    

    输出,

      .....
      ],
      "Exception": [
        [
          "Framework Error in :]"
        ]
      ],
      "everythingelse": [
        [
          "\nWebDriverTimeoutException: Timed out after 5 seconds\n at DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)\n at DefaultWait`1.Until[TResult](Func`2 condition)"
        ]
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多