Wso2 如何满足Grok模式Logstash中的空值

Wso2 如何满足Grok模式Logstash中的空值,wso2,logstash,wso2esb,logstash-grok,logstash-configuration,Wso2,Logstash,Wso2esb,Logstash Grok,Logstash Configuration,我想通过Logstash使用GROK模式解析以下日志条目 日志条目: 1. TID: [-1234] [ESB] 2. TID: [-1234] [] 以下是我的grok模式,它在日志条目1上也运行良好: TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{WORD:server_type}\] 但是我想要一个对日志条目1和2都有效的表达式。它还应该满足空值,并且不会失败。我用它来测试我的格洛克模式 问题: 1. TID: [-1234] [

我想通过Logstash使用GROK模式解析以下日志条目

日志条目:

1. TID: [-1234] [ESB] 
2. TID: [-1234] [] 
以下是我的grok模式,它在日志条目1上也运行良好:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{WORD:server_type}\]
但是我想要一个对日志条目1和2都有效的表达式。它还应该满足空值,并且不会失败。我用它来测试我的格洛克模式

问题:

1. TID: [-1234] [ESB] 
2. TID: [-1234] [] 
问题是“单词”模式不能满足空白或没有字母表的需求,而且我无法编写自定义模式

WORD \b\w+\b 

我试图编写内联正则表达式来解决这个问题,但我无法让它工作。有人能告诉我如何在GROK模式中使用内联正则表达式处理这种特殊情况吗

您可以将
WORD
更改为
DATA
,它将工作:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{DATA:server_type}\]
                                                  ^
                                                  |
                                             change this

您可以将
WORD
更改为
DATA
,它将工作:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{DATA:server_type}\]
                                                  ^
                                                  |
                                             change this
你也可以使用(模式)?标记零次或一次出现的字符:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[(%{WORD:server_type})?\]
elastic社区对magnusbaeck的赞誉

您也可以使用(模式)?标记零次或一次出现的字符:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[(%{WORD:server_type})?\]
elastic社区对magnusbaeck的赞誉