Date 奇数日志存储日期分析错误

Date 奇数日志存储日期分析错误,date,filter,logstash,Date,Filter,Logstash,我从Logstash获得以下错误: {:timestamp=>“2013-12-30T17:05:01.968000-0800”、:message=>“字段解析日期失败”、:field=>“message”、:value=>“2013-12-30 17:04:59539.539 INFO 14282:140418951137024[foo.lib.base.onResults:152]--/1.12/media-\“getMediaStoreUrl”\“:,10.101.AA.BB,10.101

我从Logstash获得以下错误:

{:timestamp=>“2013-12-30T17:05:01.968000-0800”、:message=>“字段解析日期失败”、:field=>“message”、:value=>“2013-12-30 17:04:59539.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%&*YegJSDDDFF%3D&Expires=1388455499&AWSAccessKeyId=NoimNotthatDumble>,>>,:异常=>java.lang.IllegalArgumentException:无效格式:2013-12-30 17:04:59539.539信息14282:140418951137024…”在“.539信息14282:140418951137024…”处格式不正确,级别=>:警告}

错误显然与日期格式有关,我认为:

2013-12-30 17:04:59,539.539 INFO 14282:140418951137024...
我的模式如下:

    date {
        match => ["message", "yyyy-MM-dd HH:mm:ss,SSS"]
    }
我读了上面的,我想我已经得到了正确的格式。奇怪的是,错误消息包含加倍的SSS(毫秒)部分:“,539.539”(出于某种原因,我们的日志以这种方式输出)。我故意没有将第二部分“.539”放在我的模式中,因为我希望忽略它

我还在另一个过滤器中成功使用以下模式:

(?<pylonsdate>%{DATESTAMP}\.[0-9]+)
(?%{DATESTAMP}\[0-9]+)

我只是不确定这个错误是从哪里来的。你知道我需要做什么来纠正这个错误吗?我需要修改@timestamp吗?非常感谢你的帮助!

这个错误是因为“message”字段中的其他信息会导致date api解析错误。 例:信息14282:14041895137024

您可以使用GrokAPI获取日期,然后使用DateAPI/

grok { 
     match => ["message","%{DATESTAMP:logtime}\.[0-9]+"]
}
date {
     match => ["logtime","YY-MM-dd HH:mm:ss,SSS"]
}
我已在您的日志中尝试了此配置。它对我有效。希望这能帮助您。

FWIW,这可能是由于日志存储日期筛选器中的原因


我有一个简单得多的日期过滤器,它会生成相同的错误,在搜索答案时遇到您的问题。

我遇到的问题比最初提到的更复杂。是的,上面的答案很有效,谢谢。但我正在使用自定义模式文件,并在那里努力定义相同的模式。感谢您的回答,它确实帮助我找到了问题所在。