日志库日期解析错误



总结:我有我的日志与日期格式如下:

2013/05/09-05:19:16.772

现在我想使用logstash并将这些日志发送给弹性搜索。但问题是,我希望时间戳值应该是日志的时间戳值,而不是当前时间。

因此,我写了以下内容。

Invalid format: "2013/05/09-05:19:16.876" is malformed at "/05/09-05:19:16.876", :backtrace=>["org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866)"

我的配置文件是:

input {
  stdin {
      type => "stdin-type"
  }
}
filter {
  grok {
    type => "stdin-type"
    patterns_dir=>["./patterns"]
    pattern => "%{PARSE_ERROR}"
    add_tag=>"%{type1},%{type2},%{slave},ERR_SYSTEM"
  }
  date {
    type => "stdin-type"
    match=>["ts","yyyy/mm/dd-HH:mm:ss.SSS"]
    locale=>"en"
  }
  mutate {
    type=>"stdin-type"
    replace => ["@message", "%{message}" ]
    replace => ["@timestamp", "%{ts}" ]
  }
}
output {
  stdout { debug => true debug_format => "json"}
  elasticsearch { }
}
我真的被困在这里了。需要一些专家的帮助。

谢谢。

指定小写的m,而不是Mm代表分钟,M代表月。

试题:

yyyy/MM/dd-HH:mm:ss.SSS

在从命令行启用详细模式(-vv)之前,从错误中不容易看出的是,'date'过滤器正在使用JodaTime库。在我的例子中,我使用了前一步中的正则表达式来解析日期和时间。这显然行不通,因为这不是JodaTime所期望的。对于允许的日期时间格式,您应该查看DateTimeFormat文档。

Try

YYYY/MM/dd-HH:mm:ss.SSS
相反,

相关内容

  • 没有找到相关文章

最新更新