构建自己的仪表板

准备加载一些数据并构建仪表板?本教程将向您展示如何:

  • 将数据集加载到Elasticsearch中

  • 定义索引模式

  • 发现并探索数据

  • 可视化数据

  • 将可视化添加到仪表板

  • 检查可视化背后的数据

加载样本数据


本教程需要三个数据集:

  • William Shakespeare的全部作品,适当地解析成字段。下载 shakespeare.json

  • 一组带有随机生成数据的虚构帐户。下载 accounts.zip

  • 一组随机生成的日志文件。下载 logs.jsonl.gz

其中两个数据集是压缩的。要提取文件,请使用以下命令:

unzip accounts.zip
gunzip logs.jsonl.gz

数据集的结构

Shakespeare数据集具有以下结构:

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

accounts数据集的结构如下:

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

logs数据集有许多不同的字段。以下是本教程的重要字段:

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

设置映射

在加载Shakespeare和Logs数据集之前,必须为字段设置映射。映射将索引中的文档划分为逻辑组,并指定字段的特征。这些特征包括字段的可搜索性以及它是否被标记化,或者分解为单独的单词。

注意:

如果启用了安全性,则必须具有全部Kibana权限才能运行本教程。你还必须有create,manage read,write,和delete 指数的特权。有关 详细信息,请参阅安全权限

在Kibana Dev Tools> Console中,设置Shakespeare数据集的映射:

PUT /shakespeare
{
 "mappings": {
  "doc": {
   "properties": {
    "speaker": {"type": "keyword"},
    "play_name": {"type": "keyword"},
    "line_id": {"type": "integer"},
    "speech_number": {"type": "integer"}
   }
  }
 }
}

此映射指定数据集的字段特征:

  • 该speaker和play_name字段是关键字字段。这些字段未分析。即使字符串包含多个单词,它们也会被视为一个单元。

  • 该line_id和speech_number字段是整数。

Logs数据集需要映射以通过应用geo_point类型将纬度和经度对标记为地理位置。

PUT /logstash-2015.05.18
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}

PUT /logstash-2015.05.19
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}

PUT /logstash-2015.05.20
{
  "mappings": {
    "log": {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }
  }
}

Account数据集不需要任何映射。

加载数据集

此时,您已准备好使用Elasticsearch bulk API来加载数据集:

Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"

或者对于Windows用户,在Powershell中运行:

Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"

这些命令可能需要一些时间才能执行,具体取决于可用的计算资源。

验证加载是否成功:

GET /_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

定义索引模式

索引模式告诉Kibana您想要探索哪些Elasticsearch索引。索引模式可以匹配单个索引的名称,或者包含通配符(*)以匹配多个索引。

例如,Logstash通常以logstash-YYYY.MMM.DD格式创建一系列索引。要浏览2018年5月的所有日志数据,您可以指定索引模式 logstash-2018.05*。

您将为shakespeare数据集创建模式,该数据集具有一个名为索引shakespeare,和Account数据集,其中包含一个名为bank.的索引。 这些数据集不包含时间序列数据。

  1. 在Kibana中,打开“ Management管理”,然后单击“ Index Patterns索引模式”。

  2. 如果这是您的第一个索引模式,则会自动打开“ Create index pattern创建索引模式”页面。否则,单击左上角的“ Create index pattern创建索引模式 ”。

  3. Index pattern索引模式字段中输入shakes*。

Kibana教程之五:构建自己的仪表板

  1. 单击”Next step下一步”

  2. Configure settings配置设置中,单击Create index pattern创建索引模式。对于此模式,您无需配置任何设置。

  3. 定义名为 ba* 的第二个索引模式,不需要为此模式配置任何设置。

现在为Logstash数据集创建索引模式。该数据集包含时间序列数据。

  1. 定义名为的索引模式 logstash*.

  2. 单击Next step下一步

  3. Configure settings配置设置中,在Time Filter field name时间过滤器字段名称下拉菜单中选择@timestamp

  4. 单击Create index pattern创建索引模式。

注意 定义索引模式时,与该模式匹配的索引必须存在于Elasticsearch中,并且它们必须包含数据。要检查哪些索引可用,请转到Dev
Tools > Console
并输入GET _cat/indices。或者,使用curl -XGET
http://localhost:9200/_cat/indices”。

