如何解析 logstash 中的 nginx msec 字段?

如何解析 logstash 中的 nginx msec 字段?

我正在尝试处理nginx 访问日志在 logstash 中。

为了使时间戳的精度达到毫秒,我使用了变量$msec。这意味着时间戳将采用以下形式1430832725.814,其中整数部分是 UNIX 时间戳,小数部分以毫秒为单位。不幸的是,我找不到logstash 日期格式它可以解析UNIX时间戳。

还有其他方法可以让 nginx 以毫秒精度记录吗?或者有一种方法可以让 logstash 日期过滤器解析 UNIX 时间戳?

答案1

格式UNIX文字可以处理秒的小数部分,因此它将能够解析$msec字段。

答案2

首先,使用 grok 过滤器将 $msec 字段映射到输出字段

grok {
 match => { "message" =>\[%{GREEDYDATA:unix_timestamp}\] 
}

然后使用另一个日期过滤器将其转换为@timestamp 字段

  date {
     match => ["unix_timestamp", "UNIX"]
  }

如果要映射到@timestamp以外的字段,请参阅 Logstash 参考

相关内容