elk-logstash时区问题

使用版本:elk6.0

配置文件:logstash.confg

output {
  elasticsearch {
    id => "logstash-%{+YYYY.MM.dd}"
  }
}

问题:如图14号的数据,结果采集到了15号,慢了8小时,希望得到的结果,是凌晨0点索引自动切换

原因: 原来Logstash用的UTC时间, logstash在按每天输出到elasticsearch时,因为时区使用utc,造成每天8:00才创建当天索引,而8:00以前数据则输出到昨天的索引查看一些论坛,不建议更改源码,因为logstash和elasticsearch是按照UTC时间的,kibana却是按照正常你所在的时区显示的

解决:修改logstash配置

logstash在按每天输出到elasticsearch时,因为时区使用utc,造成每天8:00才创建当天索引,而8:00以前数据则输出到昨天的索引
在logstash filter 解决
  1. 增加一个字段,计算timestamap+8小时

ruby {
     # 新增索引日期,解决地区时差问题
     code => "event.set('index_date', event.get('@timestamp').time.localtime + 8*60*60)"
}

2. 用mutate插件先转换为string类型,gsub只处理string类型的数据,在用正则匹配,最终得到想要的日期

定义索引名时间

 mutate {
           convert => ["index_date", "string"]
           gsub => ["index_date", "T([\S\s]*?)Z", ""]
           gsub => ["index_date", "-", "."]
}

3.output配置

 elasticsearch {
        hosts => ["localhost:9200"]
        index => "log1-%{index_date}"
      }
  • 这里是取系统时间,你可以取你日志里面的时间戳来做索引名
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • title: 问题一、时区问题date: 2020-4-15 21:20:39categories: elk 将生...
    无聊的刀刀阅读 699评论 0 0
  • 概述 监控预警平台, eagle + eye (鹰眼)的合体词, 寓意可以快速发现问题, 并及时作出响应,Eagl...
    Kungfu猫熊阅读 7,464评论 0 52
  • 参考网址:官方文档、logstash示例 Logstash是一个开源数据收集引擎,具有实时管道功能。可以动态地将来...
    康小为6840阅读 5,840评论 0 6
  • logstash使用的是标准时间UTC时间,我们在生成索引的时候常会使用xx-%{+YYYY.MM.dd}这样的格...
    续哥儿阅读 2,575评论 0 0
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,094评论 2 7