第十一章 Kibana入门

时间:2024-04-06 20:40:52

Kibana在整个Elastic Stack家族中起到数据可视化的作用,也就是通过图、表、统计等方式将复杂的数据以更直观的形式展示出来。由于Kibana运行于Elasticsearch基础之上,所以可以将Kibana视为Elasticsearch 的用户图形界面(Graphic User Interface, GUI) 。

一、文档发现( Discover)

本章主要介绍Kibana导航栏中的第一个功能文档发现( Discover),它提供了交互式检索文档的接口,用户可以在这里提交查询条件、设置过滤器并查看检索结果。在文档发现中的查询条件还可以保存起来,这些保存起来的查询条件称为查询对象,可以在文档可视化和仪表盘功能中使用。

1、索引模式

在使用文档发现功能检索文档之前,首先要告诉Kibana要检索Elastiesearch的哪些索引,这在Kibana中是通过定义索引模式来实现的。没有被索引模式包含进来的索引不能在文档发现、文档可视化和仪表盘等功能中使用,如何创建索 引模式?

1.1、创建索引模式

索引模式是一种对Elasticsearch中索引的模式匹配,以定义哪些索引将被包含到这个模式中。它以索引名称为基础,可以匹配单个索引也可以使用星号“*” 匹配多个索引。例如在导入飞行记录样例数据时,Kibana会创建一个名为kibana_sample_data_flights的索引模式。索引模式的管理功能位于Management菜单中。

单击Index Patterns链接将进入索引模式管理界面。这个界面列出了所有索引模式。要创建新的索引模式,单击右上角的Create index patter按钮,进入索引模式创建界面,例如输入elasticsearch-*

 

第十一章 Kibana入门

创建索引模式分为两步,第一步需要在“Define index pattern"输入框中给出匹配索引名称的模式。模式可以直接使用索引名称,也可以使用星号“*”匹配任意字符。在输入模式的同时,Kibana会在输入框下动态地将匹配索引模式的所有索引列出来,用户可以实时查看索引模式是否满足要求。单击Next Step按钮进入下一步。

创建索引模式第二步是设置索引模式的一些配置信息,这包括添加时间过滤器和为索引模式指定ID。如果模式匹配的索引中包含有时间类型的字段,在这一页将会包含一个设置时间过滤器的选项,用户可以选择使用哪一个字段作为过滤条件;否则页面将提示不包含时间类型的字段而不会有时间过滤器选项。在时间过滤器下,还有一个链接“Show advanced options",单击这个链接会打开设置索引模式ID的输入框。默认情况下,Kibana会给索引模式自动生成一个ID。如果想自己定义索引模式ID,可以在这个输入框中输入 ID。

 

第十一章 Kibana入门

这里我们点击“下一步”,选择时间字段为@timestamp,单击Create index patterm链接,Kibana将创建这个索引模式,并跳入管理模式字段界面。同时在创建完索引模式后,在数据发现界面中就可以选择这些索引模式了。

1.2、管理模式字段

在管理索引模式的页面中选择一个索引模式后,右侧页面中会列出索引模式中的字段信息,包括字段名称、类型、是否可检索等。在每个字段后面都有一个修改按钮, 可修改字段值的格式等信息,如图所示。

 

第十一章 Kibana入门

除了字段以外,在管理字段的界面中还包括脚本字段(Scripted fields)、源过滤器(Source filters)两个标签页。脚本字段是通过脚本在运行时动态添加到索引模式中的字段,而源过滤器则用于从源文档中过滤字段。 脚本字段并不是真实地存在于索引中,而是根据其他字段值运算而来。给索引模式添加脚本字段需要在索引模式创建后,在管理索引模式的界面中在“Scripted Field" 标签页中处理。例如Kibana提供的样例索引模式kibana_sample_data_flights中就包含一个脚本字段。

 

第十一章 Kibana入门

源过滤器用于从源文档中过滤字段,被过滤的字段将不会在文档发现和仪表盘中展示。源过滤器在定义时可以使用字段名称精确匹配字段,也可以使用‘*’匹配多个字段。

在索引模式管理界面的右上角有三个按钮,它们的作用分别是设置:默认索引模式、刷新字段列表和删除索引模式。当设置索引模式为默认时,它将在文档发现中成为默认索引模式。

2、发现文档

