2015-04-13 7 views
1

Я пытаюсь обращал внимания эти входы с logstash,Grok с отсутствующими значениями, используя logstash

Nicolas Lauri 34 
Nicolas 33 #there is one space and it not works. 
Nicolas 33 #there are two spaces and it works. 

с этим рисунком

(%{WORD:firstname})? (%{WORD:lastname})? (%{NUMBER:age})? 

Использование()? Я игнорирую отсутствующие значения и говорю, что это опции, но проблема в том, что мы должны поместить пробелы между значением, чтобы он работал.

я имею в виду, если у меня есть этот вход:

Nicolas 19 

я должен положить ровно два пространства между Николя и др 19 правильно обращал внимания на это.

Что мне делать, чтобы избежать помех?

ответ

1

Два варианта:

  1. Помещенного пространство в вашей опциональной схеме: (% {WORD})?
  2. Разрешить один или несколько пробелов между элементами:% {WORD} +% {WORD}
+0

Не уверен, что это помогает, так как _все_ поля являются необязательными (которые, возможно, не имеет смысла, в первую очередь). При первом варианте не будет совпадений, если отсутствует первый столбец. –

+0

@ MagnusBäck да, вы правы, это просто пример, на самом деле у меня очень 3 разных строки в файле брандмауэра журнала, и я хочу: , чтобы получить его, и результат будет храниться в эластичном кластере поиска, используя выделенный поиск упругой информации вывод. что мне делать :(? – Morito

+0

ОП задал конкретный вопрос здесь: http://stackoverflow.com/questions/29623521/how-to-handle-multiple-inputs-with-logstash-in-the-same-file –

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