Discover您的数据

使用Discover应用程序,您可以输入Elasticsearch查询来搜索数据并过滤结果。

  1. 打开Discover

    当前索引模式显示在筛选栏的下方,
    在这种情况下shakes*。您可能需要单击菜单栏中的 " New新建" 来刷新数据。

  2. 单击当前索引模式右侧的插入符号,然后选择ba*。

  3. 在搜索字段中,输入以下字符串:
    account_number:\<100 AND balance:\>47500

搜索返回account_number 为0至99之间, 余额超过47500的所有账号。它返回account_number 为8, 32, 78, 85和97的帐号。

Kibana教程之五:构建自己的仪表板

默认情况下,会为每个匹配的文档显示所有字段。要选择要显示的字段,请将指针悬停在“ Available
Fields可用字段 ”列表上 ,然后单击要在表中包含的每个字段旁边的“ add添加”

例如,如果添加account_number字段,则显示将更改为包含五个帐号的列表。

Kibana教程之五:构建自己的仪表板

数据可视化

在Visualize应用程序中,您可以使用各种图表,表格和地图等对数据进行整形。您将创建四个可视化:饼图,条形图,坐标图和Markdown小部件。

  1. 打开Visualize。

  2. 单击“ Create a visualization创建可视化”或“+”按钮。您将在Kibana中看到所有可视化类型。

Kibana教程之五:构建自己的仪表板

  1. 单击Pie饼图

  2. 在“ New Search新建搜索”中,选择ba*索引模式。您将使用饼图来深入了解银行帐户数据中的帐户余额。

饼图

最初,饼图包含一个“slice切片”。那是因为默认搜索匹配所有文档。

Kibana教程之五:构建自己的仪表板

要指定要在饼图中显示的切片,请使用Elasticsearch bucket aggregation桶聚合。此聚合将符合搜索条件的文档分类到不同的类别(也称为存储桶)

使用存储桶聚合来建立多个帐户余额范围,并找出每个范围中有多少帐户。

  1. 在“Buckets存储桶”窗格中,单击“ Split Slices拆分切片”。

  2. Aggregation下拉菜单中,选择Range

  3. 在“ Field字段”下拉菜单中,选择“ balance余额”

  4. 单击“ Add Range添加范围”4次,将范围总数设置为6。

  5. 定义以下范围:

0             999
1000         2999
3000         6999
7000        14999
15000       30999
31000       50000
  1. 单击Apply changes应用更改

    现在,您可以看到1000个帐户中有多少比例属于每个余额范围。

Kibana教程之五:构建自己的仪表板

添加另一个桶聚合,查看帐户持有者的年龄。

  1. 在“ Buckets存储桶”窗格的底部,单击“ Add sub-buckets添加子存储桶”

  2. 在“ Select buckets type选择存储桶类型”中,单击“ Split Slices拆分切片”。

  3. Sub Aggregation下拉列表中,选择Terms

  4. 在“ Field字段”下拉列表中,选择“ age年龄”

  5. 单击 Apply changes应用更改

现在,您可以看到帐户持有人年龄的细分,在内环形显示余额范围。

Kibana教程之五:构建自己的仪表板

要保存此图表以便以后可以使用:

点击顶部菜单栏中的Save保存,然后输入Pie Example。

Kibana教程之五:构建自己的仪表板

条形图

您将使用条形图查看Shakespeare数据集并比较剧中的speaking发言部分数量。

  • 创建Vertical Bar垂直条形图并将搜索源设置为shakes*。

    最初,图表是单个栏,显示与默认通配符查询匹配的文档总数。

Kibana教程之五:构建自己的仪表板

沿 y 轴显示每场表演的发言部分数量。这需要您配置Y轴 metric aggregation度量标准聚合。 此聚合根据搜索结果中的值计算指标。

  1. 在“ Metrics度量标准”窗格中,展开“ Y-AxisY轴”

  2. 将Aggregation聚合设置为Unique Count唯一计数

  3. Field字段设置为speaker发言。

  4. 在“ Custom Label 自定义标签”框中,输入Speaking Parts。

  5. 单击Apply changes 应用更改

Kibana教程之五:构建自己的仪表板