文档发现就是要将满足条件的文档检索出来,Kibana提供了多种方式设置查询条件。这包括通过时间范围过滤文档、使用过滤器过滤文档,还可以通过Lucene或KQL查询语言过滤文档。无论使用哪一种方式过滤文档,它们最终都会以DSL查询语言的形式传递给底层的Elasticsearch。先来看看时间范围和过滤器这两种方式,它们最终会以must子句的形式组合进bool查询。

如果想要查看Kibana最终生成的请求,可单击工具栏中的Inspect按钮,在弹出窗口中选择Request标签页查看。如下图所示:

 

第十一章 Kibana入门

2.1、数据发现界面结构

数据发现界面结构如下图所示:

 

第十一章 Kibana入门

首先,在数据发现界面最上面靠左侧有一排包含了特定功能的按钮,如New、Save、Open等,本书后续章节将这一栏称为工具栏,它们用于实现对文档发现的创建、保存等基础管理功能。

 接下来,在工具栏下面有一个输入框可键入查询条件检索文档,我们把这个这个输入栏称为为查询栏。查询栏接收Elasticsearch查询语言DSL,或者Kibana内置查询语言KQL。

在查询栏下侧称为过滤器栏,在没有定义过滤器时该栏只有一个Add a filter 链接,而添加了过滤器后会有相应的过滤器定义展示出来。在查询栏右侧是时间栏,这一栏的作用可以设置检索文档的时间范围,还可以设置检索文档的刷新频率。所以查询栏、过滤器栏和时间栏的主要作用都是精确地限定检索文档的范围。

再往下可以分为左右两栏,左侧分别列出了索引模式、已选择字段和可选择字段;而右侧上部显示了满足过滤条件文档的柱状图,下部则将相应的文档数据展示出来了。在了解了文档发现界面的基本结构后就可以在其中浏览文档了,但有时会发现文档不存在,这时就需要更新文档的时间范围和刷新频率了。

2.2、使用时间过滤文档

在前面曾介绍过,如果索引包含时间类型的字段,则在创建索引模式的第二步中可以为索引模式添加时间过滤器。如果在创建索引模式时添加了时间过滤器,那么在文档发现中就会看到设置时间过滤器的按钮。通常这个过滤器的默认值为"Last 15minutes",位于文档发现界面的时间栏上。

时间栏上有一个日历图形的按钮,单击它会弹出选择时间范围的界面。时间范围可以设置为一个相对时间范围,例如最近24小时、前两周、前两个月等;也可以是一个绝对时间范围,例如从2019-4-1至2019-5-10,如图所示:

第十一章 Kibana入门

 

弹出时间范围窗口的最下面还有一个可以设置刷新频率的输入框。 在这个输入框中可以按秒、分、小时为单位,输入页面刷新的时间间隔。设置好后单击后面的Start 按钮,页面就会按设置好的时间间隔自动刷新数据。

2.3、自定义过滤器

通过时间范围过滤文档只能通过在创建索引模式时指定的时间字段过滤文档,如果想通过其他字段对文档做过滤就必须要借助过滤器了。为文档发现添加过滤器可通过过滤器栏的Add filter按钮完成,单击这个按钮会弹出EIDT FILTER对话框,如图所示。

 

第十一章 Kibana入门

在EDIT FILTER对话框中,可通过Field下拉列表选择字段,然后通过Operator和Value下拉列表选择操作符和具体值。例如设置一个根据平均票价介于300到800之间的条件过滤航班文档,首先要在Field下拉列表中选择AvgTicketPrice字段,然后在Operator下拉列表中选择“is between",最后在弹出的From和To输入框中输入300和800,单击Save按钮就完成了过滤器的设置(AvgTicketPrice: $300 to $800)。

新创建出来的过滤器会出现在过滤器栏上,如果需要组合多个字段过滤文档, 可以多次单击Addfilter创建多个过滤器。由于过滤器设置的查询条件最终会被放置在bool组合查询的must子句中,所以多个过滤器之间的逻辑关系是与。点击这些出现在过滤器栏上的过滤器时,会弹出一个对话框,包括对过滤器编辑、 删除、启用以及逆向过滤等功能。如图所示。

 

第十一章 Kibana入门

3、使用查询语言

