Грок для лог-файлов Logstash - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно написать шаблон grok для извлечения содержимого в пределах "** **"

-----Start of script for server sitboap1 at **Fri Apr 17 14:24:19** HKT 2020---------
**user11**   87751      1   0 Apr16 ?        00:00:00 sh **job1.sh**
**user11**   877452  89451  0 Apr16 ?        00:00:00 sh **job2.sh** --server-config= full.xml
**user11**   89772   89452  3 Apr16 ?        00:02:35 **/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/java** -D[stdd] -server -verbose:gc

Журнал должен получать дату сверху, имя пользователя и имя задания из списка. Количество строк под каждой датой может варьироваться.

Я не могу понять, какой грок идеально подходит под мои требования.

Это может быть комбинация Grok и фильтра в Logsta sh, но мое конечное ожидание - иметь эти столбцы.

1 Ответ

2 голосов
/ 22 апреля 2020

Вы можете попробовать следующие фильтры Grok. Есть 2 фильтра.

Для получения даты и времени в заголовке.

-----Start of script for server (.*[a-z|A-Z|0-9]) at %{GREEDYDATA:UserDateTime} (.*[a-z|A-Z])

Для получения содержимого.

%{GREEDYDATA:User} ([1-9][0-9]{1,10}) (.*) %{GREEDYDATA:execFile}

Наконец, вы можете использовать этот веб-сайт для создания фильтров Грока.

enter image description here

enter image description here

...