У меня возникли проблемы при преобразовании текстового поля в дату с фильтром даты.Вот код logstash, который я использую:
grok {
patterns_dir => ["/etc/logstash/conf.d/patterns"]
match => { "message" => "%{TIMESTAMP_DD_MM_YYYY:start_date}%{SPACE}%{TIME:zimbra_proc_start_time}%{SPACE}%{SPACE}%{LOGLEVEL:log_level}%{DATA}%{DAY:day}%{SPACE}%{GREEDYDATA}\n%{DATA}\n%{DATA}\n%{TIMESTAMP_DD_MM_YYYY:end_date}%{SPACE}%{TIME:zimbra_proc_end_time}" }
}
mutate {
add_field => {
"end_date_parse" => "%{end_date} %{zimbra_proc_end_time}"
"start_date_parse" => "%{start_date} %{zimbra_proc_start_time}"
}
}
date {
match => [ "start_date_parse", "HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSS", "dd MMM yyyy'T'HH:mm:ss.SSS", "dd MMM yyyy HH:mm:ss", "d MMM yyyy HH:mm:ss" ]
target => "zimbra_proc_start_time"
}
date {
match => [ "end_date_parse", "yyyy-MM-dd'T'HH:mm:ss.SSS", "HH:mm:ss", "dd MMM yyyy'T'HH:mm:ss.SSS", "dd MMM yyyy HH:mm:ss", "d MMM yyyy HH:mm:ss" ]
target => "zimbra_proc_end_time"
}
mutate {
remove_field => "end_date_parse"
remove_field => "start_date_parse"
}
Кроме того, в поле зрения нет _grokparsefailure или _dateparsefailure.Таким образом, дата анализируется правильно, но тип все еще сообщается как ключевое слово в ES.