时间范围和过滤器设置的查询条件都是以逻辑与的形式组合在一起的,如果需要设置更复杂的查询条件就需要在查询栏中输人查询条件以检索文档。目前Kibana文档发现中支持Lucene和KQL ( Kibana Query Language)两种查询语言,前者可以认为就是Elasticsearch中的DSL,而后者则是Kibana提供的一种新查询语言。要切换查询语言,只需要查询,在输入栏中输入查询语言即可,比如:{"bool": {"must":[{"match": { "Dest": "Airport"} }],"should":[{"term": { "OriginCountry": "JP"}},{"term": { "DestCountry": "CN"}}]}}

 

第十一章 Kibana入门

会显示符合条件的文档。

tips:还记得这个查询条件的含义吗? 

只有message字段包含firefox词项的日志文档才会被返回,而geo的src字段和dest字段是否为CN只影响相关度,当然相关度越高的肯定排在前面。

4、文档展示与字段过滤

通过时间范围、过滤器和查询语言发现的文档最终会以柱状图和表格两种形式展示。

4.1、柱状图

文档发现会根据保存的查询条件刷新页面。根据查询条件生成的柱状图会以时间为X轴,而以文档数量为Y轴。当鼠标指针悬停于单个柱子上时,还会弹出当前柱子代表数据的具体说明,包括时间范围、文档数量等。在默认情况下,柱状图中各个柱子之间的时间间隔会根据时间范围自动匹配。在柱状图栏右上侧也提供了一个下拉列表修改时间间隔,如图所示:

 

第十一章 Kibana入门

柱状图还有另外一个功能,它可以通过鼠标划选的方式选择文档发现的时间范围,这对于通过柱状图精细查看某一时间段数据来说非常方便。当鼠标指针悬停于柱状图上时,指针会变为十字星状。按下鼠标左键选择一个范围做拖拽,会弹出提示框,并显示满足条件的文档数量和时间范围。选择到合适的时间范围后放开鼠标,Kibana会根据划定的范围自动将时间范围设置好。

4.2、文档展示

默认情况下文档栏只包含两列,一列是Time,另一列是_source。Time列仅在索引模式设置了时间过滤器时才会有,它会展示时间过滤器中指定的时间字段值。_ source列则显示源文档,也就是在使用DSL查询时返回的_source字段值。文档栏展示哪些列可通过左侧的字段栏来定制,字段栏分为“Selected fields" 和“Available fields" 两个区域。“Selectedfelds"区域列出了将在文档展示栏展示的所有字段,默认情况下只有一个_ source字段;而“Available fields"区域则列出了文档所有可以展示的字段。“Available fields"区域列出的字段受到索引模式的源文档过滤器影响。

当鼠标指针悬停在“Available fields" 列表中的字段上时,字段后面将会出现"add"按钮。单击这个按钮,字段就会被添加到“Selected fields" 列表中,同时文档展示栏中展示的字段也会随之变化。一旦明确指定了需要展示的字段,source字段就不会再出现在文档展示栏中。反过来,当鼠标指针悬停在 “Selected fields" 字段上时,字段后面将会出现remove 按钮。单击这个按钮, 字段将从“Selected fields" 列表中删除并出现在“Available fields"列表中,而文档展示栏中也不会再展示这个字段的内容。

4.3、添加过滤器

除了可以通过add和remove按钮设置展示字段外,单击任何一个字段都会列出字段中出现的热门词项。这些词项是根据它们词频的排名,取前五位而形成的词项列表。例如单击DestCountry字段会列出五个词项 IT、US、CA、CN和JP,在每个词项下面还有它们出现的百分比,这代表了航班的五大热门目的地国家。如图所示:

 

第十一章 Kibana入门

热门词项后面有一对类似于放大和缩小的图标,它们用于根据词项过滤文档。 这里将称类似放大图标的按钮为包含按钮,而称类似缩小图标的按钮为排除按钮。 这两个按钮在数据发现界面上的其他地方也会出现,作用是包含或排除词项值。具体来说,单击包含按钮会将当前字段包含该词项的文档过滤出来,而点击排除按钮则会将当前字段不包含该词项的文档过滤出来。单击这两个按钮会形成不同的过滤器,它们会自动出现在过滤器栏中。例如选择DestCountry是CN,而Cancelled为false的所有文档,会形成两个过滤器如图所示。

 

第十一章 Kibana入门

