logstash默认timestamp时间戳值修改为日志中提取的时间

x33g5p2x  于2022-06-13 转载在 Logstash  
字(0.5k)|赞(0)|评价(0)|浏览(735)

logstash中的timestamp时间戳时间由logtash在采集到日志时间时候自动设置,有些时候,需要把这个默认的timestamp时间修改为日志数据中提取到的时间,使两者一致。可以通过配置文件实现:

filter {
	grok {
		match => [ 
			"message", "\[%{DATA:logtime}\] " 
		]
		
		break_on_match => false
	}

	date {
		match=> ["logtime","yyyy-MM-dd HH:mm:ss.SSS"]
		target=>"@timestamp"
	}
}

上述配置的grok将匹配每一行日志中开始的[]里面的数据作为时间放入到logtime中,然后在date里面,将按照yyyy-MM-dd HH:mm:ss.SSS的日期时间格式把时间最终覆盖系统默认的timestamp中。

也可以通过ruby代码实现把自己提取到的日志时间作为系统默认的时间戳:

filter {

	ruby {
		code => "
				event.set('@timestamp',event.get('this_is_my_log_time'))
				"
	}
}

相关文章