Logstash:解析apache访问日志';s时间戳导致解析失败

Logstash:解析apache访问日志';s时间戳导致解析失败,logstash,logstash-grok,Logstash,Logstash Grok,我想解析常见的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"] } 所有字段都被识别,但时间戳

我想解析常见的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}
我已经检查了文档的日期过滤器。它依赖于

我做错了什么?无法看到错误。

错误消息的“Mar/2014:15:36:43+0100”处的
格式不正确。
部分错误消息表明时间戳分析器的月份名称有问题。这表明默认语言环境不是英语(特别是第三个月不缩写为“Mar”的语言)。这可以通过显式设置用于解析的区域设置来解决:


为我工作;我得到2014-03-02T14:36:43.000Z作为这个精确输入和配置的时间戳。您的默认区域设置是否为非英语区域设置,因此需要?谢谢,工作正常。如果您愿意,您可以将此作为答案编写,以便我可以接受。apache访问日志是否始终使用
en
作为区域设置?
filter {
  date {
    ...
    locale => "en"
  }
}