каким будет шаблон Grok для этого пользовательского шаблона журнала? - PullRequest
0 голосов
/ 18 января 2019

Ниже приведена небольшая часть моего журнала:

2018-12-06 18:55:20 INFO  epo - myfile.xml is loaded successfully
2018-12-06 18:55:20 INFO  epo - checking that whether the given file name is already present
2018-12-06 18:55:20 INFO  epo - some logging deatils
2018-12-06 18:55:20 INFO  epo - Entry has been added to table.
2018-12-06 18:55:20 INFO  epo - Total number of records processed 0000035
2018-12-06 18:55:20 INFO  epo - some logging deatils
2018-12-07 09:57:59 INFO  epo - myfile.xml is loaded successfully
2018-12-07 09:57:59 INFO  epo - [ElasticSearch] => PIN07122018F00001 request sent successfully.
2018-12-06 18:55:20 INFO  epo - myfile.xml is loaded successfully
2018-12-06 18:55:20 INFO  epo - checking that whether the given file name is already present
2018-12-06 18:55:20 INFO  epo - some logging deatils
2018-12-06 18:55:20 INFO  epo - Entry has been added to table.
2018-12-06 18:55:20 INFO  epo - Total number of records processed 0000035
2018-12-06 18:55:20 INFO  epo - some logging deatils
2018-12-07 09:57:59 INFO  epo - myfile.xml is loaded successfully
2018-12-07 09:57:59 INFO  epo - [ElasticSearch] => PIN07122018F00002 request sent unsuccessfully.

В этом журнале я хочу выбрать строки, содержащие идентификаторы запросов, такие как PIN07122018F00001 и PIN07122018F00002, и отправить их в эластичный поиск.

Я использую logstash для этой цели, и мой шаблон grok:

input {
  . . .
}

filter {
  grok {
    patterns_dir => ["/myServer/mnt/appln/folder1/folder2/logstash/pattern"]
    match => { "message" => '^%{TIMESTAMP_ISO8601:timestamp} INFO  epo - \[ElasticSearch\] => %{REQ_ID:requestid} %{MSG:statusmsg}$' }
  }
}

output{
    . . .
}

, где DEPOSITORY_REQ_ID и MSG определены как:

MSG (A-Za-z0-9 )+
REQ_ID PIN[0-9]{8}[A-Z]{1}[0-9]{5}

Но я все еще не могу соответствовать требуемомулиния, с этим шаблоном она берет все линии.Скажите, пожалуйста, какой шаблон будет соответствовать линии:

2018-12-07 09:57:59 INFO epo - [ElasticSearch] => PIN07122018F00001 запрос успешно отправлен.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 18 января 2019

Проблема связана с шаблоном MSG. () обозначает группу захвата, которая будет пытаться соответствовать точному содержанию (). В вашем случае вы хотите использовать [], который обозначает класс символов, который будет соответствовать всем символам этого класса. Также не хватает ., которое появляется в конце строк.

Ваш шаблон должен быть определен таким образом, что бы исправить вашу проблему:

MSG [A-Za-z0-9 \.]+
...