以下日志的 GROK 模式
GROK Pattern for following log
我很难想出以下日志条目的模式。
[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}
任何人都可以告诉我我做错了什么吗?我知道问题出在日期格式上,但我就是找不到答案。
您的 grok 模式有多个问题(顺序基于 grok 模式中的出现):
- 日志级别在方括号内。 LOGLEVEL 模式不包含除已定义单词之外的任何字符。此外,在日志级别之后和右方括号之前有一个空格
- 您的时间戳的日期值(年、月、日)由您根本没有指定的连字符分隔。
- MONTH 模式用于完整的 and/or 缩写月份 names,例如Feb 或 February,您需要使用使用数字的 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 上验证您的模式。
希望能帮到你
我很难想出以下日志条目的模式。
[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}
任何人都可以告诉我我做错了什么吗?我知道问题出在日期格式上,但我就是找不到答案。
您的 grok 模式有多个问题(顺序基于 grok 模式中的出现):
- 日志级别在方括号内。 LOGLEVEL 模式不包含除已定义单词之外的任何字符。此外,在日志级别之后和右方括号之前有一个空格
- 您的时间戳的日期值(年、月、日)由您根本没有指定的连字符分隔。
- MONTH 模式用于完整的 and/or 缩写月份 names,例如Feb 或 February,您需要使用使用数字的 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 上验证您的模式。
希望能帮到你