Kibana 資料視覺化實戰 活用 Lens 與 KQL 打造高品質數據報表

me
林彥成
2020-09-10 | 7 min.
文章目錄
  1. 1. 什麼是 Kibana 及其在數據分析中的作用?
  2. 2. Kibana 介紹:Elastic Stack 的視覺化大腦
    1. 2.1. 為什麼 Kibana 是大數據視覺化的首選?
    2. 2.2. Kibana 資料操作
    3. 2.3. Kibana 設定
  3. 3. KQL 語法範例:像說話一樣查詢
  4. 4. Kibana Lens:零門檻的拖拉式設計
    1. 4.1. 基本圖形
    2. 4.2. 機器學習
    3. 4.3. 複合型圖表
    4. 4.4. 炫技用圖表
    5. 4.5. Kibana Lens 的核心優勢
  5. 5. 企業戰情室的極致:Kibana Canvas
    1. 5.1. Canvas 在企業戰情室 (War Room) 的應用
  6. 6. FAQ:Kibana 資料視覺化常見問題
    1. 6.1. Q1:KQL 與傳統的 Lucene 查詢語法有什麼差別?
    2. 6.2. Q2:為什麼在 Kibana 中一定要設定 Index Pattern?
    3. 6.3. Q3:Kibana Canvas 與一般的 Dashboards 該如何選用?
  7. 7. 結語:通往數據洞察的捷徑
  8. 8. 更多相關文章

什麼是 Kibana 及其在數據分析中的作用?

Kibana 是 Elastic Stack 的視覺化大腦,專為 Elasticsearch 資料視覺化 與深度 數據分析 而設計。其核心功能在於提供一個直覺的網頁介面,讓使用者能透過:1. KQL 查詢語言:以類自然語言搜尋海量日誌(如 status:200);2. Kibana Lens 教學:利用拖拉式操作快速生成圖表;3. Kibana Canvas 戰情室:像素級編輯即時動態簡報。透過這份 Kibana 快速入門 指南,開發者能將複雜的 JSON 數據轉化為高品質的儀表板,實踐高品質的資訊圖像化,從而秒級掌握系統健康狀態與商業趨勢洞察。


Kibana 介紹:Elastic Stack 的視覺化大腦

本文提供Kibana快速入門教學,帶您深入了解Elasticsearch資料視覺化數據分析功能。透過Kibana強大的介面,即使不具備深厚資料庫知識,也能透過Kibana Lens、KQL與自訂儀表板,將複雜資訊圖像化

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

解決的痛點:

  • 資料視覺化: 一張圖勝過千筆萬筆資料
  • 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 是大數據視覺化的首選?

在處理海量數據時,「一張圖勝過千言萬語」。Kibana 不僅提供基礎圖表,更具備以下高品質特性:

  • 實時性: 資料寫入 Elasticsearch 後,儀表板能秒級更新。
  • 互動性: 點擊圖表中的特定區域,全站篩選器會自動聯動,實現深入的數據分析

Kibana 資料操作

資料可以大致分成兩類

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

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

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

透過 Kibana 介面從 log 檔案上傳數據

Kibana 設定

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

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

KQL 語法範例:像說話一樣查詢

要從海量 Document 中精確撈取資料,掌握 KQL (Kibana Query Language) 是關鍵。

  • 基礎過濾: status: 200
  • 邏輯組合: user:桃貴 and country:台灣 and age < 5
  • 巢狀搜尋: items:{ name:banana and stock > 10 }

在 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 Lens:零門檻的拖拉式設計

對於初學者,Kibana Lens 是最推薦的起步工具。

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

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

Kibana Lens 拖拉式資料視覺化工具截圖

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

Kibana TSVB (Time-Series Visualization Builder) 介面截圖

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

將視覺化元件添加到 Kibana Dashboard

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

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

基本圖形

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

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

電商交易資料
電商交易資料的基本甜甜圈圖

航班交易資料
航班交易資料的基本長條圖

機器學習

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

電商交易資料
電商交易資料機器學習功能自動生成的圖表

航班交易資料
航班交易資料機器學習功能自動生成的圖表

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

預測未來
機器學習預測未來趨勢的圖表

複合型圖表

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

電商交易資料
電商交易資料的複合型時間序列圖表

航班交易資料
航班交易資料的複合型時間序列圖表

炫技用圖表

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

電商交易資料
電商交易資料的炫技型地理資訊圖表

航班交易資料
航班交易資料的炫技型地理資訊圖表

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

Kibana Lens 的核心優勢

以往製作圖表需要精確定義聚合 (Aggregations),但在高品質的 Kibana Lens 介面中,您只需將欄位拖入畫布,系統會根據資料類型自動建議最佳圖表(如長條圖、圓餅圖或面積圖)。這種「所見即所得」的體驗,大大降低了 資料視覺化 的學習曲線。

企業戰情室的極致:Kibana Canvas

如果 Dashboards 是為了數據分析,那麼 Kibana Canvas 就是為了「說故事」。

Canvas 在企業戰情室 (War Room) 的應用

高品質的 Kibana Canvas 教學 通常會強調其像素級的編輯能力。它允許開發者像使用 Photoshop 一樣,將即時數據與品牌設計完美融合。在企業的戰情室中,Canvas 能將即時業績、系統負載或資安告警轉化為極具視覺衝擊力的動態簡報,是 大數據視覺化 的最高境界。

圖片來源: https://www.elastic.co/what-is/kibana-canvas
以下動圖展示了基礎設施監控的即時動態,利用 Canvas 可以將 SQL 查詢結果轉化為直觀的圓環圖與狀態指示燈。
InfrastructureMonitoring
下圖展示了商業分析畫布,透過豐富的自定義背景與數據綁定,企業能建立專屬的品牌戰情儀表板。
BusinessAnalytics


FAQ:Kibana 資料視覺化常見問題

Q1:KQL 與傳統的 Lucene 查詢語法有什麼差別?

A:KQL (Kibana Query Language) 是為了簡化搜尋而設計的,它更接近自然語言(如 status:200),且支援自動完成。Lucene 則是底層的查詢語法,支援更複雜的正則表達式與模糊搜尋。在一般的 數據分析報表 製作中,KQL 已能滿足 90% 的需求,且更易於閱讀。

Q2:為什麼在 Kibana 中一定要設定 Index Pattern?

A:因為 Elasticsearch 中的資料是以多個 Index 形式存在的(如 filebeat-2026.02.20)。Index Pattern 的作用是告訴 Kibana 應該將哪些 Index 視為同一組資料源來進行彙整分析。沒有 Index Pattern,Kibana 就無法跨天或跨版本顯示相關的視覺化圖表。

Q3:Kibana Canvas 與一般的 Dashboards 該如何選用?

A:Dashboards 適合日常的技術監控與深入的 數據分析,重點在於快速過濾與數據下鑽 (Drill-down)。而 Kibana Canvas 戰情室 則適合高階主管決策或展覽展示,重點在於美觀與「數據說故事」,提供像素級的排版自由度,兩者相輔相成。


結語:通往數據洞察的捷徑

掌握 Kibana 意味著擁有了與數據「對話」的能力。透過 Kibana Lens 快速出圖,並利用 Canvas 進行高品質的成果展示,開發者能從繁瑣的報表製作中「斷捨離」,將精力集中在挖掘數據背後的商業價值。

更多相關文章

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


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