最后再来看一下文档栏。当鼠标指针悬停在每条文档的字段值上时,同样会出现包含按钮和排除按钮,它们也可以用于根据字段与词项生成过滤器。在每条文档前还有一个展开/收起开关,点击展开文档,可以看到当前文档的全部详细。这包括所有字段以及它们的值,还有对字段的操作等,如图所示。

 

第十一章 Kibana入门

除了包含和排除按钮以外,还有两个按钮。 按钮的作用是从文档栏的列表中添加或删除字段的开关,而按钮则会添加一个字段存在性的过滤器。

二、文档的可视化

Kibana可视化功能以图表形式展示Elasticsearch中的文档数据,能够让用户以最直观的形式了解数据变化的趋势、峰谷值或形成对比。这些图表根据查询条件从索引中提取文档,查询条件可以在文档可视化界面中定制,也可以使用在文档发现中保存的查询对象。文档可视化生成的图表也可以保存,本文后续章节称这些保存起来的可视化图表为可视化对象。在进入文档可视化界面时将会列出Kibana中所有的可视化对象,如果已经将Kibana提供的样例数据导人,则在这个页面上将列出几十个不同的可视化对象。可以逐一点开查看这些可视化对象,它们是学习文档可视化的好素材。在列表上方有搜索框,可根据名称搜索文档可视化对象,如图所示:

第十一章 Kibana入门

在搜索框上面面有一个按钮,点击这个按钮会展示出所有可选的文档可视化类型,创建自定义的可视化对象就是从这里开始。文档可视化类型很多,包括折线图、饼图、仪表、表格等。因为很多,我们只挑选几个有代表性的进行学习。

第十一章 Kibana入门

1、二维坐标图

二维坐标图基于二维直角坐标系的X/Y轴绘制数据,包括折线图、面积图和柱状图三种。在二维直角坐标系中,X轴也称横轴是自变量,而Y轴也称纵轴是因变量,Y总是随X变化而变化。以折线图为例,它反映的就是Y随 X变化的趋势。比如速度体现了距离随时间变化的趋势,那么X轴就应该是时间,而Y轴则是距离。

在Kibana,二维坐标图的Y轴一般是一个或多个指标聚集,比如平均值、总数、极值等。而X轴则是桶型聚集,比如词项聚集、范围聚集等。所以指标聚集、桶型聚集的知识是学习可视化功能的基础。

第十一章 Kibana入门

1.1、面积图

下面使用kibana_sample_data_ flights 索引模式,创建个面积图来反映飞 行距离与机票价格之间的关系。首先要确定飞行距离与机票价格哪一个是 X 轴, 哪一个是 Y 轴。从数学角度来说,飞行距离是决定机票 价格的一个重要因素, 所以飞行距离是自变量而机票价格则是因变量。从聚集查询的角度来说,机票平 均价格使用指标聚集运算比较合适,而飞行距离使用桶型聚集更合适。所以从这 两个角度来分析都可以使用飞行距离作为 X 轴,而使用机票价格作为 Y 轴。当 然反过来也可以,但从逻辑上看比较奇怪。 在 kibana_sample_data_ flights 中,DistanceKilometers 字段代表航班飞 行距离,而 AvgTicketPrice 代表机票价格。接下来就来开始创建第 1 个可视化 对象,飞行距离与机票价格 关系的面积图。先在新建可视化对象中选择第 2 个 图形 Area,进入选择索引模式的界面,如图所示。

第十一章 Kibana入门

接下来再在Buckets下面将X轴设置为飞行距离,即按DistanceKilometers字段的值分桶。首先点击X Asis展开表单,将Aggregation下的聚集类型设置为Histogram接下来在Field选项中,选择字段为DistanceKilometers;Minimum Interval则设置为1000。表单中Custom Label用于定制X轴的文字说明,可输入Distance。

X轴和Y轴这样设置的目的是将文档按DistanceKilometers字段以1000km为最小分隔单元划分成不同的组,然后再对每一组文档的机票价格求平均值,最后将它们绘制在界面上。设置结束后,单击”Update”按钮,右侧的图形就会将数 据绘制出来,如图所示:

第十一章 Kibana入门

如果生成的面积图比较奇怪或者数据量比较少,这极有可能是时间范围取得太小,可将时间范围设置为“This year”以提取所有文档绘图。

