Ошибка разбора даты с фильтром 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
включил в него кавычки, которые были экранированы.