Шаблон Grok, форматы даты и времени

#logstash #logstash-grok

Вопрос:

У меня есть вывод журнала со следующими сообщениями;

 [event] 02/05 09:20:01.8 PM message description

[event] 10/26 09:42:27.0 AM message description
 

Как я могу использовать grok для получения даты и времени в указанном выше формате

Дата-02/05, т. е. мм/день. Год не определен, но это не важно, так как я знаю, что это 2020 год, поэтому нет необходимости его определять

Время, как в приведенном выше примере, может быть PM и AM

Как я могу получить дату и время в тайнике журнала с помощью grok

Я пытался

  %{TIME:timestamp} %{GREEDYDATA:Description} 
 

Но это фиксирует отметку времени только как 09:20:01.8 и не включает в себя PM. Было бы хорошо, если бы он преобразовал его в 24 часа.

Ответ №1:

Вы можете определить пользовательский шаблон, соответствующий всей дате/времени

 grok {
    pattern_definitions => { "MYTIME" => "%{MONTHNUM}/%{MONTHDAY} %{TIME} [AP]M"
    match => { "message" => "%{MYTIME:timestamp}" }
}
 

Комментарии:

1. Я проверил это. Шаблон работает нормально и протестировал его в отладчике, но проблема в том, что поле не создается в logstash. Может быть, проблема с синтаксисом? Я пробовал разные комбинации

2. Это была проблема с моей стороны. Работает как заклинание