Kibana使用Timelion根据时间序列展示数据

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • [1. 创建索引](#1. 创建索引)
  • [2. 添加数据](#2. 添加数据)
  • [3. 创建Index Patterns](#3. 创建Index Patterns)
  • [4. Discover查看数据](#4. Discover查看数据)
  • [5. 使用Timelion查看时序数据](#5. 使用Timelion查看时序数据)
    • [5.1 Timelion左侧时序数据显示区域](#5.1 Timelion左侧时序数据显示区域)
    • [5.2 Timelion右侧时间及语法区域](#5.2 Timelion右侧时间及语法区域)
      • [5.2.1 时间范围选择](#5.2.1 时间范围选择)
      • [5.2.2 Interval间隔](#5.2.2 Interval间隔)
      • [5.2.3 Timelion expression语法](#5.2.3 Timelion expression语法)
      • [5.2.4 时序数据图展示](#5.2.4 时序数据图展示)

ELK参考文章:
ELK下载(Elasticsearch、Logstash、Kibana)
Elasticsearch安装
Kibana安装、配置
kibana操作elasticsearch(增删改查)
Java操作Elasticsearch(新增数据)
kibana查看和展示es数据(index pattern、discover、dashboard)
Kibana功能栏中找不到Timelion功能模块的解决

前言es部分语法只适用于新的版本,请尽量使用新点的es和kibana版本,这里均以7.17.0版本为例

1. 创建索引

创建名称为kibana-test-2023.11.01的索引,并设置参数

sql 复制代码
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"
      }
    }
  }
}

注:timestamp时间字段相关

这里的重点是时间参数的设置

必须要有date类型的字段才可以,不然后续timelion使用无效
date字段名可以自定义,但是他的type类型的值必须是date
format是时间对应的格式,也就是后续添加数据时时间的格式为上面三种,如2023-11-01 13:26:56或者2023-11-01或者使用毫秒数

2. 添加数据

将下列数据在控制台执行

sql 复制代码
POST kibana-test-2023.11.01/_doc
{
	"name":"李元芳",
	"age":10086,
	"number":"00001",
	"date":"2023-11-01 10:07:40"
}
POST kibana-test-2023.11.01/_doc
{
	"name":"狄仁杰",
	"age":12315,
	"number":"00002",
	"date":"2023-11-01 10:35:40"
}
POST kibana-test-2023.11.01/_doc
{
	"name":"百里守约",
	"age":10000,
	"number":"00003",
	"date":"2023-11-01 10:44:40"
}
POST kibana-test-2023.11.01/_doc
{
	"name":"孙悟空",
	"age":10010,
	"number":"00004",
	"date":"2023-11-01 11:07:40"
}
POST kibana-test-2023.11.01/_doc
{
	"name":"孙尚香",
	"age":12345,
	"number":"00005",
	"date":"2023-11-01 12:07:45"
}
POST kibana-test-2023.11.01/_doc
{
	"name":"武则天",
	"age":12123,
	"number":"00006",
	"date":"2023-11-01 13:27:50"
}

3. 创建Index Patterns

找到index patterns位置

在侧栏Management-->Stack Management-->kibana-->Index Patterns

进入Index Patterns界面后直接点Create index pattern创建

如下,右侧可看到索引列表,填入索引名称,也可以不写完整的名称用*作为后缀来模糊匹配

填完名称后,可以看到Timestamp field可以点(如果创建索引时没有设置时间字段对应的date类型参数映射,则这里无法选择),点开后会弹出我们创建时设置的时间字段date

选择date然后Create index pattern创建即可完成

4. Discover查看数据

kibana左侧栏Analytics-->Discover进入查看数据界面

如果不是默认的index,则需要选择,打开索引列表下拉框,选择刚刚创建好的index pattern对应的索引名称kibana-test-2023.11.01

此时看到该索引的所有数据,并且上方为时间展示的视图内容,如果图标中没有数据,则是因为我们的数据创建的时间不在默认图标选择的时间范围内,修改图标展示的时间范围即可,如图

刚刚创建的数据为今天2023-11-01,所以选择今天Today来展示,就会看到

具体的时间范围选择请参考后续的5.2.1时间范围选择

注:时区问题

这里有个问题,就是数据的时区问题,我们看到上图展示的时间并不是我们创建数据的时间,图标的时间和数据中的时间快了8个小时,这是时区问题,解决方法请参考另一篇文章:kibana显示时间数据时的时区问题及时间显示格式设置

5. 使用Timelion查看时序数据

找到Timelion的位置
kibana侧边栏中Analytics-->Visualize Library-->Create new visualization-->Aggregation based-->Explore options-->Timelion

5.1 Timelion左侧时序数据显示区域

这里如图没有数据,主要跟默认索引、右侧的时间范围以及语法有关

5.2 Timelion右侧时间及语法区域

包含了时间范围选择间隔es语法输入

5.2.1 时间范围选择

这里需要注意的地方,右侧的时间范围选择,默认是Last 15 minutes,表示展示此刻之前15分钟范围的数据

只有数据的时间字段值在这个时间范围内才会被显示出来

通过点击时间框前的日历小图标来快速选择时间范围

或者自定义输入时间范围,点时间框(即下方~ 15 minutes ago的位置),会有三种时间自定义(绝对、相对、现在)

刚刚我创建的数据都是今天的,所以想要全部显示出来就将时间范围换成了Today
Absolute绝对时间

即表示可以设置时间起止节点,如图,将箭头前后时间选择两个时间节点,即可展示时间范围内的节点

开始时间选择2023.11.01后面的时分秒则会显示默认的当前时间时分秒10.23.52

结束时间选择2023.11.06后面的时分秒依旧是当前时间的时分秒10.25.39

然后右侧Update跟新时间范围即可查看到时间范围的数据

展示的数据内容如下

Reletive相对时间

左侧选择相对时间的范围,相对于右侧的时间节点来说的

右侧选择时间节点,然后Update即可

5.2.2 Interval间隔

这里应该是图形界面显示数据时,刷新此数据信息的时间间隔

默认是Auto,这里不做修改

5.2.3 Timelion expression语法

填写es的语法,根据语法展示时序数据的内容

默认是.es(*)

系统默认的索引是空的,即使默认的索引不是空的,但是索引中没有时间date类型的字段映射值,也是显示不出数据的

只有当默认索引不为空,且该默认索引的映射中有date类型的字段,并且该字段在创建index pattern时被选中,且数据时间在右侧栏展示时间范围内,才会有数据展示出来

这里我们直接使用语法指定索引,然后进行数据展示

新一点的版本都有语法提示信息,使用起来更方便

使用语法查询

es 复制代码
.es(index=kibana-test-2023.11.01,timefield=date,metric=sum:age)

5.2.4 时序数据图展示

执行后可看到左侧区域展示出随时间变化的数据


感谢阅读,祝君暴富!

相关推荐
弗拉唐34 分钟前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
sun00770035 分钟前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
oi771 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
BestandW1shEs1 小时前
谈谈Mysql的常见基础问题
数据库·mysql
重生之Java开发工程师1 小时前
MySQL中的CAST类型转换函数
数据库·sql·mysql
教练、我想打篮球1 小时前
66 mysql 的 表自增长锁
数据库·mysql
Ljw...1 小时前
表的操作(MySQL)
数据库·mysql·表的操作
哥谭居民00011 小时前
MySQL的权限管理机制--授权表
数据库