Использование нескольких шаблонов grok для присвоения значения 1 полю

Мой вопрос касается того, как использовать шаблон Grok.

Я знаю, что для данного существующего шаблона Grok я могу использовать следующий синтаксис для присвоения значений полю:

%{DATESTAMP_RFC822:timestamp}

Я также знаю, что могу создать свой собственный шаблон и использовать его с полем PatternDir.

Мой вопрос: могу ли я использовать комбинацию шаблонов Grok для анализа и присвоения значения полю?

Например, вот «определение» шаблона DATESTAMP_RFC822:

DATESTAMP_RFC822 = %{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME} %{TZ}

Если я не хочу, чтобы %{TZ} был частью шаблона, как мне использовать остальную часть шаблона для анализа и назначения метки времени? Что-то подобное ...

?<timestamp>%{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME}

Я знаю, что вышеописанное не работает. Но, надеюсь, понятно, чего я хочу добиться.


person javakurious    schedule 30.11.2016    source источник


Ответы (1)


Только что нашел ответ. Моя последняя попытка была действительно правильной.

?<timestamp>%{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME}

Мне просто нужно было добавить открытие и закрытие '(', чтобы заставить его работать.

(?<timestamp>%{MONTH}/%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND}))
person javakurious    schedule 01.12.2016