日期过滤器必须与字段的整个值匹配。它不能只解析前缀。此外,您的日期筛选器具有YYYY-MM-dd,但您的字段具有dd/MM/YYYY。
我的日期,格式如下
"_messagetime" => "08/08/2022 22:18:17.254 +0530"
我在我的日志存储中使用日期过滤器
date {
match => ["_messagetime", "YYYY-MM-dd HH:mm:ss.SSS"]
}
但是我得到
"_dateparsefailure"
有人能告诉我的方法可能出了什么问题吗
您可以使用解析该字段
date { match => ["_messagetime", "dd/MM/YYYY HH:mm:ss.SSS Z"] }
得到CCD_ 1。请注意[@timestamp]值中的尾随Z——logstash中的所有时间戳都存储在祖鲁/UTC时区中。
您的错误是由+0530";_messagetime字段内容中的字符串。
要解决这个问题,一个选项是:
- 在日期插件之前删除此字符串,您可以使用grok或dissect
例如:
filter {
grok {
match => { "_messagetime" => "%{DATESTAMP:newdate}%{DATA:trash}" }
}
}
- 应用相同日期的插件conf,现在必须在没有"+0530";发生