通过Kibana Discover,您可以快速搜索大量数据并了解业务在特定时间内的数据情况。本文介绍如何使用Kibana的Discover功能。

背景信息

Discover会告诉Kibana在哪里可以找到您的数据,然后搜索并过滤它来获取其中隐藏的见解与关系。详细信息请参见Kibana官方文档

前提条件

操作步骤

  1. 在Kibana控制台主页,单击左上角的导航栏图标图标,展开左侧导航栏。
  2. 创建索引模式。
    1. 在左侧导航栏,单击Management下的Stack Management
    2. 在Kibana中单击Index Patterns
    3. 单击Create index pattern
    4. Index pattern name文本框中输入索引模式名称(本文使用nginx*),单击Next step
      创建索引模式
    5. 选择Time field(本文选择@timestamp),单击Create index pattern
      创建索引模式
      重要 如果删除.kibana*索引,会导致索引模式丢失。
  3. 在左侧导航栏,单击Kibana下的Discover,并在下拉列表中选择之前创建的nginx*索引模式。
    选择索引
  4. Discover页面右侧或者在直方图中,选择一个时间范围,查看指定时间范围内的数据。
    查看Discover直方图

    更多详细信息,请参见更多功能中的设置时间过滤器章节。

更多功能

Discover页面总览

Discover页面总览

设置时间过滤器

通过设置时间过滤器,您可以更改数据查询的时间范围,默认情况下时间过滤器设置为最近15分钟。您可以通过以下方式修改时间过滤器:
  • 单击时间选择器图标,可以选择以下选项:设置时间过滤器
    • Quick select(快速选择):使用最近的时间范围,然后使用后退和前进箭头在时间范围内移动。
    • Commonly used(通常用于):使用诸如“最近15分钟“、“今天”和“本周至今”等选项的时间范围。
    • Recently used date ranges(最近使用的日期范围):您最近使用的数据查询范围。
    • Refresh every(刷新间隔):指定自动刷新频率。
  • 单击开始时间或结束时间,在弹出窗口中选择AbsoluteRelativeNow,然后指定需要查询的时间范围。设置开始时间和结束时间
  • 从直方图中选择时间查询范围。直方图选择时间范围
    • 单击您需要放大的时间范围的栏。
    • 在直方图区域,单击并拖动来查看特定时间范围的数据。
      说明 您需要将光标放在图表背景上开始选择;当您将鼠标悬停在有效起点上时,光标会变为加号。
    • 单击下拉菜单,选择一个间隔。

查询数据

使用Kibana的查询语言(KQL),在搜索栏中输入要查询的内容时,会获取字段、值和运算符的建议。具体使用方式,请参见Elasticsearch官方文档 - Kibana Query syntax查询数据

修改展示字段

Discover页面展示了与搜索相匹配的所有文档。默认展示的是时间字段以及文档的列_source,您可以将其修改为需要查询的字段。例如要查询的字段为path,可单击path字段右侧的+号。修改展示字段
如果需要查看下图中的error.log,可单击/var/log/nginx/error.log右侧的+号。Discover字段展示2

查看文档内容

在文档表中展开文档,可以将鼠标悬停在文档上进行筛选和其他控制。如果需要查看该文档发生前后的文档,可以在右上角单击View surrounding documents;如果需要访问特定文档,可以单击View single document查看文档内容

常见问题

  • Q:为什么创建索引模式之后,在Discover页面没有展示直方图?

    A:需要确认索引中是否有时间类型字段的数据,例如查看索引mapping中是否有字段类型为timestamp。

  • Q:为什么使用search功能查询索引数据时,必须搜索完整的field message才能取回数据,而查询不完整的field message时无法取回数据?

    A:可以通过添加通配符*补全field的方式进行查询。原因可能是索引使用的分词器不一致。