Kibana - ELK堆疊介紹



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檔案包含以下詳細資訊。

檔名 - 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個元件:

輸入

我們需要指定輸入檔案的路徑,在本例中為csv檔案。csv檔案儲存的路徑提供給path欄位。

過濾器

將包含csv元件及其使用的分隔符(在本例中為逗號),以及csv檔案的可用列。由於logstash將所有傳入資料視為字串,如果我們想將任何列用作整數或浮點數,則必須使用mutate進行指定,如上所示。

輸出

對於輸出,我們需要指定需要放置資料的位置。在這裡,在本例中我們使用的是elasticsearch。需要提供給elasticsearch的資料是其執行的主機,我們將其指定為localhost。下一個欄位是index,我們將其命名為countries-currentdate。一旦資料更新到Elasticsearch,我們必須在Kibana中使用相同的索引。

將上述配置檔案儲存為logstash_countries.config。請注意,在下一步中,我們需要將此配置檔案的路徑提供給logstash命令。

要將資料從csv檔案載入到elasticsearch,我們需要啟動elasticsearch伺服器:

Start Elasticsearch Server

現在,在瀏覽器中執行https://:9200以確認elasticsearch是否成功執行。

Elasticsearch Running

我們的elasticsearch正在執行。現在轉到安裝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中的資料

目前,我們的Kibana在localhost埠5601上執行 - https://:5601。Kibana的UI顯示在此處:

Kibana Running

請注意,我們已經將Kibana連線到Elasticsearch,我們應該能夠在Kibana中看到索引:countries-28.12.2018

在Kibana UI中,單擊左側的管理選單選項:

Management Menu

現在,單擊索引管理:

Index Management

Elasticsearch中存在的索引顯示在索引管理中。我們將在Kibana中使用的索引是countriesdata-28.12.2018。

因此,由於我們已經在Kibana中擁有elasticsearch索引,接下來我們將瞭解如何在Kibana中使用該索引以餅圖、條形圖、折線圖等形式視覺化資料。

廣告
© . All rights reserved.