创建好的可视化对象可以保存起来,单击工具栏的Save按钮,将面积图保存为“[My] Area-Distance & Price"。保存好的可视化对象,可以在进入可视化功能界面中看到。

1.2、折线图和柱状图

由于折线图、柱状图与面积图对数据的需求完全一样,所以它们之间可以很容易做切换。在配置栏上点击Metrics&Axis链接,可以对指标和坐标做配置。 如图所示。

第十一章 Kibana入门

Metrics&Axis 配置页分为Metrics、Y-Axis、X-Axis三部分,分别用于配置指标Y轴和X轴。在Metrics下有四个选项可以配置,其中的Chart Type有三个选项line、area和bar,可以切换二维坐标图的类型。可自行选择切换类型,然后按“Update”按钮查看效果。事实上在创建可视化对象时,可供选择的可视化对象类型中有单独的折线图和柱状图。要想创建保存独立的折线图或柱状图,可以在创建时选择Line、 Horizontal Bar或VerticalBar。由于它们创建的过程与面积图基本相同。

1.3、指标叠加

指标叠加是创建多个指标聚集,并且在一张二维坐标图中绘制出来,直观的表现就是在二维坐标中有多个图共享相同的坐标。下面就在飞行距离与机票价格的基础上,给可视化对象再添加一个指标,以体现不同飞行距离的航班数量。重新打开“[My]Area-Distance&Price ",将它另存为“[My]Area-Distance&Price &Count"。在Metrics下面单击Add按钮为Y轴增加新的指标。在弹出的Seleet metrics type中选 Y- Axis,再选择指标聚集类型为Count,并为坐标添加说明标签Count,如图所示:

 

第十一章 Kibana入门

设置好之后 Update,会看到在面积图中出现了两种不同颜色的面积图,如图所示:

 

第十一章 Kibana入门

在默认情况下,叠加指标之间不会出现交叉,但可通过设置Mode参数修改。将配置页面切换回 Mris&Axes会看到Meries在原来Price的基础上多了一个Count,我们在Chart type下拉选择Bar,在Mode参数的下拉列表中分别选择Stacked看看。

 

第十一章 Kibana入门

在多指标的情况下每一个指标的设置都是独立的,可以分别给每个指标选择不同的图形,因此可以在一个图形中同时使用折线图、面积图和柱状图来表现不同的指标。叠加指标时多个指标可以共享一个Y轴,也可以在Metrics& Axes配置页中设置图像使用多个Y轴。在Metrics& Axes配置页中将Count指标展开,在“Value Axis"选项中选择“New Axis”,这时在下面的Y-Axes中就会多出来一个新的Y轴,如图所示:

 

第十一章 Kibana入门

如果将两个指标的Y轴分列两边,则图形的Mode就只能是normal了,即使选择stacked也不会再起作用了。在配置栏最后一个标签页是“ Panel Settings",可以设置图例位置、提示、网格线等等配置。图侧默认情况下位于坐标图形的右上侧,它展示了图形中不同颜色图形对应的信息。不仅如此,单击这个图例还可以配置图形颜色,如图所示。

 

第十一章 Kibana入门

在上图中,Price指标被设置为柱状图,而Count则被设置为折线图。同时Price指标通过图例修改为棕色,并通过Grid参数绘制了Y轴的网格线。

“Panel Settings"其余参数中,Legend position用于设置图例位置,包括Top、Left、Right、Bottom四个选项,Show tooltip则是图形提示信息的开关,当开启时鼠标指针悬停在图形拐点上时会出现提示信息,不过目前这个参数不起什么作用。最后将这个可视化对象另存为“[My]Line-Bar-Distance&Price &Count "。 它非常直观地体现了飞行距离与票价的关系,同时还体现了飞行距离在数量上的分布情况。

2、圆形与弧形图

二维坐标图是中规中矩的统计图形,它们可以严谨地体现出自变量与因变量之间的关系和趋势。在实际应用中,圆形与弧形也经常用来展示统计数据,但它们体现的往往是部分与整体之间的关系。在Kibana中也包含了几种圆形或弧形的可视化对象,它们是饼图(Pie)、目标(Goal) 和仪表(Gauge),本小节就来介绍这三种可视化对象。

2.1、饼图

