2016-04-11 3 views
1

Я новичок в logstash и grok и задаю вопрос относительно шаблона. Я пытаюсь создать шаблон grok для своих журналов ошибок apache. Однако я немного запутался в следующем поведении.Loglevel pattern в GROK

Если я использую базовый матч в http://grokdebug.herokuapp.com/:

%{LOGLEVEL:severity%{IPV4:clientip}%{GREEDYDATA:errormsg} 

Я не получаю ни одного совпадения на следующем фрагменте кода журнала:

[Sun 10 апреля 09:28:01 2016] [ошибка ] [клиент 111.11.111.111] Файл делает не существует: /var/www/html/favicon.ico

Теперь все модели работают, если я запускаю% {LOGLEVEL: тяжесть} или% {IPV4: clientip}% {GREEDYDATA: errormsg} отдельно. Но если я попытаюсь вместе, я получаю ответ «нет».

Я думаю, что это происходит потому, что% {LOGLEVEL: severity} обрезает остальную часть журнала, но я не могу понять, почему.

У кого-нибудь есть предложения относительно того, что я делаю неправильно?

Заранее спасибо.

ответ

3

Как и все неизмененные регулярные выражения, как только вы начинаете сопоставлять, вам нужно сопоставить все в строке. В вашем шаблоне вы не учитывали пробелы или скобки, которые существуют в вашем примере. (Это также предполагает, что отсутствие a} после «серьезности» было копией ошибки &).

Смежные вопросы