Logstash日期格式grok模式

时间:2017-02-21 03:40:50

标签: elasticsearch logstash logstash-grok

我有一个日志文件,其日期时间格式为'yyyyMMdd_HHmmss_SSS'。我成功地使用_作为分隔符解析它并在ES中获得3个不同的文本字段。但我需要将其转换为ISO_8601,以便按日期或按小时或分钟查询和可视化数据。

1 个答案:

答案 0 :(得分:1)

如果您不特别需要ISO-8601,但更关心获取可查询时间戳的事件,the date filter听起来更适合您。

filter {
  date {
    match => [ "logdate", "yyyyMMdd_HHmmss_SSS" ]
  }
}

这会将@timestamp字段设置为可日期搜索的字段。

但是,如果你确实需要Grok来完成这项工作,那么你可能最适合使用自定义正则表达式。

(?<logyear>\d{4,})(?<logmonth>\d\d)(?<logday>\d\d)_(and so on)

这利用一位数的捕获来构建你的字符串。