Elastic Kibana Quick Start 第一次使用 Kibana 就上手

Lin Yen-Cheng on 2020-09-10 6 min. read

這篇文章會簡介 Kibana 並帶著大家一起第一次使用 Kibana 就上手,把資料視覺化。

Kibana 簡介

Kibana 可以看成是 Elastic Stack 的後台管理介面,不需要太多資料庫的知識也能夠進行相關操作。

  • 透過 Kibana 可以分析、搜尋、操作、視覺化 Elasticsearch 中的資料
  • 透過 Kibana 可以管理 Elastic Stack 的相關設定

解決的痛點:

  • 資料視覺化: 一張圖勝過千筆萬筆資料
  • Kibana Lens 提供簡單直觀的拖拉式視覺化工具
  • Dashboards: 提供預設範本也可自訂和編輯
  • Alert 機制: 設定 thresholds 來觸發特定動作 (Slack 通知、寄信等等)

名詞解釋:

  • Event: Logs 在 Kibana 中稱為 Events,包含 timestamp 及相關資訊
  • Document: 每筆 Log 最後會變成的 JSON object
  • Index: Document 的容器,用來整理資料協助工作流程用

解決商業面問題

  • 有多少使用者名稱叫桃貴?
  • 上一個月有到澎湖旅遊的使用者清單?
  • 哪隻 API 會常常回傳 404?

要回答上面的問題只是把問題輸入在搜尋框是行不通的,在文字搜尋提供了以下三種

  • KQL (Kibana Query Language)
  • The Lucene query
  • The query DSL (Domain Specific Language)

Kibana 資料操作

資料可以大致分成兩類

  • Static datasets: 通常大小不太會變,像是旅館空房數
  • Time series datasets: 按照時間 (每天、周、月) 來做 Index 會比較容易管理
    • 建議建立 Time-based 的 Index

Kibana 雖然提供將資料直接上傳的介面但並不會儲存及運算資料,資料的儲存和運算都會在 Elasticsearch 中,可以 下載我的範例 access.log 就可以直接上傳來試用介面了。

  • 限制 100 MB,常見的 log 檔都可以直接上傳
  • 特殊格式 TSV、CSV、JSON

UploadDataFromLogFile

Kibana 設定

要開始使用厲害的視覺化功能前,當收到檔案後,有些步驟可以先進行資料的確認

  • 設定 Index Patterns 彙整相關 index,通常照教學只有少部分需要自行設置
    IndexPatterns
  • Discover 介面可以查看資料,透過設定和切換 Filters 來加速篩選,常用的可以 Pin 起來
    KibanaDiscover

Kibana 資料搜尋

在 Discover 搜尋我們可以在關鍵字中使用 KQL,譬如台灣有幾個桃貴,我們可以搜尋 桃貴 台灣 可能會找出蠻多不那麼相關的結果,只要有吻合 桃貴 或是 台灣 的結果都會出現,如果想要更精確可以

  • 取交集 桃貴 and 台灣
  • 補上欄位 user:桃貴 and country:台灣
  • 補上年紀 user:桃貴 and country:台灣 and age:<5

如果資料是多層的如下,舉例來說指令就可以 items:{ name:banana and stock > 10 }

{
  "grocery_name": "Elastic Eats",
  "items": [
    {
      "name": "banana",
      "stock": "12",
      "category": "fruit"
    },
    {
      "name": "peach",
      "stock": "10",
      "category": "fruit"
    },
    {
      "name": "carrot",
      "stock": "9",
      "category": "vegetable"
    },
    {
      "name": "broccoli",
      "stock": "5",
      "category": "vegetable"
    }
  ]
}

Kibana 資料視覺化

Kibana Lens 資料視覺化的拖拉工具,覺得算是最容易入門的,使用方式就是將最左側相關欄位拖拉到右側的 X 跟 Y 軸,底下會有建議的樣式出現。

  • 把 @timestamp 放到 X 軸
  • Response Body Byte 放到 Y 軸
  • 用 status code 去分類

KibanaLens

Time-Series Visualization Builder (TSVB) 是專門處理 time-series data 用的,可以在一個畫面疊好幾個上去,這個部分就還沒深入研究,不過看起來還蠻厲害的。

TSVB

當我們製作好相關視覺化元件後就可以加入到 Dashboard 中,從以上操作可以發現,並不需要 Elasticsearch 的專業知識就可以進行操作,複雜的運算與效能調整 Elasticsearch 也都會自動處理好,只需要專注在資料視覺化。

AddPanelToDashboard


喜歡這篇文章,請幫忙拍拍手喔 🤣

share