如何使用 Kibana 仪表板和可视化内容

介绍

Kibana 4 是基于 Elasticsearch 的分析和可视化平台,以便您更好地了解您的数据. 在本教程中,我们将向您展示如何使用 Kibana 界面来过滤和可视化 Elasticsearch ELK 堆栈收集的日志消息,我们将涵盖主要界面组件,并展示如何创建搜索、可视化和仪表板。

前提条件

本教程是 ** Logstash 和 Kibana 集中的第三部分。

它假定你有一个工作 ELK 设置. 示例假定你正在收集 syslog 和 Nginx 访问日志. 如果你没有收集这些类型的日志,你应该能够修改示范以使用自己的日志消息。

如果你想按照本教程正如所示,你应该有以下设置,通过遵循本系列的前两个教程:

当你准备好继续前进时,让我们看看Kibana界面的概述。

Kibana 接口概览

Kibana 接口分为四个主要部分:

  • 发现
  • 可视化
  • 仪表板
  • 设置

我们将按照列出的顺序对每个部分的基本内容进行分析,并展示如何使用每个接口。

基巴纳发现

当您第一次连接到Kibana 4时,您将被带到发现页面。默认情况下,此页面将显示您的ELK堆栈最近收到的所有日志。在这里,您可以通过过滤并根据 搜索查询找到特定日志消息,然后使用 时间过滤器将搜索结果缩小到特定时间范围。

以下是Kibana Discover界面元素的分布:

  • 搜索栏: 直接在主要导航菜单下使用此处搜索特定字段和/或完整消息
  • 时间过滤器: 右边(时钟图标) 使用此处根据各种相对和绝对时间范围
  • ** 域选择器:** 左边,在搜索栏下。 选择字段来修改显示的字段在 Log View
  • Date Histogram: 搜索栏下的字段图表。 默认情况下,这显示了所有日志的计数,与时间(x轴)相匹配,以搜索和时间过滤器。 您可以点击字段,点击或拖动,以缩小时间过滤器
  • ** 日志查看:** 底部右边。

此动画展示了 Discover 页面的一些主要功能:

How To Use Kibana Discover

以下是正在执行的步骤描述:

  1. 选择了类型字段,限制了每个日志记录(右下)的显示 - 默认情况下,整个日志消息显示
  2. 搜索了类型:nginx-access``,仅匹配 Nginx 访问日志
  3. 扩展了最新的 Nginx 访问日志以详细查看

请注意,结果仅限于最后15分钟。如果您没有收到任何结果,请确保在指定时间段内生成的日志匹配您的搜索查询。

收集和过滤的日志信息取决于您的 Logstash 和 Logstash Forwarder 配置,在我们的示例中,我们正在收集 syslog 和 Nginx 访问日志,并按类型过滤它们。

搜索 语法

搜索提供了一个简单而强大的方式来选择特定子集的日志消息。搜索语法相当自我解释,并允许布尔操作员,野外卡和领域过滤。例如,如果你想找到 Nginx 访问日志,这些日志是由 Google Chrome 用户生成的,你可以搜索 类型: "nginx-access" AND 代理: "chrome"。你也可以搜索特定主机或客户端 IP 地址范围,或任何其他数据,包含在你的日志。

当您创建一个要保留的搜索查询时,您可以通过点击 ** 保存搜索 ** 图标,然后按一下 ** 保存 ** 按钮,如在本动画中:

How To Save a Kibana Search

保存搜索可以随时通过点击 ** 加载保存搜索 ** 图标来打开,也可以在创建可视化时使用。

我们将将类型:nginx-access的搜索保存为类型 nginx access,并使用它来创建可视化。

京东视觉

Kibana 可视化页面是您可以创建、修改和查看自定义可视化的页面,有几种不同类型的可视化,从 Vertical barPie 图表到 Tile maps (用于显示地图上的数据) 和 Data tables

如果这是您第一次使用Kibana可视化,您必须在继续之前重新加载您的字段列表。

创建垂直条形图

要创建可视化,首先单击 Visualize菜单项。

决定你想要的可视化类型,然后选择它,我们将创建一个 垂直条形图,这是一个很好的起点。

现在你必须选择搜索源. 您可以创建一个新的搜索或使用一个保存的搜索. 我们将使用后一种方法,并选择我们之前创建的 type nginx access搜索。

起初,右侧的预览图表将是一个固体栏(假设您的搜索发现了日志消息),因为它只由的Y轴组成。

为了使可视化更有用,让我们添加一些新的 buckets

首先,添加一个 X轴桶,然后点击 Aggregation下载菜单,然后选择日期历史图。如果您点击 Apply按钮,单个栏将分为沿X轴的几个栏。

