Kibana5.4 简明教程「建议收藏」

Kibana5.4 简明教程「建议收藏」本文翻译自 Kibana5.4 版本官方教程,教你怎样一步步分析数据,将你的数据转化为一目了然的图标数据。

本文翻译自Kibana5.4版本官方教程。文章首发于我的个人博客网站梧桐和风的博客,欢迎关注。

开始

想要得到一些关于Kibana的实际经验吗,下面教程会叫你怎样做。

  • 向Elasticsearch导入一些样本数据
  • 定义一个索引模式
  • Discover搜索样本数据
  • 为样本数据建立visualizations【可视化图表组件】
  • 将可视化数据汇集到Dashboard

开始之前,你必须确保已成功安装Kibana,并且能连上Elasticsearch

加载样本数据

本部分内容依赖下列数据

下载完成后,用下面的命令解压文件

unzip accounts.zip
gunzip logs.jsonl.gz

莎士比亚全集的数据结构如下:

{
    "line_id": integer,
    "play_name": "String",
    "speech_number": integer,
    "line_number": "String",
    "speaker": "String",
    "text_entry": "String",
}

账户信息的数据结构如下:

{
    "account_number":integer,
    "balance":integer,
    "firstname": "String",
    "lastname": "String",
    "age":integer,
    "gender": "M or F",
    "address": "String",
    "employer": "String",
    "email": "String",
    "city": "String",
    "state": "String"
}

日志文件的数据信息有十几个字段,在这里我们主要使用如下几个字段:

{
    "memory": integer,
    "geo.coordinates": "geo_point",
    "@timestamp":"date"
}

在我们加载莎士比亚数据和日志文档时,需要为这些字段建立映射(Mapping),映射将索引中的文档划分成逻辑组,并指定文档的特性。比如文档的可分析性或是否可被标记、可被分析等特性。

使用下面的终端命令(比如使用bash)设置莎士比亚数据的映射。

curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/shakespeare -d '
{
 "mappings" : {
  "_default_" : {
   "properties" : {
    "speaker" : {"type": "string", "index" : "not_analyzed" },
    "play_name" : {"type": "string", "index" : "not_analyzed" },
    "line_id" : { "type" : "integer" },
    "speech_number" : { "type" : "integer" }
   }
  }
 }
}
';

下面一一来分析该映射含义:

  • speaker字段为不能被分析字符串类型。表明该字段将被当做独立的单元处理,即使包含多个词。
  • play_name处理同上。
  • line_idspeech_number字段为数值类型。

使用以下命令为日志文件创建geo_point类型的映射。

curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/logstash-2015.05.18 -d '
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}
';

curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/logstash-2015.05.19 -d '
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}
';

curl -H 'Content-Type: application/json' -XPUT http://localhost:9200/logstash-2015.05.20 -d '
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}
';

有关账户信息的数据不需要建立映射。现在我们来把这些数据导入到Elasticsearch中。这里需要用到Elasticsearch bulk API

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl

执行以下命令可能需要一些时间,至于多少就要看你的计算机性能水平了。可用下面命令验证是否导入成功:

curl ‘localhost:9200/_cat/indices?v’

若执行成功,你应该能看到类似下面的输出

health status index               pri rep docs.count docs.deleted store.size pri.store.size
yellow open   bank                  5   1       1000            0    418.2kb        418.2kb
yellow open   shakespeare           5   1     111396            0     17.6mb         17.6mb
yellow open   logstash-2015.05.18   5   1       4631            0     15.6mb         15.6mb
yellow open   logstash-2015.05.19   5   1       4624            0     15.7mb         15.7mb
yellow open   logstash-2015.05.20   5   1       4750            0     16.4mb         16.4mb

定义你的索引模式

每个加载到Elasticsearch的数据集需要一个索引模式(index pattern)。 在前面的章节里,莎士比亚数据集的索引名为shakespeare ,账户数据集的索引名为bank索引模式是一个含有可选通配符的字符串,它能匹配多个索引。举个例子,在常见的日志中,一个包含日期的索引名如 YYYY.MM.DD,则对应5月的索引模式应该是logstach-2915-05*这样。

在该文档中,任何被匹配的索引都将被Kibana分析并处理。打开浏览器访问localhost:5601,【译者注:需保证同时开启Elasticsearch和Kibana】单击左侧面板的Management标签,会出现Configure an index pattern页面。在 Index name or pattern填入shakes*以便能匹配莎士比亚数据集的数据。这时需注意不要勾选Index contains time-based events选项。随后点击create即可。照此再创建一个索引模式名为 ba*,以能匹配账户信息。

