天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 1. 问题描述
- 2. 问题重现
- 2.1 创建索引
- 2.2 添加数据
- 2.3 查看数据
- 3. 解决方法
- 3.1 创建索引
- 3.2 添加数据
- 3.3 查看数据
- 4. 拓展
1. 问题描述
使用kibana
控制台(Dev Tools
)新增数据后,时间字段的值并不是自己定义的值,而是在自己定义的时间上加了8个小时。
比如我新增数据时,时间字段的值写的是2023-11-01 15:22:54
执行命令后,到kibana
的界面查看数据就变成了2023-11-01 23:22:54.000
,这里时间大体一致,就是加了8小时,明显的时区问题,至于后面的.000这是跟kibana设置中的默认时间格式有关,拓展中略说以下,先解决时区问题
2. 问题重现
2.1 创建索引
PUT kibana-test-2023.11.01
{"settings": {"number_of_shards": 2,"number_of_replicas": 1},"mappings": {"properties": {"name": {"type": "text"},"number": {"type": "keyword"},"age": {"type": "integer"},"date": {"type": "date","format": "yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis"}}}
}
2.2 添加数据
可以多来几个
POST kibana-test-2023.11.01/_doc
{"name":"武则天","age":12123,"number":"00006","date":"2023-11-01 13:27:50"
}
2.3 查看数据
创建index pattern
后discover
查看数据如下图,时间+8
小时
3. 解决方法
在创建索引时,将时区也定义其中,然后添加数据时,将时区的差值填上,即在format
的时间格式中加入Z
参数,表示时区参数
3.1 创建索引
PUT kibana-test-2023.11.02
{"settings": {"number_of_shards": 2,"number_of_replicas": 1},"mappings": {"properties": {"name": {"type": "text"},"number": {"type": "keyword"},"age": {"type": "integer"},"date": {"type": "date","format": "yyyy-MM-dd HH:mm:ss Z"}}}
}
3.2 添加数据
在时间字段的值中加入时区信息+0800
表示中国时区
POST kibana-test-2023.11.02/_doc
{"name":"李元芳","age":10086,"number":"00001","date":"2023-11-01 10:07:40 +0800"
}
POST kibana-test-2023.11.02/_doc
{"name":"狄仁杰","age":12315,"number":"00002","date":"2023-11-01 10:35:40 +0800"
}
POST kibana-test-2023.11.02/_doc
{"name":"百里守约","age":10000,"number":"00003","date":"2023-11-01 10:44:40 +0800"
}
POST kibana-test-2023.11.02/_doc
{"name":"孙悟空","age":10010,"number":"00004","date":"2023-11-01 11:07:40 +0800"
}
POST kibana-test-2023.11.02/_doc
{"name":"孙尚香","age":12345,"number":"00005","date":"2023-11-01 12:07:45 +0800"
}
3.3 查看数据
创建index pattern
后到discover
查看,时间与存入的数据一致
4. 拓展
kibana
设置时间显示格式
找到Advanced Settings
的位置
新旧版本略有差异,旧版本在Management
界面可直接看到Advanced Settings
新版本则在kibana
侧边栏Management-->Stack Management-->kibana-->Advanced Settings
在Advanced Settings
界面找到Date format
或dateFormat
进行设置
这里可以点format
来跳转时间格式转换的界面,和Java
中的时间定义格式不太一样
我这里可以使用Java
相同的格式
YYYY-MM-DD HH:mm:ss.SSS
这里定义后,在kibana
中显示时就会按照转换格式来显示存入的数据,如discover
中产看的时间数据格式就是根据这里显示的
感谢阅读,祝君暴富!