Нужна помощь в определении картины Грока - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь создать структуру для журнала ошибок SQL Server.Использование какого-либо агента для непрерывной потоковой передачи журналов.Наконец, мой файл журнала имеет следующие строки:


2019-09-21T12:19:32.107Z 2019-09-21 12:19:24.03 Server      Server process ID is 3132.

2019-09-21T12:19:32.107Z 2019-09-21 12:19:24.03 Server      System Manufacturer: 'Google', System Model: 'Google Compute Engine'.

2019-09-21T12:19:32.107Z 2019-09-21 12:19:24.03 Server      Authentication mode is WINDOWS-ONLY.

По сути, структура будет такой:

timestamp <space> date <space> time  <space> user  <space> message

Я пробовал этот шаблон, но он не работал.

%{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:date} %{GREEDYDATA:time} %{GREEDYDATA:message}

Может ли кто-нибудь помочь мне получить правильный грок для этого?

1 Ответ

0 голосов
/ 22 сентября 2019

Вы на правильном пути.На мой взгляд, приведенный ниже шаблон grok должен служить вашей цели.

%{TIMESTAMP_ISO8601:timestamp} %{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} %{TIME:time} %{DATA:user} ( )*%{GREEDYDATA:message}

Также вы можете найти включенные шаблоны на github .

. Чтобы получить дату в формеиз YYYY-MM-DD вы можете перегрузить шаблон DATE, используя опцию grok templates_dir и перейти с DATESTAMP.

DATE_YMD %{YEAR}-%{MONTHNUM}-%{MONTHDAY}
DATE %{DATE_US}|%{DATE_EU}|%{DATE_YMD}

или просто добавить свой шаблон в файл шаблонов и использовать grok'sопция templates_dir.

...