Elastic Kibana Quick Start 資訊圖像化可以炫技到什麼程度

me
林彥成
2020-09-10 | 4 min.

這篇文章會簡介 Kibana 設定和 Kibana Query 的教學,透過 Kibana Dashboard 把資料視覺化,帶著大家一起第一次使用 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 Query 教學

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"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 Dashboard 教學

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

在經過一個月的學習之後,操作上只是理解有非常多可以客製化的部分,難免會想資訊圖像化的部分到底可以炫技到什麼程度。

接下來就帶大家一起來看看匯入 Elsatic cloud 提供範例資料後的資訊圖像化,主要資料有航班交易資料、電商交易資料兩種,讓我們繼續看下去。

基本圖形

基本的甜甜圈圖、長條圖,可以看出樣式上提供的空間還是有的。

  • 電商交易資料,可以提供到平均交易額、每筆訂單交易的商品數量,比較特別的是比例看起來有對應到最大最小值
  • 航班交易資料

電商交易資料
PecentRevenue

航班交易資料
PecentTraffic

機器學習

在什麼都還沒設定的情況下,機器學習的功能就能夠先產生滿滿的圖表,可以快速對整體資料有概觀的了解,最大的幫助是能夠更快的做出想要的資訊圖表。

電商交易資料
MLRevenue

航班交易資料
MLFlight

機器學習能做的不只是把資料做快速分類製成圖表,真正強大的地方在預測未來,前提是這個資料的 Pattern 夠明確,顯然下面這個範例資料我選的欄位沒有很好,所以預測介於有跟沒有之間。

預測未來
MLForecast

複合型圖表

複合型的圖表,能夠把 time-series 的圖表做疊圖,不管是折線圖、長條圖、點圖都沒有問題,甚至還能夠用變數設定相關樣式

電商交易資料
ChartRevenue

航班交易資料
ChartTraffic

炫技用的圖表

為什麼說是炫技用的圖表,一看就知道底層包了像是 D3.js 的函式庫,不只整合了地理資訊還有能將資訊透過樣式的變化呈現,這如果不是炫技那什麼才是炫技,厲害吧!!!

電商交易資料
InfoGraphicRevenue

航班交易資料
InfoGraphicTraffic

更強的是其實相關圖表還能夠整合實際的設計,這個編輯介面完全是前端攻城獅火力展示的部分,能跟這樣的同事工作一定超棒!!!

圖片來源: https://www.elastic.co/what-is/kibana-canvas > InfrastructureMonitoring > BusinessAnalytics


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

share