时区问题 @timestamp 时间录入比本地时间早了8个小时

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
leslie1996 2020-06-11 23:15:58

我看老师视频里演示的 @timestamp 和 updated_time 也都比老师电脑时间早8个小时

从这个图里可以看出,老师虚拟机启动 Logstash 打印日志的时间是 19年12月17日15点29分

http://img1.sycdn.imooc.com//climg/5ee249dd09a86ba812800868.jpg紧接着从下面的截图中可以看出@timestamp 的时间是19年12月17日的7点31分,比上述日志时间早了8小时

http://img1.sycdn.imooc.com//climg/5ee24a7709db985429642060.jpgupdated_time在前几节课中也可以看到和数据库内时间的不一致,也是相差8小时

  • 我下面有改这个时间的办法,不过有缺点。
    2020-06-11 23:20:25
风间影月 2020-06-05 11:03:24

是不是linux系统问题呀

  • 不是系统问题 是logstash的问题 网上查了logstash默认时区是UTC。找到解决办法如下filter { # date类型不能省略,不然会报错,就是把当前字段+8小时后赋值给新的字段,然后再取新字段的值赋值给老的字段,再把新的字段删除 date { match => ["message", "UNIX_MS"] target =>"@timestamp" } ruby { code =>"event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)" } ruby { code =>"event.set('@timestamp',event.get('timestamp'))" } mutate { remove_field => ["timestamp"] } date { match => ["message", "UNIX_MS"] target =>"updated_time" } ruby { code =>"event.set('@updated_time', event.get('updated_time').time.localtime + 8*60*60)" } ruby { code =>"event.set('updated_time',event.get('@updated_time'))" } mutate { remove_field => ["@updated_time"] } } 但是还有一个问题就是track_time 文件里面时间还是改不了差8个小时
    2020-06-05 11:10:34
  • Linux的时区呢
    2020-06-05 11:11:55
  • 执行的sql sql_last_value这个值已经加了8个小时 但是文件还是UTC的时间, 推测应该是顺序问题,上面的配置,让logstash在执行sql的时候 ,把从track_time文件拿到的时间加了8个小时。但是并没有改变文件内容。
    2020-06-05 11:12:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师