简介
Kibana是通向 Elastic 产品集的窗口。 它可以在 Elasticsearch 中对数据进行视觉探索和实时分析。
一、【Discover】搜索查询
Discover模块用于全文搜索文档(doucument),支持索引筛选、时间筛选、字段筛选、支持将查询结果分享、保存筛选结果等。如图所示。1.时间过滤
时间过滤既按照时间范围查询document内容,如查询最近一个小时、最近一天、当天的数据等。也支持具体的时间范围查询(精确到毫秒)。
1).Time Range范围查询
如图所示Time Range范围查询提供
Quick快速查询:查询当天、当月、最近的某段时间范围内的查询,提供便捷操作;
Relative相对查询:查询某段时间查询,例:查询 10分钟之前-到5分支之前的数据;
Recent:最近使用的查询条件。
2).Auto-Refresh定时刷新查询
2.条件搜索
条件查询Kibana支持两种方式查询。
1).通过Add Filter 按钮添加过滤条件查询如下所示。
详见https://www.elastic.co/guide/en/elasticsearch/reference/6.4/query-dsl.html这种方式使用相对复杂,通过Kibana查询不建议使用此方式查询。
2)通过Search输入框搜索
- 直接输入文本字符串来进行简单文本搜索。例如,查询服务日志的时候输入 关键词word来搜索所有字段中包含词条 word的文档结果。
-
可以用字段名作为前缀来根据指定字段进行搜索。例如,输入 message:"服务层" 来搜索字段 message中包含词条服务层的文档。
- 可以通过中括号指定范围搜索,
[START_VALUE TO END_VALUE]
。例如,搜索状态为 4xx 的条目,您可以输入status:[400 TO 499]
。 - 您可以通过布尔操作符
AND
、OR
和NOT
来指定更多的搜索条件(注意:这AND、OR、NOT必须大写)。例如,搜索message包含服务层关键词并且日志级别为INFO的条目,您可以输入 message:"服务层" AND level:"INFO"。 -
通过字段名作为前缀搜索时,匹配值支持正则表达式匹配例如 查询标题包含昆山的所有文档。
示例:查询调用三方服务返回Json Data 状态码 Code 非 0 非200的所有请求日志
NOT message:"code\":+(200)" NOT message:"code\":+(0)" AND message:"code\":"
更多查询方式详见
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-query-string-query.html#query-string-syntax
DSL查询详见
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl.html
3.结果字段过滤
当我们搜索到想要的文档(document)结果时,如果只想关注其中某几个字段的时候,就可以在左侧字段列表选择查看的字段,点击 Add按钮即可,例如如下 只查看日志几倍 leval和具体 message 字段值。也可以为添加的字段进行添加Filter过滤器,进行二次筛选,如下(将鼠标移动到对应的字段上点击 + / - 进行筛选或排除)。
3.Button Tool Bar
ToolBar工具按钮包含
- New: 新建查询页。
- Save: 保存查询条件,保存后可用于后期生成制作图形统计面板。
- Open: 打开一个已经保存过的查询条件。
-
Share: 可以将复杂的Url查询生成短链接分享给别人。
二、【Visualize】可视化
1、简介
可视化 (Visualize) 功能可以为您的 Elasticsearch 数据创建可视化控件。然后,您就可以创建仪表板将这些可视化控件整合到一起展示。
- Basic Charts
- Area 面积图
- Heat Map 渐变图
- Horizontal Bar 水平柱形图
- Line 折现图
- Pip 饼状图
- Vertical Bar 垂直柱形图有
- Data
- Data Table 表格
- Gauge 仪表图
- Goal 仪表图(百分比显示)
- Metric 显示单个数字
- Maps
- Coordinate Map
- Region Map
- Time Series
- Timelion 计算和合并来自多个时间序列数据集
- Visual Bulder 使用管道聚合显示时间序列数据
- Other
- Controls
- Markdown 显示自由格式信息或说明
- Tag Cloud 显示标签云,每个标签的字体大小表示其重要性。
- Vega
2、线性图、区域图、图形图
线形图,区域图和条形图允许您在 X/Y 轴上绘制数据。绘制数据之前首先需要明确X轴Y轴的数据指标是什么,只有确定了XY轴指标之后才能进行绘制。下边我以Vertical Bar(垂直柱形图)为例。
Aggregation(聚合指标):
- Count:计数聚合返回所选索引模式中元素的原始计数;
- Average:平均值;
- Sum:求和;
- Min:最小值;
- Max:最大值;
- Percentiles(字段类型必须为number类型):百分数 聚合将数字字段中的值分成你指定的百分数区间。
- Percentile Rank : 百分位等级 聚合返回指定的数值字段中的值的百分位等级。
- 父级管道聚合
- 兄弟管道聚合:
- Date Histogram:日期直方图是从数值字段构建并按日期渲染数据,您可以以秒、分钟、小时、天、周、月或年为单位指定时间间隔。您还可以通过选择 Custom 作为间隔并在文本域中输入数字和时间单位来指定自定义时间间隔。自定义间隔时间单位 s 为秒, m 为分钟, h 为小时, d 为天, w 为周, y为年。不同的单位支持不同级别的精度,低至一秒。
- Histogram:直方图是从数字字段构建的,可按照整数构建范围。
- Range:通过 范围聚合,您可以为数字字段指定值的范围。
- Date Range:日期范围聚合报告在您指定的日期范围内的值。
- Terms:词条 聚合使您可以指定要显示的给定字段的顶部或底部 n 个元素,按数量或自定义指标进行排序。
- IPv4 Range:IP地址范围;
- Filters:指定一组过滤器;
Custom Label: 输入域中输入字符串以更改显示标签。
一旦您指定了 X 轴聚合,您可以定义子聚合来优化可视化。单击 + Add Sub Aggregation 定义子聚合,然后选择 Split Area 或 Split Chart ,然后从类型列表中选择一个子聚合。
点击 Advanced 可以查看更多筛选项。
Exclude Pattern:在此输入域中指定一个模式以从结果中排除
Include Pattern:在此输入域中指定一个模式以包含在结果中
JSON Input:一个文本域,您可以在其中添加特定的 JSON 格式的属性以与聚合定义合并,例:{ "script" : "doc['grade'].value * 1.2" }
Metrics & Axes
选择 Metrics & Axes 选项卡可以更改图表上每个单独的指标的显示方式。数据系列在 指标 部分中进行样式设置,而轴在 X 和 Y 轴部分进行样式设置。
Metrics : - Chart type: 图表类型 在 Area 、 Line 和 Bar 类型之间进行选择。
-
Mode:堆叠不同的指标,彼此间的展示方式、相邻活叠加方式。
- Line mode:线条或柱条的轮廓是否应该是 smooth(平滑) 、 smooth(笔直) 、或 stepped(阶梯) 的。
- Value Axis:选择要绘制此数据的轴(每个属性在 Y 轴下配置)。
Y-Axes:Y轴配置 - Show:是否显示Y轴
- Title:展示的标题、标签
- Mode:展示的方式
- Scale Type:数值的缩放( linear 、 log 或 square root )
- Show Advanced Options更多配置
- Show Labels:隐藏活展示标签值
- Rotate:标签值的展示方式、水平、垂直、倾斜展示
- Labels - Filter Labels:如果启用了标签过滤,则在没有足够空间显示它们的情况下,会隐藏一些标签
X-Axes:X轴配置
- Show:隐藏活显示X轴
- Position:X轴展示位置,上、下、左、右。
- Advanced Options更多选项
- Show Labels:隐藏活展示标签值
- Rotate:标签值的展示方式、水平、垂直、倾斜展示
- Labels - Filter Labels:如果启用了标签过滤,则在没有足够空间显示它们的情况下,会隐藏一些标签
Panel Settings面板设置:
- Legend Position:说明展示位置,上、下、左、右。
- X-Axis Lines:显示或隐藏X轴网格线。
-
Y-Axis Lines:显示或隐藏Y轴网格线。
到此绘制图形的基本使用就没有了,剩下的创建图表、图形图折线图基本就大同小异。这里就不一一介绍了。
3、Markdown控件
Markdown 控件是一个文本输入字段,支持 Github 风格的 Markdown 文本。Kibana 会渲染输入到该字段的文本,并把结果展示在仪表板上。
语法教程参见:
https://www.runoob.com/markdown/md-tutorial.html
4、时间序列可视化生成器
时间序列可视化生成器是一个时间序列数据可视化工具,重点在于允许您使用 Elasticsearch 聚合框架的全部功能。时间序列可视化生成器允许您组合无限数量的聚合和管道聚合,以有意义的方式显示复杂的数据。每个时间序列可视化生成器又包含5个子可视化页面
- Time Series 时间折线图
- Metric 数字视图
- Top N 前N向
- Gauge 仪表视图
- Markdown 文档视图
- Table 表格视图
每个子可视化的用户界面由 Data 标签页和 Pannel Options 组成。唯一例外的是时间序列和 Markdown 可视化,时间序列具有用于 Annotations 的第三个标签页,Markdown 具有用于编辑器的第三个标签页。
Data标签页
1.序列标签和颜色
每个序列都支持一个标签,该标签将用于图例和标题,具体取决于所选的可视化类型
2.聚合指标Aggregation
同可视化聚合指标类似,包含常用的sum、count、等。Feild 指标字段。
3.Group By 分组控件
在指标的底部有一组“分组依据”控件,允许您指定该序列应该如何分组或拆分。有四种选择: - Terms(字段)
- Filter(单个过滤器)
-
Filters(多个过滤器、可指定颜色)
- Everything(所有)
4.Top 显示前N个数据。
5.Order By 按照某字段排序
Pannel Options 标签页
Annotations标签页
Annotations注解标签页用于将注解数据源添加到时间序列可视化中。您可以配置以下选项: - 索引模式和时间字段
- 注解颜色
- 注解图标
- 包含在消息中的字段
- 消息的格式
-
面板和全局级别的过滤选项
三、【Dashboards】仪表盘
Kibana 仪表板(Dashboard) 展示保存的可视化结果集合。
示例如下:
1.创建仪表盘
创建仪表板相对比较容易,选择左侧的*Dashboard ,然后点击Create new dashboard即可创建一个新的仪表盘面板,之后点击Add,添加一个多多个已经创建好的可视化视图(Visualize)即可完成仪表盘的创建。操作
Sava:保存仪表盘;
Cancel:取消编辑;
Options:选项
- Use dark theme 使用黑色主题;
- Use margins between pannels;
- Hide all panel titles 隐藏全部标题;
2.分享仪表盘
点击Share分享仪表盘,可以生成分享的短链接,也可以生成ifream嵌入其他网页中进行可视化展示;四、【Timelion】
参考
https://www.elastic.co/guide/en/kibana/6.8/introduction.html