关于elasticsearch和kibana的时区和日期问题

摘要:
Elasticsearch本机支持日期类型。json格式使用字符表示日期类型。因此,当使用json将日期提交给弹性搜索时,es将被隐式转换,而es认为是日期类型的字符串将被直接转换为日期类型。日期类型包含时区信息。如果我们没有在表示日期的json字符串中明确指定时区,对于es来说是可以的,但是如果我们通过Kibana显示es中的数据,就会出现问题。数据将延迟8小时。这将导致Kibana经常遇到的“数据延迟8小时”问题。

elasticsearch原生支持date类型,json格式通过字符来表示date类型。所以在用json提交日期至elasticsearch的时候,es会隐式转换,把es认为是date类型的字符串直接转为date类型。至于什么样的字符串es会认为可以转换成date类型,参考elasticsearch官网介绍https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html。

  date类型是包含时区信息的,如果我们没有在json代表日期的字符串中显式指定时区,对es来说没什么问题,但是如果通过kibana显示es里的数据时,就会出现问题,数据的时间会晚8个小时。因为kibana从es里读取的date类型数据,没有时区信息,kibana会默认当作0时区来解析,但是kibana在通过浏览器展示的时候,会通过js获取当前客户端机器所在的时区,也就是东八区,所以kibana会把从es得到的日期数据减去8小时。这里就会导致kibana经常遇到的“数据时间延迟8小时”的问题。

  所以最佳实践方案就是:我们在往es提交日期数据的时候,直接提交带有时区信息的日期字符串,如:“2016-07-15T12:58:17.136+0800”。

免责声明:文章转载自《关于elasticsearch和kibana的时区和日期问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java中如何解决double和float精度不准的问题图论——染色法判定二分图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

bootstrap-datepicker限定可选时间范围

此项目是bootstrap-datetimepicker 项目的一个分支,原项目不支持 Time选择。其它部分也进行了改进、增强,例如 load过程增加了对 ISO-8601 日期格式的支持。文档是拷贝/粘贴字原项目的文档,并且加入了更多细节说明。 别犹豫了,下载下来试试吧 ! 下载 ZIP 包 此地址可以克隆或fork本项目git clone gi...

elasticsearch7.3版本环境搭建(二)可视化管理后台kibana的安装和配置

本文已同步至个人小站:http://www.xiaodong.live/content/9.html 之前说过elasticsearch7.3的安装,安装elasticsearch7.3后,除了用接口去查询数据,我们还可以使用一个可视化界面去管理数据。 elasticsearch7.3 配套的管理后台是kibana,这个界面也是挺漂亮的,而且功能比较多。下...

Shell脚本编程(一)

shell 脚本编程(一) 1 . shell 的作用 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地...

ElasticSearch 7.14安装步骤【windows平台】

一、下载和安装ElasticSearch 下载地址如下:https://www.elastic.co/downloads/elasticsearch 选择下图中的链接: 下载后的压缩包如下: 解压,然后进入bin目录 双击elasticsearch.bat    如果没有报错,并且命令行窗口里有started字样,表示启动成功了。  二、安装Elas...

Django -- class Meta:详解

模型元数据是“任何不是字段的数据”,比如排序选项(ordering),数据库表名(db_table)或者人类可读的单复数名称(verbose_name和verbose_name_plural)。在模型中添加class Meta是完全可选的,所有选项都不是必须的。 classBook(models.Model): name =models.CharF...

mysql存储过程语法及实例

存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。 --------------------基本语法-------------------- 一.创建存储过程create procedure sp_name()begin.........end 二.调用存储过程1.基本语法:call sp_name()注意:存储过程名...