logstash修改es创建索引的时间为凌晨00:00;

文章描述了一个由于Logstash使用UTC时间导致的日志索引生成时间不匹配问题,以及解决方案。解决方案包括在Logstash配置中调整时间戳加8小时,确保索引在正确时间生成,同时修改Kibana的显示时间为UTC,以正确展示日志时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

因公司目前业务量不大,故把elk部在了虚机上,给予的硬盘空间少的离谱,需一天清一次开测环境的日志,当写完脚本定时执行发现每天的定时任务日志是正常的但是第二天发现索引还在!起初以为是脚本或定时任务的问题,最后发现是索引的生成时间有问题,索引默认的生成时间是凌晨八点;而脚本的定时任务是凌晨四点,肯定是生效了,但是由于还有数据写入就又会生成这个索引;

在这里插入图片描述
在这里插入图片描述


原因分析:

因为logstash默认使用的UTC时间,我们现在处于的是东八区CST(CST=UTC+8h),也就是UTC时间是比我们慢8个小时的,当UTC时间到00:00的时候,会触发生成新的索引,这时候我们就已经到了08:00;


解决方案:

1、索引的创建时间日志写入es的时间是根据默认的"@timestamp"字段来创建写入的,所以直接给"@timestamp"加上8小时即可;这样,索引生成的时间就是00:00了

filter {
        date {
          match => ["log_time", "yyyy-MM-dd HH:mm:ss.SSS"]
          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插件:将@timestamp字段替换为我日志中的log_time字段,主要是将日志写入es的时间修改为我日志生成的时间;
  • ruby1::将"@timestamp"字段的时间+8个小时赋值给新的"timestamp"字段
  • ruby2:将"timestamp"字段再赋值给"@timestamp"字段
  • mutate:删除多余的"timestamp"字段

如下:
修改后观察第二天索引的创建时间戳已正常改为凌晨00:00
在这里插入图片描述
在这里插入图片描述



2、还有一点是需要将kibana的显示时间改为UTC,默认kibana是自动根据浏览器"Browser"的时间来的,这样会导致我们现在的时间+8小时;当改为UTC后+8h正好符合我们现在的时间

使用kibana的默认时间"Browser"显示日志如下
在这里插入图片描述

可以看出kibana显示的时间为浏览器的时间东八区时间CST(CST=UTC+8h)+8h,所以会比我们实际日志产生的时间多了8h,即只需要将kibana的显示时间改为UTC即可;

kibana7.x修改显示的时间为UTC:
kibana界⾯⿏标依次点击如下:
(1)菜单栏;
(2)StackManagement;
(3)Kibana;
(4)高级设置;
在这里插入图片描述
kibana6.x修改显示的时间为UTC:
kibana界⾯⿏标依次点击如下:
(1)菜单栏;
(2)管理
(3)Kibana;
(4)高级设置;
在这里插入图片描述
kibana修改显示的时间为UTC格式后,日志如下:
在这里插入图片描述
显示时间一切正常;


总结

简单来说解决方案就是两步

(1)把logstash由默认的UTC时区修改为我们的东八区CST(CST=UTC+8h),也就是把logstash的默认"索引的创建时间日志写入es的时间"+8h

(2)将kibana默认的浏览器时间"Browser"(东八区)改为UTC时区

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知名运维:

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值