我从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: Invalid format: "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...
而我的模式如下:
date {
match => ["message", "yyyy-MM-dd HH:mm:ss,SSS"]
}
我查阅了Joda-Time Library的资料,认为上面的格式是正确的。对于我来说,错误消息中包含重复的SSS(毫秒)部分有些奇怪:",539.539"(由于某种原因,我们的日志会这样输出)。我故意没有在我的模式中加入第二部分“.539”,因为我希望它被忽略。
我还成功地在另一个过滤器中使用了以下模式:
(?<pylonsdate>%{DATESTAMP}\.[0-9]+)
我不确定这个错误是从哪里来的。你有什么想法可以纠正它吗?我需要改变@timestamp吗?任何帮助都将不胜感激!