日志文件数据集是基于时间的,所以再创建第3个索引模式,这时选中Index contains time-based events选项,选择@timestamp字段作为分析日期的依据。

探索你的数据

点击左侧面板中的Discover标签。即进入探索(Discover)数据页面。

Kibana5.4 简明教程「建议收藏」

最上端是查询框,你可以输入Elasticsearch 查询语句查询你的数据。你可以导出查询结果,根据保存结果创建可视化图表(visualizations)。

当前匹配的索引数据展示在搜索框下面。索引模式决定了在你搜索时哪些索引的数据会显示出来。

你可以直接用字段名或你感兴趣的任何值来构建你的查询。对应数值字段,你可以直接使用>,<,=等运算符。或者,你可以用 ANDOR, NOT等逻辑运算符连接你的查询元素。

比如,选择ba*模式匹配然后在查询框中输入下列查询

account_number:<100 AND balance:>47500

该查询将返回账户在0至99之间的,余额在47500以上的所有数据。如下图所示,它返回了5条数据,账户分别是8,32,78,85,97

Kibana5.4 简明教程「建议收藏」

默认情况下,每条数据将显示所有字段。为了只让需要的字段显示,你可以在左侧展示字段的区域点击要显示字段右侧的add按钮。

Kibana5.4 简明教程「建议收藏」

可视化你的数据

点击左侧面板的Visualize按钮开始可视化数据。

Kibana5.4 简明教程「建议收藏」

可视化工具能够以多种方式观察分析你的数据,下面我们就用饼状图来分析一下账户信息数据集。点击下图的Create a visualization 开始我们的实践。

下面展示了几种分析数据的可视化类型,点击pie类型。

Kibana5.4 简明教程「建议收藏」

你可以用保存的数据完成可视化工作,或者重建一个搜索条件。由于我们要分析账户信息数据,所以选择ba*索引模式。

Kibana5.4 简明教程「建议收藏」

默认搜索匹配所有文档数据,现在,饼状图是单个的“一大块”

Kibana5.4 简明教程「建议收藏」

为了指定要在图表中显示哪些分片,我们需要使用Elasticsearch的buncket聚合(即桶聚合)。桶聚合会将符合搜索条件的文档分为不同的类别。例如,帐户数据包括每个帐户的余额,使用桶聚合,可以建立多个帐户余额范围,并找出每个范围的账户数量。

下面是建立桶聚合的过程:

  1. 点击Split Slices桶类型
  2. Aggregation下拉列表中选择Range聚合类型
  3. Field列表中选择balance字段
  4. 点击Add Range依次输入下列范围
  5. 点击Apply changes执行分析。
0             999
1000 2999
3000 6999
7000 14999
15000       30999
31000       50000

现在你能看到每个范围内的具体分布。

Kibana5.4 简明教程「建议收藏」

让我们看看数据的另一个维度:帐户持有者的年龄。通过添加另一个桶聚合,您可以在每个余额范围内查看帐户持有人的年龄

  1. 点击Add sub-buckets按钮添加一个子聚合。
  2. 点击Split Slices聚合类型
  3. 从聚合列表中选择Terms
  4. 在字段列表选择age字段
  5. 点击Apply changes执行分析。

现在你可以看到帐户持有人的年龄在上述各个范围的分布状况

Kibana5.4 简明教程「建议收藏」

若要保存此图表,以便以后使用它,单击“save”并输入”Pie Example”。

接下来,让我们来看看莎士比亚数据集的怎样在条形图中显示和分析。

  1. 在“选择可视化类型”页面点击Vertical Bar类型。
  2. 选择shakes*索引模式。
  3. 为在Y轴显示每部戏中演讲者的数量,需要配置Y轴方向的度量值。选择Unique Count度量类型以及speaker字段。另外,你可以为该统计自定义一个标签名,比如这里称为 Speaking Parts
  4. 创建X-Axis聚合类型。选择Terms类型及play_name字段,可在自定义标签中写Play Name
  5. 点击Apply changes执行分析。

Kibana5.4 简明教程「建议收藏」

注意剧本名是如何表现出来的,而不是被分解成单个的单词。这是因为我们在开始就设置了play_name是不被分析的。

下面再来一点复杂的,你可能好奇每部戏中最大的对白台词是多少,你可以这样做:

  1. 点击metrics再添加一个Y轴聚合
  2. 选择Max聚合类型及speech_number字段
  3. 选择Options选项卡,将Bar Mode 改为 grouped模式。【译者注:这里在我这的版本并没有看到该选项,不知是不是版本问题,若同此,选择Metrics&Axes,在相应聚合下将 Modestack改为mormal
  4. 点击Apply changes执行分析。

