博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elk-logstash时区问题
阅读量:5275 次
发布时间:2019-06-14

本文共 1121 字,大约阅读时间需要 3 分钟。

http://www.cnblogs.com/wangpei886/p/8043021.html

使用版本: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}"      }

 

 

* 这里是取系统时间,你可以取你日志里面的时间戳来做索引名

或许有其他更好的方案!请留言告知

转载于:https://www.cnblogs.com/wangpei886/p/8043021.html

你可能感兴趣的文章
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
Day13
查看>>
tensorflow saver简介+Demo with linear-model
查看>>
Luogu_4103 [HEOI2014]大工程
查看>>
Oracle——SQL基础
查看>>
项目置顶随笔
查看>>
Redis的安装与使用
查看>>
P1970 花匠
查看>>
java语言与java技术
查看>>
NOIP2016提高A组五校联考2总结
查看>>
iOS 项目的编译速度提高
查看>>
table中checkbox选择多行
查看>>
Magento开发文档(三):Magento控制器
查看>>
性能调优攻略
查看>>
ie6解决png图片透明问题
查看>>