4
我想分析常见的Apache访问日志文件,这是这样的:Logstash:解析Apache访问日志的时间戳导致解析失败
::1 - - [02/Mar/2014:15:36:43 +0100] "GET /index.php HTTP/1.1" 200 3133
这是我的滤波部分:
grok {
match => ["message", "%{COMMONAPACHELOG}"]
}
date {
match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
}
所有字段是得到认可,但不是时间戳。控制台上的输出如下:
Failed parsing date from field {:field=>"timestamp", :value=>"02/Mar/2014:15:36:43 +0100", :exception=>java.lang.IllegalArgumentException: Invalid format: "02/Mar/2014:15:36:43 +0100" is malformed at "Mar/2014:15:36:43 +0100", :level=>:warn}
我已经检查了日期过滤器的文档。它依赖于DateTimeFormat。
我做错了什么?看不到错误。
适用于我;我得到2014-03-02T14:36:43.000Z作为此确切输入和配置的时间戳。您的默认区域设置是否为非英文区域,因此您需要[设置日期过滤器的区域设置](http://logstash.net/docs/1.4.2/filters/date#locale)? – 2014-12-04 06:32:56
谢谢,工作正常。如果你想要,你可以写这个答案,所以我可以接受它。 – tester 2014-12-04 19:08:05