一、问题描述
服务器当前时间为:
2022年 06月 28日 星期二 11:24:22 CST
而logstash解析的时间为
2022-06-28T03:15:25.545Z
与实际时间相差8h
一、解决办法:
需改logstash的配置文件:
原理就是:定义一个中间变量timestamp,值设置为当前@timestamp值+8h;然后将timestamp的值再赋给@timestamp,最后再删除timestamp。
filter{
grok{
match =>{"message"=>"%{COMBINEDAPACHELOG}"}}
ruby {
code =>"event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"}
ruby {
code =>"event.set('@timestamp',event.get('timestamp'))"}# 配合上面处理timestamp少8h的问题# mutate {# remove_field => ["timestamp"]# }
mutate{# 移出特定字段
remove_field =>["host","mac","timestamp"]}
三、结果展示
OK,时间已经变为正常时间。
ES里接收的数据也正常了:
END
版权归原作者 一掬净土 所有, 如有侵权,请联系我们删除。