Kibana 简明教程
Kibana - Introduction To Elk Stack
Kibana 是一个开源可视化工具,主要用于分析大量日志,形式为折线图、条形图、饼图、热图等。Kibana 与 Elasticsearch 和 Logstash 同步工作,共同形成所谓的 ELK 堆栈。
ELK 代表 Elasticsearch、Logstash 和 Kibana。 ELK 是全球用于日志分析的最流行的日志管理平台之一。
在 ELK 堆栈中 −
-
Logstash 从不同的输入源中提取日志数据或其他事件。它处理事件,然后将事件存储在 Elasticsearch 中。
-
Kibana 是一个可视化工具,它可以访问Elasticsearch中的日志,并能够以折线图、条形图、饼图等形式显示给用户。
在本教程中,我们将紧密配合 Kibana 和 Elasticsearch,并以不同的形式可视化数据。
在本章中,让我们了解如何使用 ELK 堆栈。此外,您还将看到如何 −
-
从 Logstash 加载 CSV 数据到 Elasticsearch。
-
在 Kibana 中使用来自 Elasticsearch 的索引。
Load CSV data from Logstash to Elasticsearch
我们将使用 CSV 数据来上传使用 Logstash 到 Elasticsearch 的数据。要对数据分析开展工作,我们可以从 kaggle.com 网站获取数据。Kaggle.com 网站已上传所有类型的数据,用户可以使用这些数据来开展数据分析。
我们从这里获取了 countries.csv 数据: https://www.kaggle.com/fernandol/countries-of-the-world 。您可以下载 csv 文件并使用它。
我们将使用 csv 文件包含以下详细信息。
文件名 − countriesdata.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 个组件 −
Filter
将使用分隔符 csv 组件,在我们的例子中是逗号,以及 csv 文件中可用的列。由于 logstash 将所有传入的数据都视为字符串,如果我们想要将任何列用作整数,则必须使用 mutate 指定相同的浮点数,如上所示。
Output
对于输出,我们需要指定放置数据的位置。在这里,我们使用的案例是 elasticsearch。需要提供给 elasticsearch 的数据是它正在运行的主机,我们已将它指定为 localhost。下一个字段是索引,我们已将名称指定为 countries-currentdate。一旦将数据更新到 Elasticsearch 中,我们必须在 Kibana 中使用相同的索引。
将上述配置文件保存为 logstash_countries.config。请注意,我们需要在下一步的 logstash 命令中提供此配置的路径。
要将数据从 csv 文件加载到 elasticsearch,我们需要启动 elasticsearch 服务器 −
现在,在浏览器中运行 http://localhost:9200 以确认 elasticsearch 是否运行成功。
我们有正在运行的 elasticsearch。现在,转到 logstash 已安装的路径,并运行以下命令将数据上传到 elasticsearch。
> logstash -f logstash_countries.conf
以上屏幕显示从 CSV 文件加载数据到 Elasticsearch。要了解我们在 Elasticsearch 中创建了索引,我们可以按以下方式检查 −
我们可以看到创建了如上所示的 countriesdata-28.12.2018 索引。
索引 − countries-28.12.2018 的详细信息如下 −
请注意,当数据从 logstash 上传到 elasticsearch 时,会创建具有属性的映射详细信息。
Use Data from Elasticsearch in Kibana
现在,我们有在 localhost 上运行的 Kibana,端口 5601 − http://localhost:5601 。Kibana 的 UI 显示如下 −
请注意,我们已经将 Kibana 连接到 Elasticsearch,我们应该能够在 Kibana 内看到 index :countries-28.12.2018 。
在 Kibana UI 中,单击左侧的 Management Menu 选项 −
现在,单击 Index Management −
Elasticsearch 中存在的索引显示在索引管理中。我们将在 Kibana 中使用的索引是 countriesdata-28.12.2018。
因此,因为我们已经在 Kibana 中有了 elasticsearch 索引,所以下一步将了解如何在 Kibana 中使用索引以饼状图、条形图、折线图等形式可视化数据。