Kibana5.4 简明教程「建议收藏」

保存图表并将其命名为 Bar Example.

接下来,我们将使用瓦片地图(Tile Map)来可视化我们日志文件示例数据中的地理信息。

  1. 在“选择可视化类型”页面点击Tile map类型。
  2. 选择logstash-*索引模式
  3. 点击右上角时间按钮,在弹出的时间选择面板中选择absolute,然后将时间定为起始2015-05-18到2015-05-20区间。 Kibana5.4 简明教程「建议收藏」
  4. 选择Geohash聚合类型,点击Apply changes执行分析即可看到如下信息

    Kibana5.4 简明教程「建议收藏」

你可以通过地图左上角的按钮对地图进行放大缩小、看清地图所有点及各种操作。

Kibana5.4 简明教程「建议收藏」

最后可以点击save保存该结果,并命名为Map Example

最后,可以使用Markdown widget来制作markdown编辑器。

  1. 在“选择可视化类型”页面点击Other中的MarkDown类型。
  2. 接下来就可以编写markdown文档了。

Kibana5.4 简明教程「建议收藏」

用Dashboards集中展示数据

Dashboards(仪表盘)可将上部分的可视化图表组件集中起来。你可以通过以下步骤完成。

  1. 点击左侧面板的Dashboard标签。
  2. 点击Add,可显示出你在visualizations保存的可视化图列表
  3. 选取要显示在仪表盘的可视化组件,这里我们选择Markdown Example, Pie Example, Bar Example, and Map Example

好了,仪表盘就这样做好了

Kibana5.4 简明教程「建议收藏」




FRIENDS

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13057.html

(0)

相关推荐

  • 「从零单排canal 02」 canal集群版 + admin控制台 最新搭建姿势(基于1.1.4版本)

    「从零单排canal 02」 canal集群版 + admin控制台 最新搭建姿势(基于1.1.4版本)canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费。应该是阿里云DTS(Data Transfer Serv…

    2023-03-09
    152
  • Python字典添加键值对函数实现

    Python字典添加键值对函数实现Python给开发者提供了丰富的数据类型,包括列表、元组、字符串和字典等。在Python中,字典是一种非常常用的数据类型,可以用来存储键值对。

    2024-08-18
    24
  • oracle将时间戳转化为时间格式_oracle数据库时间格式

    oracle将时间戳转化为时间格式_oracle数据库时间格式通常我们在oracle中写日期格式化是这样的 to_date(时间,'yyyy-mm-dd') 但是,有时候也会遇到一些别样的需求,比如这样 : 让你按”xxxx年xx月xx日 …

    2023-03-07
    151
  • 如何退出vim编辑模式

    如何退出vim编辑模式Vi是一个很古老却也很强大的文本编辑器,Vim是Vi的增强版。在使用Vim编辑文件时,由于其非常特殊的编辑模式和操作方式,经常会导致新手遇到困难。尤其是在退出编辑模式时,可能会不小心关闭文件而没有保存,或者根本不知道如何退出编辑模式。本文将详细介绍如何正确地退出Vim编辑模式。

    2024-07-02
    46
  • Python中使用while break循环来控制程序控制流

    Python中使用while break循环来控制程序控制流Python中的bwhile/b循环是循环控制结构之一,可以重复执行一组语句,直到指定条件不再满足。同时,bbreak/b语句可以被用来在程序运行的任何时候立即停止循环。

    2024-03-11
    75
  • mysql 高性能树查询_MySQL调优

    mysql 高性能树查询_MySQL调优前缀索引和索引选择性 有时候需要索引很长的字符,这会让索引变得大且慢。一个策略是模拟哈希索引。 通常可以索引开始的部分字符,这样可以大大解约索引空间,提高索引效率。但这样会降低索引的选择性。 索引的选

    2023-04-24
    170
  • MySQL触发器了解一下「终于解决」

    MySQL触发器了解一下「终于解决」简介 触发器是与表有关的数据库对象,当表发生INSERT/UPDATE/DELETE操作时,对应操作的触发器会被触发,将在这些操作之前或之后执行触发器中定义的SQL语句集合。 触发器的使用 创建触发器

    2023-04-12
    149
  • Python Args用法详解

    Python Args用法详解在Python编程中,使用函数进行开发是非常常见的操作。然而,当函数的参数数量增多时,函数调用的难度也会逐渐增加,同时参数传递的灵活性也会变得不够优秀。本文将会详细介绍Python中args参数的用法,以及在实际开发中的应用。

    2024-05-24
    63

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注