My Avatar

Shadow

I love bleak day, like something will happen

ELK-Kibana学习

2016年09月28日 星期三, 发表于 北京

如果你对本文有任何的建议或者疑问, 可以在 这里给我提 Issues, 谢谢! :)

9月的北京

竟然

这么

呵 呵

今天系统的学习下Kibana


一. 介绍

  Kibana是一个与Elasticsearch协作,用于分析和展现数据的平台。通过kibana你可以进行一些很有效的数据分析操作,同时通过多种多样的表格来展现数据。它简单、易用,基于浏览器进行配置和展现,不需要编写代码。

二. 安装、配置、启动

  前提:

  安装

  1. 下载安装包
  2. 解压
  3. 如果你是在升级,需要用老的kibana.yml文件覆盖新的
  4. 安装kibana插件(可选)
  5. 从安装目录运行kibana,bin/kibana(linux),bin/kibana.bat(windows)

  这样,kibana就在运行了,端口号为5601,通过浏览器打开localhost:5601就可以打开界面了

  连接Elasticsearch

  首先,我们得知道kibana连哪个elasticsearch,默认情况下,是连接本地的es,如果希望连接其他的es实例,可以修改kibana.yml文件中的elasticsearch url,并重启kibana。

  接着我们需要配置你所想要查看数据的es的索引,首先,通过浏览器,打开localhost:5601,进入到kibana的界面,点击settings,看到如下界面:

  在index name or pattern框中输入es数据索引,默认情况下,kibana认为你的数据是通过logstash插入es的,所以默认展示的索引名为logstash-*, 通过通配符*来匹配所有logstash-开头的索引。如果你有自己命名的索引,也可以自己指定索引名。

  接着你需要选择一个包含有时间的索引字段,以此作为进行时间比较的依据。kibana会将索引中包含的所有有时间信息的字段列出来,你只需要选择一个即可。如果你的索引中没有时间相关数据,则将上面的那个Index contains time-based events选项前面的勾去掉即可。

  最后点击create来添加索引模式,第一个添加的索引被自动配置为默认索引,当你有添加了多个索引后,可以自己选择哪个为默认索引。

  开始使用

  通过Discover界面查询和浏览数据

  通过Visualize界面来用数据绘制图表

  通过Dashboard界面来创建和展示自定义的数据仪表盘

  Kibana与Elasticsearch Dynamic Mapping

  kibana需要es开启动态映射,默认情况下es是开启了动态映射的,但是如果在某种情况下es关闭了动态映射,你需要手动进行映射,并为.kibana索引开启动态映射

  如果ES中尚未有.kibana索引,并且elasticsearch.yml中的index.mapper.dynamic被配置为false,那么需要这么做:

  1. 启动es
  2. 创建.kibana索引,并且开启动态映射

    1
    2
    3
    4
    
     PUT .kibana
     {
     	"index.mapper.dynamic": true
     }
    
  3. 启动kibana,进入web界面,验证动态映射没有错误

嗯嗯

三. 使用kibana

  这里,我们假设ES中已经有索引和相应的数据,而我们也在kibana中添加相应的索引了。

  搜索数据

  点击Discover按钮,来展示Kibana的数据搜索功能,如下图:

  最上面是一个搜索框,在这里你可以输入任意的搜索条件,搜索语法参考:query string,同时通过搜索框右边的按钮,你可以保存、加载搜索条件。

  下面的界面分为两个部分,右边是搜索出来的结果,左边侧边栏是索引选择及索引下的字段展示。

  当你只想看相关字段的值时,只要点击侧边栏相应字段旁边的add按钮即可

  数据视图

  点击Visualize按钮进入视图工具,帮助你通过不同的方式来展现你的数据的各个方面。Visualize界面如下:

  可以看到,有很多种数据展现方式,你可以根据具体的需求来选择你需要的数据展示方式,并进行配置。当你确定好使用哪种图表形式后,点击相应的选项,会提示你是使用已有的搜索,还是新建搜索(这里的搜索就是前面的Discover界面的搜索条件),因为visualization展示的数据必定是与某个搜索搜出来的数据挂钩的。

  这里以构建一个饼图为例,来展示具体使用方法。

  当我们选择Pie chart,并且关联一个搜索之后,弹出如下界面:

  可以看到左边有两个我们可以调控的指标,一个metrics,一个buckets,基本上所有的视图类型都是通过调控这两个指标来控制视图展现的(个别特殊的除外)。metrics决定你要展示的数据内容,例如count代表数据的个数,也可以是一些字段的平均数、最大值、总和等等。而buckets则是根据你指定的一些指标来对数据进行分片或者分表。

  例如,我们在这个表图中,将metrics定位count,而buckets选择split slices(分片展示),接着,选择按balance字段的范围来分片,并且定义了6个范围,这样配置之后的饼图就变成下图:

  这个图展示了所有的数据,在各个balance字段的不同范围内的数量有多少,当然我们还可以更加细分这个饼图,来统计各个范围内,某类数据又占了多少,只要点击add sub-buckets即可。

  当然这是split slice的作用,如果选择split chart,那么就会分成多个表来展示数据,每个表对应你选择的一个范围。

  配置完视图后,你可以保存下,并且命名。

  数据仪表盘

  Dashboard界面,可以将你需要的所有视图汇聚到一个界面上,只要点击Add Visualization按钮,然后选择你之前保存好的视图,就可以了,配置好一个仪表盘后,你同样可以保存下来,这样之后,只要load这个仪表盘,就会出现你需要的所有视图数据了。如下图

四. 配置Visualization

  因为DiscoverDashboard都比较简单,就不细说了,自己去链接上看下就行,比较好理解,这里重点说下Visualization,以及各个视图类型的作用

Area chart: Use area charts to visualize the total contribution of several different series.

Data table: Use data tables to display the raw data of a composed aggregation. You can display the data table for several other visualizations by clicking at the bottom of the visualization.

Line chart: Use line charts to compare different series.

Markdown widget: Use the Markdown widget to display free-form information or instructions about your dashboard.

Metric: Use the metric visualization to display a single number on your dashboard.

Pie chart: Use pie charts to display each source’s contribution to a total.

Tile map: Use tile maps to associate the results of an aggregation with geographic points.

Vertical bar chart: Use vertical bar charts as a general-purpose chart.