0

У меня есть следующая запись в журнале, которую я хочу проанализировать, используя шаблон GROK через Logstash.Как выполнить пустые значения в Grok Pattern Logstash

Вход Вход:

1. TID: [-1234] [ESB] 
2. TID: [-1234] [] 

Ниже мой Grok узор, который также работает отлично на журнальной записи 1:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[%{WORD:server_type}\] 

Но я хочу выражение, которое работает как на записи в журнале 1 и 2. Он также должен обслуживать пустые значения и не прерываться. Я использую this website, чтобы проверить мои шаблоны grok.

Проблема:

Проблема заключается в том, что «СЛОВО» шаблон не угождать для пустого пространства или нет алфавита, и я не могу писать собственный шаблон.

WORD \b\w+\b 

Я попытался написать встроенное регулярное выражение, чтобы решить это, но я не могу заставить его работать. может кто-нибудь, пожалуйста, назовите меня, как использовать встроенное регулярное выражение для этого конкретного случая в шаблонах GROK.

ответ

1

Вы можете изменить WORD к DATA и он будет работать:

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

Вы можете также использовать (рисунок)? знак для отметки нуля или один раз:

TID:%{SPACE}\[%{INT:SourceSystemId}\]%{SPACE}\[(%{WORD:server_type})?\] 

Кредит magnusbaeck из эластичного сообщества. link