如何满足 Grok Pattern Logstash 中的空值
How to cater empty values in Grok Pattern Logstash
我想通过 Logstash 使用 GROK 模式解析以下日志条目。
日志条目:
1. TID: [-1234] [ESB]
2. TID: [-1234] []
以下是我的 grok 模式,它在日志条目 1 上也能正常工作:
TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{WORD:server_type}\]
但我想要同时适用于日志条目 1 和 2 的表达式。它还应该满足空值并且不会失败。我正在使用 this website 来测试我的 grok 模式。
问题:
问题是 "WORD" 模式不适合空 space 或没有字母,我无法编写自定义模式。
WORD \b\w+\b
我试图编写内联正则表达式来解决这个问题,但我无法让它工作。有人可以指导我如何在 GROK 模式中针对这种特殊情况使用内联正则表达式。
您可以将 WORD
更改为 DATA
,它将起作用:
TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{DATA:server_type}\]
^
|
change this
你也可以使用(模式)?标记零次或一次出现的字符:
TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[(%{WORD:server_type})?\]
感谢弹性社区的 magnusbaeck。 link
我想通过 Logstash 使用 GROK 模式解析以下日志条目。
日志条目:
1. TID: [-1234] [ESB]
2. TID: [-1234] []
以下是我的 grok 模式,它在日志条目 1 上也能正常工作:
TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{WORD:server_type}\]
但我想要同时适用于日志条目 1 和 2 的表达式。它还应该满足空值并且不会失败。我正在使用 this website 来测试我的 grok 模式。
问题:
问题是 "WORD" 模式不适合空 space 或没有字母,我无法编写自定义模式。
WORD \b\w+\b
我试图编写内联正则表达式来解决这个问题,但我无法让它工作。有人可以指导我如何在 GROK 模式中针对这种特殊情况使用内联正则表达式。
您可以将 WORD
更改为 DATA
,它将起作用:
TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{DATA:server_type}\]
^
|
change this
你也可以使用(模式)?标记零次或一次出现的字符:
TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[(%{WORD:server_type})?\]
感谢弹性社区的 magnusbaeck。 link