Elastic Kibana 快速入門 資訊圖像化可以炫技到什麼程度

me
林彥成
2020-09-10 | 4 min.
文章目錄
  1. 1. Kibana 介紹
    1. 1.1. Kibana 資料操作
    2. 1.2. Kibana 設定
    3. 1.3. Kibana Query 教學
    4. 1.4. Kibana Dashboard
      1. 1.4.1. 基本圖形
      2. 1.4.2. 機器學習
      3. 1.4.3. 複合型圖表
      4. 1.4.4. 炫技用圖表
  2. 2. 更多相關文章

Kibana 介紹

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

更多相關文章

底下三篇文章整理了學習 Elastic Cloud Stack 的相關心得,也推薦給大家!!!


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


share