沿X轴显示表演。

  1. 在“ Buckets存储桶”窗格中,单击“ X-Axis X轴”。

  2. Aggregation聚合设置为Terms条款和 Field字段为play_name

  3. 要按字母顺序列出表演,请在“ Order顺序”下拉菜单中选择“ Ascending升序”

  4. 为轴提供自定义标签Play Name。

  5. 单击Apply changes 应用更改

    将鼠标悬停在某个条形图上会显示一个工具提示,其中包含该表演的说话部分数量。

    注意各个表演名称如何显示为整个短语,而不是分成单个单词。这是您在本教程开始时将该play_name字段标记为的映射的结果not
    analyzed。

    使用名称保存此图表Bar Example。

坐标地图

使用坐标图,可以可视化日志文件样本数据中的地理信息。

  1. 创建Coordinate map坐标地图并将搜索源设置为logstash*。

  2. 在顶部菜单栏中,单击最右侧的时间选择器。

  3. 单击Absolute绝对

  4. 将开始时间设置为2015年5月18日,结束时间为2015年5月20日。

  5. 单击Go

    您还没有定义任何存储桶,因此可视化是一个世界地图。

Kibana教程之五:构建自己的仪表板

现在映射日志文件中的地理坐标。

  1. 在“Buckets存储桶”窗格中,单击“ Geo Coordinates地理坐标”。

  2. Aggregation聚合设置为Geohash,将Field字段设置为geo.coordinates

  3. 单击Apply changes应用更改

地图现在看起来像这样:

Kibana教程之五:构建自己的仪表板

您可以通过单击并拖动来导航地图。地图左上角的控件可让您缩放地图并设置过滤器。尝试一下。

Kibana教程之五:构建自己的仪表板

使用名称Map Example保存此地图。

Markdown

最终的可视化是Markdown小部件,用于呈现格式化文本。

  1. 创建Markdown可视化。

  2. 在文本框中,输入以下内容:

    #这是一个教程仪表板!

    Markdown小部件使用**markdown**语法。

    > Blockquotes in Markdown use the > character.

  3. 单击 应用更改

Markdown在预览窗格中呈现:

Kibana教程之五:构建自己的仪表板

使用名称Markdown Example保存此可视化。

在仪表板中显示可视化

仪表板是可以安排和共享的可视化集合。您将构建一个包含您在本教程中保存的可视化的仪表板。

  1. 打开Dashboard仪表板

  2. 单击“ Create new dashboard创建新仪表板”

  3. 单击Add添加

  4. 添加Bar Example条形图示例, Map Example地址示例, Markdown Example, 和Pie Example饼图示例

您的示例仪表板如下所示:

Kibana教程之五:构建自己的仪表板

您可以通过单击可视化的标题并拖动来重新排列可视化。可视化文件右上角的齿轮图标显示用于编辑和删除可视化的控件。调整大小控件位于右下方。

要获取共享或HTML代码的链接以将仪表板嵌入网页,请保存仪表板并单击“ Share共享”

Save保存仪表板。

检查数据

查看数据的可视化效果非常好,但有时您需要查看实际数据以了解实际情况。您可以检查任何可视化背后的数据,并查看用于检索它的Elasticsearch查询。

  1. 在仪表板中,将指针悬停在饼图上。

  2. 单击右上角的图标。

  3. 从“ Options选项”菜单中,选择“ Inspect检查”。

Kibana教程之五:构建自己的仪表板

您还可以查看用于获取可视化数据的查询。

  1. 打开“ View:Data 视图:数据”菜单,然后选择“ Requests 请求”。

  2. 单击选项卡以查看请求统计信息,Elasticsearch请求和JSON中的响应。

  3. 要关闭Inspector,请单击右上角的X.

Kibana教程之五:构建自己的仪表板

相关文章:

  • 2021-08-09
  • 2021-06-24
  • 2021-11-19
  • 2021-09-19
  • 2021-05-22
  • 2023-03-10
  • 2022-12-23
猜你喜欢
  • 2021-07-06
  • 2021-06-25
  • 2021-06-26
  • 2021-12-16
  • 2021-08-12
  • 2021-06-23
  • 2022-12-23
相关资源
相似解决方案