问题描述
使用ES保存日志数据,当天插入的数据在kibana中虽然可以通过开发工具的DSL查询到,但是却无法在日志展示中看到,要到第二天才可以看到。
问题原因
ES保存数据时,如果date类型的字段没有指定时区,它会认为其为UTC时间,也就是零时区时间。
当检索时,kibana会根据浏览器时区对ES中保存的时间进行转化,以我们东八区为例,会自动将日期减去八小时,因此查询到当前的数据就无法检索到刚插入的数据,要到第二天才可以看。
解决方式
- 在保存时,直接使用UTC时间
- 保存时间时指定时区,如
2018-01-27T08:07+08:00
,注意如果不设定日期的format的话,依赖于ES内置的日期识别,格式必须符合ES预舍的数种格式:
ES相关官方文档如下:
ES日期数据类型设置方式
ES内置日期转换器