如果我们想让图表更有趣,我们可以点击 Add Sub Aggregation按钮。 选择 Split Bars桶类型. 点击 Sub Aggregation下载菜单并选择重要条款,然后点击 Field下载菜单并选择clientip.raw,然后点击 Size字段并输入10。 点击 Apply按钮创建新图表。

这里有一个屏幕截图,你应该看到在这个时候:

Kibana Visualization Settings

如果可视化的日志是由多个IP地址生成的(即超过一个人访问您的网站),您将看到每个栏将被分为彩色部分。每个彩色部分代表特定IP地址生成的日志数量(即特定访问者到您的网站),图表将显示最多10个不同的部分(由于尺寸设置)。

当您准备保存可视化时,请点击顶部的 ** 保存可视化 ** 图标,然后命名并点击 ** 保存 ** 按钮。

创建新的可视化

在继续到下一节,在那里我们将展示如何创建仪表板,你应该创建至少另一个可视化。

例如,你可以创建你前五个(最高数)日志类型的饼干图表。 要做到这一点,点击 Visualize,然后选择 Pie 图表。 然后使用 新搜索,然后将搜索留为_(即你的所有日志)。 然后选择 _Split Slices* 桶。 点击 Aggregation落下式,选择Significant Terms,点击 Field落下式,选择type.raw,然后点击 Size字段,输入5。 现在点击 Apply按钮,将可视化保存为Top 5

以下是刚刚描述的设置的屏幕截图:

Pie chart settings

因为在我们的例子中,我们只收集 syslogs 和 Nginx 访问日志,所以蛋糕图表中只会有两个片段。

一旦完成创建可视化,让我们继续创建Kibana仪表板。

基巴纳仪表板

基巴纳仪表板页面是您可以创建、修改和查看自己的自定义仪表板的地方. 使用仪表板,您可以将多个可视化合并到一个页面上,然后通过提供搜索查询或通过点击可视化中的元素选择过滤器来过滤它们。

创建 Dashboard

要创建一个Kibana仪表板,首先单击 仪表板菜单项。

如果你以前没有创建仪表板,你会看到一个主要是空的页面,上面说准备好开始? 如果你看不到这个屏幕(即仪表板上已经有可视化),请按 新仪表板图标(搜索栏的右侧)到达那里。

此动画展示了如何将可视化添加到您的仪表板:

Create a Kibana Dashboard

以下是正在执行的步骤的分布:

  1. 点击 添加可视化图标
  2. 添加了日志计数饼图和Nginx: Top 10 客户端 IP历史图
  3. 崩溃了 添加可视化菜单
  4. 重新排列和调整仪表板上的可视化图
  5. 点击 Save Dashboard 图标

在保存它之前为您的仪表板选择一个名称。

这应该给你一个很好的想法,如何创建一个仪表板。继续创建任何你认为你可能想要的仪表板。

使用 Dashboard

可以通过输入搜索查询、更改时间过滤器或单击可视化中的元素来进一步过滤仪表板。

例如,如果您点击 histogram 中的特定颜色细分,Kibana 将允许您过滤该细分所代表的重要术语。

Filter a dashboard

请务必点击应用现在按钮来过滤结果,并重新绘制仪表板的可视化。

搜索和时间过滤器就像在发现页面中一样工作,但它们只适用于仪表板中呈现的数据子集。

基巴纳设置

Kibana 设置页面允许您更改各种东西,如默认值或索引模式. 在本教程中,我们将保持简单,并专注于 索引对象部分。

重新加载田野数据

当您将新的字段添加到您的 Logstash 数据时,例如如果您为新的日志类型添加过滤器,则可能需要重新加载您的字段列表。

要做到这一点,点击设置**菜单项,然后点击logstash-*(在索引模式**下):

Reload Field List

然后点击黄色 ** Reload Field List** 按钮. 点击 OK 按钮以确认。

编辑 保存对象

对象部分允许您编辑,查看和删除任何保存的仪表板,搜索和可视化。

要到达那里,点击设置菜单项,然后点击对象子菜单。

在这里,您可以从选项卡中找到您想要编辑、查看或删除的对象:

Edit Saved Objects

在屏幕截图中,我们选择了一种重复的可视化,可以通过点击相应的按钮来编辑、查看或删除。

结论

如果你遵循了这个教程,你应该有一个很好的理解如何使用Kibana 4 你应该知道如何搜索你的日志消息,并创建可视化和仪表板。

请务必查看本系列的下一个教程, 如何使用GeoIP和ELK来绘制用户位置

如果您有任何疑问或建议,请留下评论!

Published At
Categories with 技术
Tagged with
comments powered by Disqus