饼图使用圆或圆环表示整个数据空间,并以扇面代表数据空间的某一部分,所以饼图在展示部分与整体的关系时非常直观。目标和仪表是两个不同的可视化对象,它们会将某一指标值的范围绘制在一个表盘中,并以指针或进度条的形式显示该指标在仪表中的实际值。这两种对象一般用于监控某系统的运行状态, 体现该系统在某一项指标上的健康状态。

饼图有两项变量需要定义,一是饼图要区分多少个扇面,另一个就是每个扇面有多大。这两个变量在Kibana中由桶型聚集和指标聚集来决定,所以创建Kibana饼图也同样包含Metrics和Buckets两个配置项。其中,Metries只能定义一个指标聚集,决定扇面大小;而Buckets则可以定义多个,决定扇面有多少个。下面说明如何配置Kibana饼图。在创建可视化对象窗口中选择Pie并选择kibana_sample_data_flights索引模式,进入创建饼图的配置界面。

 

第十一章 Kibana入门

在Metrics配置项下单击Slice Size按钮展开表单,选择指标聚集为Count,并在CustomLabel中填写标识为“Count”。接下来选择Buckets下面的Split Slices,并选择聚集为Carrier字段的Terms桶型聚集。

 

第十一章 Kibana入门

默认情况下,Kibana饼图为圆环形,这可以通过在Options界面中修改Donut开关更改。勾选Donut选项时绘制的图形为圆环,而取消勾选Donut则绘制的图形为圆形。除了设置饼图的类型,还可以设置扇面的标识,即勾选Show Labels可以开启每个扇面的标识信息。最后通过Legend Position下拉列表可以设置图例的位置,可选项包括left、right、top、bottom,饼图被绘制为圆形,并包含了标识信息。将这个饼图保存为“[My] Pie- Carrier&Count”。

 

第十一章 Kibana入门

2.2、饼图叠加

在添加桶型聚集时有两个选项,一个是Split Slices,而另一个则是Split Chart。与折线图类似,Split Chart会以分割X轴或Y轴的形式添加子桶型,但只能添加一次且必须要先于Split Slices添加。上一小节的示例中选择了Spit Slices,这时如果再通过Add sub buckets添加子桶型时就不能再添加Slipt Chart了。 先将“[My] Pie- Carrier&Count "另存为“[My]Pie.Split.Chart-Carier&Count”。

单击桶型聚集后面的叉子按钮删除原来的桶型聚集,再以Split Chart方式添加Carrier字段的Terms聚集。然后再单击Add subuckets添加子桶型,这时就只有一个Split Slices选项了,将子桶型设置为DestCountry的terms聚集。

 

第十一章 Kibana入门

饼图的Split Chart也有Rows和Columns两个按钮,选择Rows时按行分割Y轴,而选择Columns则按列分割X轴。上图所示的饼图先按不同的航空公司(Carrier)分割坐标,所以每一个饼图就代表一个航空公司。在每一个饼图中,每个扇面代表的是航班的目的地国家占比。

与Split Chart只能添加一次不同,Split Slices可以添加多次子桶型。新添加进来的子桶型,会对父桶型中每一个桶再次分桶,展示出来的饼图是同心环或同心圆。将上面的可视化对象另存为“[My] Pie. Split.Slices-Carrier&Count”,将所有的桶型聚集删除后再使用两个Split Slices添加Carrier和DestCountry字段的Terms聚集,最终的效果如图所示。

 

第十一章 Kibana入门

在上图中使用两个圆环代表两个桶型聚集,内侧圆环分为 4 个扇面代表 4 个航空公司;而外侧圆环又将每个扇面划分为 10 个更小的扇面,代表 10 个不同 的目的地国家。从这个饼图可以清楚地看出 4 个航空公司的航班数量占比,而每 家航空公司在每个国家的市场份额也一目了然。

2.3目标图

目标可视化对象体现的是指标值距离设定目标值之间的差距,实际值越高越接近目标值说明系统运行越好。比如,设定一个年度销售额目标,通过目标可视化对象就可以体现出当前实际销售额与目标销售额之间的对应关系。同样,仪表可视化对象也可以体现指标值在仪表中的实际位置,但体现的往往是系统某一项指标是否处于安全区间。因此,仪表会给不同的数值区间赋予不同的颜色,值越高颜色越深。目标和仪表一般使用弧形,也可以配置为圆环形状。

