ShuiBo'blog

人生若只如初见

嗨,我是水波 (@saber).


君以国士待我,我必国士报之。

logstash-elasticsearch-kibana时间问题

基于elk搭建一套日志系统,在搭建的同时发现一个关于时间的问题。

发现问题

0x01

设置索引mapping,写入日志,filebeat收集传送到logstash上。使用kibana查看数据,此时会发现,过去的十五分钟无数据。这是为啥?明明看到logstash写进去了。去看下文档数,确实写进去了。

0x02

十五分钟没有,往前半小时也是没有,一整天都没有(现在时间16点多)。将时间范围调整到整个月的时候,神奇的事发生了。。。在往后的八小时出现了数据了。这就是timezone的问题了。

0x03

使用api调用的时候同样也是时间范围需要添加八小时才能读取出来数据,确定是es的问题。es系统的时区是utc的导致写日期数据的时候是写死应用服务器上的时间,并不是utc。使用utc查询的时候就会导致时间相差八小时。

解决问题

因为我们并不是在utc时区,应用服务器需设置成当前时区的时间,es又是第三方提供的,所以我们就只能在kibana上做操作了。

修改kibana的时区即可。

  1. kibana的Management菜单内,Advanced Settings选项。这里面有很多关于kibana的设置,dateFormat:tz就是时区的设置了。
  2. 设置成utc即可。

由于kibana的时间格式看着比较变扭,也可以修改Advanced Settings的dateFormat成YYYY-MM-DD HH:mm:ss.SSS,这样就看着顺眼多了。

最近的文章

logrotate使用教程

0x01 前言日志文件随着系统的运行,会越积越多。如何来解决这个问题呢?手动删除->自动删除->压缩后,自动删除 手动删除:磁盘报警就直接删掉历史的 自动删除:写脚本定期执行删除 压缩后,自动删除:定期删除的话,如果单周期内的日志文件很大也会导致磁盘过高。所以需要先进行压缩。刚想上手写个脚本来实现的,就被安利了logrotate,一直捣鼓日志这块,竟然没有发现这个便捷的工具。之前傻傻的执行gzip。。。0x02 简介logrotate可以简化对大量日志的管理。它可以对日志...…

继续阅读
更早的文章

rust学习之二

昨天参加团建没有看这些,之后继续补上。开始学习第二章的猜猜看游戏。猜猜看游戏流程 生成一个随机数 输入一个数 比较输入数与随机数 如果相等则猜对了,否则继续步骤2代码extern crate rand;use std::io;use std::cmp::Ordering;use rand::Rng;fn main() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen...…

继续阅读