天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 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
中产看的时间数据格式就是根据这里显示的
感谢阅读,祝君暴富!