比如我们设置Kibana Airlines航空公司每月航班数量的目标为3000次,来生成一个目标可视化对象。由于这次要生成的可视化对象要过滤航空公司,所以在配置目标可视化对象前要先配置检索。在创建可视化对象中选择Goal对象,然后选择kibana_sample_data_flights索引模式。

进入Goal对象配置界面后,先给可视化对象添加过滤器。单击Add a filter并设置过滤器为Carrier is Kibana Airlines"单击Save按钮保存过滤器。

 

第十一章 Kibana入门

同时还要注意,由于图形展示的目标是月度航班数量,所以要将时间范围设置为月。接下来,在Options界面中设置目标值为3000次。找到Ranges选项,将“To设置为“3000”,这时目标对象会按3000目标来计算百分比,如图所示:

 

第十一章 Kibana入门

将它保存为“[My] Goal- Count"。Ranges选项可以设置为多个,生成的目标对象会根据实际值选择不同颜色,但这对于目标对象来说意义并不大。

2.4、仪表图

以航空公司的航班延误时间为指标,生成一个航班延误时间的仪表。选择Gauge对象及kibana_sample_data_flights索引模式后,在配置页面上将指标聚集设置为FlightDelayMin的Average聚集。

第十一章 Kibana入门

 

3、热力图

热度原本是指某一事物的冷热程度,但在互联网和大数据时代它越来越多地代表某种资源的使用频度,资源使用得越多,它的热度也就越高。比如在搜索引擎中的热词,在地图中展示的交通流量、热点区域等。Kibana有几种与热度相关的可视化对象。比如热力图、标签云等,我们来了解下热力图。

热力图通常是在一个可区分为不同区域的图形上,以不同颜色标识某一指标值在不同区域的高低分布情况。比如在地图的不同区域以不同颜色标识交通流量、人口分布等情况,交通流量越大、人口密度越高它们所在区域的热度也就越高,区域对应的颜色也就越深。

Kibana热力图与此类似,但它并不是绘制在地图上,而是绘制在二维坐标上。与前面介绍的几种二维坐标图不同,Kibana热力图的X轴和Y轴都是桶型聚集。它们相互交叉形成一个可以用热度值标识的二维矩阵,而热度值则由另一个独立的指标聚集来定义。

所以,在Kibana热力图中至少要定义三个聚集,即X轴的桶型聚集、Y轴的桶型聚集和热度值对应的指标聚集。Kibana在绘制热力图时,会根据X轴和Y轴对应的两个桶型聚集,分别计算它们所对应的指标聚集,然后再在热力图矩阵中以不同的颜色绘制出来。下面还是以飞行距离与机票价格的对应关系为基础, 并添加航空公司这一桶型聚集,来看一下飞行距离、航空公司在机票价格上形成的热力图。

首先在创建文档可视化的弹出窗口中选择Heat Map,并在接下来的索引模式中选择kibana_sample_data_fights。热力图的配置栏也包含Metrics和Buckets两个配置项,点击Metrics下的Value按钮,将热度对应的指标配置为AvgTicketPrice的平均值聚集:

 

第十一章 Kibana入门

接下来再来配置X轴和Y轴的桶型聚集。在Buckets下先选择X-Axis,将X轴设置为DistanceKilometers字段的Histogram桶型聚集,Minimum Interval设置为1000。

 

第十一章 Kibana入门

这之后再点击Add sub- buckets

 

第十一章 Kibana入门

选择Y- Axis设置Y轴的桶型聚集为Carrier字段的Terms聚集:

 

第十一章 Kibana入门

这个热力图看上去不是那么经典,这主要是因为指标值的范围比较集中,所以绘制出来的热力图层次感并不强。但在热力图配置的Options页面,可以设置包括热度颜色种类、指标数量或范围等内容,通过这些配置可以让热力图看起来更能反映实际情况。

设置结束后单击Save按钮,以"[My] Heat Map-Distance& Carrier&Price"为名称保存热力图对象。

4、表格

尽管表格在文档可视化中的应用越来越少,但它在展示具体数值时具有一定的优势, 所以在一些特定场景下表格是不可或缺的可视化元素。Kibana中表格对应的可视化对象为Data Table。

表格由行和列组成,是一种通用的展现关系型数据的形式,所以要想绘制表格必须先确定行和列分别由什么来确定。在Kibana的表格中,行由桶型聚集决定,而列则由指标聚集决定。

