Ошибка разбора даты с фильтром grok в logstash

Мне нужно разобрать дату и время в журнале, чтобы показать в @timestamp поле. Я могу разобрать метку времени, но не дату.

Входной журнал:

"2010-08-18","00:01:55","text"

Мой фильтр:

grok {
  match => { "message" => '"(%{DATE})","(%{TIME})","(%{GREEDYDATA:message3})"’}
}

Вот DATE бросает grokparsefailure, Также не уверен, как обновить @timestamp поле.

Ценю твою помощь.

1 ответ

%{DATE} шаблон не то, что вы хотите. Он ищет что-то в формате M / D / Y, MDY, DMY или D / M / Y.

Для файла, подобного этому, вы можете использовать фильтр CSV:

filter {
  csv {
    columns => ["date","time","message3"]
    add_filed => {
       "date_time" => "%{date} %{time}"
    }
  }
  date {
     match => [ "date_time", "yyyy-MM-dd HH:mm:ss" ]
     remove_field => ["date", "time", "date_time" ]
  }
}

Это будет обрабатывать случай, когда message3 включил в него кавычки, которые были экранированы.

Другие вопросы по тегам