Kibana 介绍 Elk Stack


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

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 文件具有以下详细信息。

文件名:国家数据.csv

Columns: “国家”、“地区”、“人口”、“地区”

你还可以创建一个虚拟 csv 文件并使用它。我们将使用 logstash 从 国家数据.csv 到弹性搜索。

在终端中启动 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 文件被赋予路径字段。

Filter

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

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

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

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

Start Elasticsearch Server

Now, run http://localhost:9200 在浏览器中确认 elasticsearch 是否正在运行 成功地。

Elasticsearch Running

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

> logstash -f logstash_countries.conf
Elasticsearch Command Prompt

Elasticsearch Upload Data

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

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

Countriesdata Index

指数详情:countries-28.12.2018如下:

Countriesdata Detail Index

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

在 Kibana 中使用来自 Elasticsearch 的数据


目前,我们在 localhost 5601 端口上运行 Kibana: http://localhost:5601 . Kibana 的 UI 如下图所示:

Kibana Running

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

在 Kibana UI 中,点击左侧的 Management Menu 选项:

Management Menu

现在,点击索引管理:

Index Management

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

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