Шаблон Grok для файлов журнала - PullRequest
1 голос
/ 27 мая 2020

Я новичок в Logsta sh и ELK в целом. Мне нужно написать шаблон grok для файла журнала в следующем формате:

[191114|16:51:13.577|BPDM|MDS|2|209|ERROR|39999]Interrupted by a signal!!!

Я попытался написать шаблон grok, сославшись на grok-patterns и попробовав свою реализацию в grok-debugger , но он не работал.

grok {
match => { "message" => "%{NONNEGINT:fixed}|%{HOSTNAME:host}|%{WORD:word1}|%{WORD:word2}|%{NONNEGINT:num1}|%{NONNEGINT:num2}|%{ERROR|INFO|EVENT}|%{NONNEGINT:num1}|%{GREEDYDATA:message}" }
 }

1 Ответ

2 голосов
/ 27 мая 2020

Вам нужно избегать скобок и каналов, и ваше второе поле не является хостом, это время.

Это работает, просто проверьте имена полей.

\[%{NONNEGINT:fixed}\|%{DATA:time}\|%{WORD:word1}\|%{WORD:word2}\|%{NONNEGINT:num1}\|%{NONNEGINT:num2}\|%{WORD:loglevel}\|%{NONNEGINT:num3}\]%{GREEDYDATA:message}

Этот Grok проанализирует ваше сообщение следующим образом.

{
  "word1": "BPDM",
  "word2": "MDS",
  "message": "Interrupted by a signal!!!",
  "loglevel": "ERROR",
  "num1": "2",
  "fixed": "191114",
  "time": "16:51:13.577",
  "num3": "39999",
  "num2": "209"
}
...