下面来创建一个表格,并以航空公司为行分别统计它们的航班数量、平均票价、平均飞行距离等,这将形成4行3列的表格(不包含表头)。在创建可视化对象页面选择Data Table,然后选择kibana_sample_data_fights索引模式进入表格配置界面。表格配置栏包含Metrics和Buckets两栏,Metric相当于列可以设置多个,Buckets相当于行也可以设置多个。

先添加三个指标聚集,分别为Count聚集、AvgTicketPrice字段的Average聚集和DistanceKilometers字段的Average聚集。

 

第十一章 Kibana入门

Buckets设置为Carrier的Terms聚集:

第十一章 Kibana入门

 

设置完成生成图所示的表格:

第十一章 Kibana入门

 

如果想给表格增加更多列,可以在 Metrics 配置项中继续添加指标聚集。表 格可按每一列排序,当鼠标指针悬停于每一行的表头时还会出现排除和包含按钮。 单击它们可以在可视化对象中添加过滤器,表格中的数据也会跟着发生变化。将 这个表格保存为“[My]Table-Carrier"。

第十一章 Kibana入门

 

在添加 Buckets 时,有“Split Rows”和“Split Table”两个选择。“Split Rows” 在添加子桶型时会将父桶型按行分割,后者则会直接将表格分割成多个。为上述 表格再添加一个 DestCountry 的 Terms 聚集,在使用“Split Rows"形成的表格 如图所示:

 

第十一章 Kibana入门

“Split Table"会将表格分割成多个,而且也是只可以添加一次。同样是为表 格添加一个 DestCountry 的 Tems 聚集,但这次使用“Split Table",如图所示。

第十一章 Kibana入门

 

第十一章 Kibana入门

 

默认情况下表格在展示时会分页,在 Options 标签页中可以设置每页展示数 据的数量,默认值为 10。

 

第十一章 Kibana入门

5、仪表盘

仪表盘(Dashboard)是Kibana提供的综合展示数据的功能,在Kibara中保存的可视化对象可以在仪表盘中组合起来共同展示。仪表盘是位于导航栏的第三个功能,如果已经导入了 Kibana 样例数据,进入仪表盘界面后会看到已经保存的仪表盘对象,如图所示:

第十一章 Kibana入门

 

图中展示的仪表盘对象是学习仪表盘对象非常好的素材,可自行查看学习。 如果想要创建新的仪表盘对象,可单击 Create new dashboard 按钮。

事实上,如果我们根据前面的章节里保存了查询对象和可视化对象,创建一 个仪表盘还是非常简单的。 单击Create dashboard 按钮进人创建仪表盘界面,仪表盘界面与文档发现、 文档可视化界面类似,也包含有工具栏、查询栏、时间栏和过滤器栏,只是工具 栏中的按钮有些不同。

第十一章 Kibana入门

 

创建仪表盘的过程很简单,单击工具栏中的 Add 按钮或者是在展示区域中 的 Add 链接会弹出 Add Panels 对话框,其中包含了已经保存的可视化对象和查 询对象列表。用户可在其中挑选希望加入仪表盘的对象,也可以单击 Add new Visualization 按钮创建可视化对象,如图所示。

 

第十一章 Kibana入门

在 Add Panels 对话框中还有一个查询栏,输入“My" 关键字搜索我们前面 保存的可视化对象,如图所示。 单击某个可视化对象名称,控件就被添加到仪表盘中了。按相同的方式选择 所有感兴趣的可视化对象将它们依次添加到仪表盘中,它们将按添加顺序依次出 现在仪表盘中。在每一个面板的右上角都有一个设置按钮 , 单击这个按钮 会弹出一个选项对话框,通过个这对话框的选项可以实现对每个面板的定制。在 每一个面板的右 下角还有一个 形状的按钮,可通过这个按钮调节面板大小。

另外,使用鼠标左键按住面板的标题部分还可以在仪表盘中移动面板,调整 面板在仪表盘中的位置。 仅仅通过鼠标进行几下简单的点击,一个像模像样的仪表盘就展现出来了。

 

第十一章 Kibana入门

仪表盘也可以一样保存起来,单击 Save 按钮,在弹出对话框中将它保存为“[My] Dashboard-Flights”。