以下日志的GROK模式

问题描述 投票:0回答:1

我很难为下面的日志输入提供模式。

[INFO ] 2020-02-07 16:11:56.148 [localhost-startStop-1] DOMUtilities - System property DocumentBuilderCacheBlockSize is not defined, using default 25

以下是我所拥有的。

  %{LOGLEVEL:loglevel} %{YEAR} %{MONTH} %{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}[%{DATA:threadName}\]\s+\%{DATA:javafile}\s[-:]\s+%{GREEDYDATA:message}

任何人都可以填写我做错的事情吗?我知道问题出在日期格式附近,但我只是找不到答案。

logging timestamp logstash-grok grok
1个回答
0
投票

您的grok模式有多个问题(顺序基于grok模式中的出现:]

  • 日志级别位于方括号内。 LOGLEVEL模式除了定义的单词外不包含任何字符。另外,在日志级别之后和右方括号之前有一个空格
  • 您的时间戳记的日期值(年,月,日)由连字符连字符分隔,而这些连字符根本没有指定。
  • MONTH模式适用于完整的和/或缩写的月份names,例如FebFebruary,相反,您需要使用使用数字的MONTHNUM2-模式。
  • 秒和线程名之间有空格
  • 由于在正则表达式中是特殊字符,因此您需要转义[%{DATA:threadName}\]处的方括号
  • [%{DATA:javafile}之前不需要反斜杠

请更详细地查看logstash grok-patterns及其定义。

使用示例日志,您提供了以下模式:

^\[%{LOGLEVEL:loglevel}\s?+\]\s+%{YEAR}-%{MONTHNUM2}-%{MONTHDAY}\s+%{HOUR}:%{MINUTE}:%{SECOND}\s+\[%{DATA:threadName}\]\s+%{DATA:javafile}\s[-:]\s+%{GREEDYDATA:message}

您可以在this page上验证模式。

希望我能为您提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.