Kibana – Elk Stack 简介

Kibana – Elk Stack 简介


Kibana 是一个开源的可视化工具,主要用于以线图、条形图、饼图、热图等形式分析大量日志。 Kibana 与 Elasticsearch 和 Logstash 同步工作,共同形成所谓的ELK堆栈。

ELK代表 Elasticsearch、Logstash 和 Kibana。ELK是全球用于日志分析的流行日志管理平台之一。

在 ELK 堆栈中 –

  • Logstash从不同的输入源中提取日志数据或其他事件。它处理事件,然后将其存储在 Elasticsearch 中。

  • Kibana是一个可视化工具,它从 Elasticsearch 访问日志,并能够以折线图、条形图、饼图等形式展示给用户。

在本教程中,我们将与 Kibana 和 Elasticsearch 密切合作,以不同的形式可视化数据。

在本章中,让我们了解如何与 ELK 堆栈一起工作。此外,您还将看到如何 –

  • 将 CSV 数据从 Logstash 加载到 Elasticsearch。
  • 在 Kibana 中使用来自 Elasticsearch 的索引。

将 CSV 数据从 Logstash 加载到 Elasticsearch

我们将使用 CSV 数据通过 Logstash 将数据上传到 Elasticsearch。为了进行数据分析,我们可以从 kaggle.com 网站获取数据。Kaggle.com 站点上传了所有类型的数据,用户可以使用它进行数据分析。

我们从这里获取了 countries.csv 数据:https :
//www.kaggle.com/fernandol/countries-of-the-world您可以下载 csv 文件并使用它。

我们将要使用的 csv 文件具有以下详细信息。

文件名 – countrydata.csv

列 – “国家”、“地区”、“人口”、“地区”

您还可以创建一个虚拟的 csv 文件并使用它。我们将使用logstash 将这些数据从countriesdata.csv转储到elasticsearch

在终端中启动 elasticsearch 和 Kibana 并保持运行。我们必须为 logstash 创建配置文件,该文件将包含有关 CSV 文件列的详细信息以及其他详细信息,如下面的 logstash-config 文件所示 –

input {
   file {
      path => "C:/kibanaproject/countriesdata.csv"
      start_position => "beginning"
      sincedb_path => "NUL"
   }
}
filter {
   csv {
      separator => ","
      columns => ["Country","Region","Population","Area"]
   }
   mutate {convert => ["Population", "integer"]}
   mutate {convert => ["Area", "integer"]}
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      => "countriesdata-%{+dd.MM.YYYY}"
   }
   stdout {codec => json_lines }
}

在配置文件中,我们创建了 3 个组件 –

输入

我们需要指定输入文件的路径,在我们的例子中是一个 csv 文件。将存储 csv 文件的路径提供给路径字段。

筛选

将使用带有分隔符的 csv 组件,在我们的例子中是逗号,还有可用于我们的 csv 文件的列。由于 logstash 将所有传入的数据视为 string ,如果我们希望将任何列用作 integer ,则必须使用 mutate 指定相同的 float ,如上所示。

输出

对于输出,我们需要指定我们需要放置数据的位置。在这里,在我们的例子中,我们使用的是 elasticsearch。需要提供给 elasticsearch 的数据是它运行的主机,我们将其称为 localhost。中的下一个字段是索引,我们将其命名为国家/地区-currentdate。一旦数据在 Elasticsearch 中更新,我们必须在 Kibana 中使用相同的索引。

将上述配置文件保存为logstash_countries.config请注意,我们需要在下一步中将此配置的路径提供给 logstash 命令。

要将数据从 csv 文件加载到 elasticsearch,我们需要启动 elasticsearch 服务器 –

启动 Elasticsearch 服务器

现在,在浏览器中运行http://localhost:9200以确认 elasticsearch 是否运行成功。

Elasticsearch 运行

我们正在运行elasticsearch。现在转到安装logstash的路径并运行以下命令将数据上传到elasticsearch。

> logstash -f logstash_countries.conf

Elasticsearch 命令提示符

Elasticsearch 上传数据

上面的屏幕显示了从 CSV 文件加载到 Elasticsearch 的数据。要知道我们是否在 Elasticsearch 中创建了索引,我们可以检查如下 –

我们可以看到如上图所示创建的 countriesdata-28.12.2018 索引。

国家数据索引

该指数的详细信息 – countries-28.12.2018 如下 –

国家数据详细索引

请注意,当数据从 logstash 上传到 elasticsearch 时,会创建带有属性的映射详细信息。

在 Kibana 中使用来自 Elasticsearch 的数据

目前,我们在 localhost 上运行 Kibana,端口 5601 – http://localhost:5601Kibana 的 UI 显示在此处 –

Kibana 跑步

请注意,我们已经将 Kibana 连接到 Elasticsearch,我们应该能够在 Kibana 中看到
索引 :countries- 28.12.2018。

在 Kibana UI 中,单击左侧的管理菜单选项 –

管理菜单

现在,单击索引管理 –

索引管理

Elasticsearch 中的索引显示在索引管理中。我们将在 Kibana 中使用的索引是 countrydata-28.12.2018。

因此,既然我们已经在 Kibana 中拥有了 elasticsearch 索引,接下来将了解如何使用 Kibana 中的索引以饼图、条形图、折线图等形式可视化数据。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