Spa*_*nky 4 date filter logstash
我从Logstash收到以下错误:
{:timestamp =>"2013-12-30T17:05:01.968000-0800",:message =>"无法从字段中解析日期",:field =>"message",:value =>"2013-12-30 17 :04:59,539.539 INFO 14282:140418951137024 [foo.lib.base.onResults:152] - /1.12/media - \"getMediaStoreUrl \":,10.101.AA.BB,10.101.19.254取0.170675992966,返回https:// foo.s3.amazonaws.com/foo/customerMedia/1009238911/23883995/image?Signature=%2BfXqEdNWtWdhwzi%&*YEGJSDDdDFF%3D&Expires = 1388455499&AWSAccessKeyId = NOIMNOTTHATSTUPID> ,, >>>",:exception => java.lang.IllegalArgumentException:格式无效:"2013-12-30 17:04:59,539.539 INFO 14282:140418951137024 ..."格式错误为".539 INFO 14282:140418951137024 ...",:level =>:warn}
错误显然是关于日期格式,这对我来说是:
2013-12-30 17:04:59,539.539 INFO 14282:140418951137024...
Run Code Online (Sandbox Code Playgroud)
我的模式如下:
date {
match => ["message", "yyyy-MM-dd HH:mm:ss,SSS"]
}
Run Code Online (Sandbox Code Playgroud)
我读了Joda-Time Library,我想我的格式是正确的.我很奇怪,错误消息包含加倍的SSS(毫秒)部分:",539.539"(由于某种原因,我们的日志以这种方式输出).我故意没有将第二部分".539"放在我的模式中,因为我希望它被忽略.
我也成功在另一个过滤器中使用以下模式:
(?<pylonsdate>%{DATESTAMP}\.[0-9]+)
Run Code Online (Sandbox Code Playgroud)
我只是不确定这个错误来自哪里.有什么想法我需要做些什么才能纠正这个问题?我是否需要改变@timestamp?任何帮助表示赞赏!
该错误是因为"message"字段中的其他信息将使日期api解析错误.例如:INFO 14282:140418951137024 ......
您可以使用grok api获取日期,然后使用date api /
grok {
match => ["message","%{DATESTAMP:logtime}\.[0-9]+"]
}
date {
match => ["logtime","YY-MM-dd HH:mm:ss,SSS"]
}
Run Code Online (Sandbox Code Playgroud)
我已经在您的日志中尝试了此配置.它适用于我.希望这可以帮到你 .