ELK之Logstash解析时间相差8h的问题

一、问题描述

服务器当前时间为:2022年 06月 28日 星期二 11:24:22 CST
而logstash解析的时间为2022-06-28T03:15:25.545Z与实际时间相差8h
ELK之Logstash解析时间相差8h的问题_第1张图片

一、解决办法:

需改logstash的配置文件:
ELK之Logstash解析时间相差8h的问题_第2张图片
原理就是:定义一个中间变量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,时间已经变为正常时间。
ELK之Logstash解析时间相差8h的问题_第3张图片
ES里接收的数据也正常了:
ELK之Logstash解析时间相差8h的问题_第4张图片

END

你可能感兴趣的:(ELK,elk,时间相差8h,logstash,差8小时)