我正在尝试处理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 参考