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


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


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


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


    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的索引,并设置参数

    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"
          }
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

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

    2. 添加数据

    将下列数据在控制台执行

    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"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    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(index=kibana-test-2023.11.01,timefield=date,metric=sum:age)
    
    • 1

    5.2.4 时序数据图展示

    执行后可看到左侧区域展示出随时间变化的数据
    在这里插入图片描述


    感谢阅读,祝君暴富!

  • 相关阅读:
    scrapy爬虫实践(部分源代码)
    MySQL中SQL语句的执行顺序
    搬砖神器 VScode
    第四天:java基础复习(集合)
    再有人说synchronized是重量级锁,就把这篇文章扔给他看
    浏览器如何更改定位位置-VMLogin指纹浏览器Geolocation经纬度设置
    SpringBoot
    自然语言处理-词向量模型-Word2Vec
    数据结构、算法
    GDB调试技巧汇总
  • 原文地址:https://blog.csdn.net/mo_sss/article/details/134159226