Elastic Stack 入門 30 天上手心得 核心元件分析與高品質之數據檢索應用路徑

me
林彥成
2020-09-30 | 8 min.
文章目錄
  1. 1. 什麼是 Elastic Stack?
  2. 2. 為什麼從 ELK 演進到 Elastic Stack?
    1. 2.1. 現代 DevOps 中的 Elastic Stack 價值
  3. 3. Elastic Stack: Elasticsearch 全文檢索技術
  4. 4. 結語:通往數據驅動的高效之路
  5. 5. Elastic Stack: Elasticsearch
    1. 5.1. 全文檢索
  6. 6. Elastic Stack: Kibana
  7. 7. Elastic Stack: Logstash or Beats
  8. 8. Elastic Cloud 學習資源與分類
    1. 8.1. Elastic Cloud Logging
    2. 8.2. Elastic Cloud Metrics
    3. 8.3. Elastic Cloud APM
    4. 8.4. Elastic Cloud Kibana
    5. 8.5. Elastic Cloud Search APP
    6. 8.6. Elastic Cloud Security
    7. 8.7. Elastic Cloud Enterprise
  9. 9. FAQ:Elastic Stack 數據檢索入門常見問題
    1. 9.1. Q1:ELK Stack 與 Elastic Stack 有什麼差別?
    2. 9.2. Q2:為什麼前端工程師也需要學習 Elastic Stack?
    3. 9.3. Q3:Elastic Cloud 與自行架設的 Open Source 版本有什麼不同?

什麼是 Elastic Stack?

Elastic Stack(舊稱 ELK Stack)是一套強大的開源數據處理平台,由 ElasticsearchKibanaLogstashBeats 四大核心元件組成。其核心定義在於實現「端到端」的數據價值鏈:從輕量級的採集 (Beats)、進階的轉換 (Logstash),到高效的數據檢索與存儲 (Elasticsearch),最後透過視覺化介面 (Kibana) 進行分析。Elastic Stack 廣泛應用於 Observability (觀察性)、日誌管理與資安監控 (SIEM) 等領域。透過 Elastic Cloud,企業能更快速地架構起具備高擴展性與安全性的數據分析中心,協助工程師與營運團隊從海量數據中獲取即時洞察。


隨著巨量資料時代的來臨,有效地進行數據檢索與分析已成為各行各業不可或缺的能力。Elastic Stack,作為一套開源的數據處理平台,憑藉其強大的Elasticsearch檢索能力與Kibana視覺化介面,廣泛應用於日誌分析、指標監控、安全資訊管理等多個領域。

透過Elastic Cloud,用戶可以更便捷地部署、管理和擴展這些服務,讓複雜的數據操作變得簡單高效。本文將深入分享從零開始,30天上手 Elastic Cloud 的實戰心得。從傳統的 ELK Stack 演進至現代化的Elastic Stack,主要包含核心元件 ElasticsearchKibana、Logstash 與 Beats,我們將探索其在數據檢索、Observability 觀察性及資安領域的廣泛應用。

為什麼從 ELK 演進到 Elastic Stack?

早期的技術棧被稱為 ELK (Elasticsearch, Logstash, Kibana),主要聚焦於日誌處理。然而,隨著分散式架構的普及,僅有日誌是不夠的。我們需要更輕量級的採集工具,這催生了 Beats 系列。

Beats 的加入讓數據採集變得更加精細且低負載,直接將指標 (Metrics) 與網路流量數據傳送至 Elasticsearch。這場技術演進代表著 Elastic 從單純的日誌工具轉型為全方位的 Observability (觀察性)SIEM (安全資訊事件管理) 平台。

Elastic Stack 總體架構圖:展示 Elasticsearch, Kibana, Beats 與 Logstash 的協作流程

我的背景是前端工程師,從零開始接觸入門 Elastic Cloud Stack 30 天。曾聽過兩次 Elasticsearch 業界日常使用分享,第一次接觸檢索是以前在 GIS 公司服務,當時架完以下服務後算是對全文檢索有基本概念。

現代 DevOps 中的 Elastic Stack 價值

在現代的 DevOps 監控 流程中,Elastic Stack 扮演著「大腦」的角色。對於軟體工程師而言,優化數據檢索速度與確保系統的可觀測性是提升 開發者體驗 (DX) 的關鍵。透過 Elastic Cloud,我們能快速實踐:

  • 實時日誌分析: 快速定位生產環境的問題。
  • 性能指標監控: 掌握伺服器與容器的健康狀況。
  • 應用程式效能監控 (APM): 追蹤每一筆 Request 的流向。

Elastic Stack: Elasticsearch 全文檢索技術

Elasticsearch 是一個及時分散式的資料庫兼檢索引擎,並提供 REST API 方便大家操作。其核心的全文檢索技術利用了反向索引 (Inverted Index) 機制,極大化了查詢效率。

結語:通往數據驅動的高效之路

30 天的學習讓我深刻體會到,掌握 Elastic Stack 不僅是學會一個工具,更是學會一種處理大規模數據的思維方式。透過斷捨離冗餘的傳統資料庫查詢,轉向高品質的 Elastic Cloud 服務,工程師能將更多精力投入在核心業務邏輯的開發上。

  • 工作: 前後端開發六年多
    • 75% 前端,主要是 React.js 的相關應用
    • 20% 後端,Node.js 為主、也有架設過 Java 的後端服務
      • PostgreSQL 搭配 PostGIS 實作地理資訊檢索
      • Solr 架設全文檢索引擎,檢索全台景點相關資料
    • 5% 伺服器,Linux 為主、相關雲端服務的使用
  • 碩士: 學習研究方法,在短時間學習科技最尖端的新事物
    • 資料結構、離散數學助教
    • Android App 開發,跟厲害學弟實做成大醫院室內導航,但後來影像辨識部分不太成功
    • 碩論實做簡單的前後端網站應用透過 UTAUT 分析,題目是群眾外包應用於藥物服用知識系統之研究電子全文成大在畢業當年就提供下載了,歡迎朝聖 :)
  • 大學: 綜合型大學,主修是地方與人文美食?!!
    • 工程科學系畢業,上過大部分 Computer Science 相關基礎課程
    • 大學專題做的是嵌入式系統

本來預計全文檢索相關應用可以輕鬆學,30 天也許還能做個小專案應用,結果發現功能豐富,每天抽空 2~3 小時學習、組織、規劃、寫作的話,30 天還蠻剛好的,要做小專案可能要有更充裕的時間。

Elastic Cloud Stack 以 Elasticsearch 為基礎,簡化了在日誌 (Log)指標 (Metrics)應用程式效能監控 (APM) 資料蒐集與分析的流程,並且提供了 Kibana 這個網頁版的 GUI 介面方便對 Elasticsearch 進行相關操作。

只想會使用也提供了兩款幾乎是開箱即用的 Search APP,分別是 Workplace Search、App Search,設定好資料來源就完成 80%,對一個前端工程師來說,想要快速實做 MVP 來試水溫這個部分非常方便。

負責維運的 IT 部門來說資訊安全就蠻重要的,2019 Elastic 宣布買下終端安全資安業者 Endgame,宣示了往端點 (Agent-Based) 安全應用發展的決心,所以以 Elasticsearch 為基礎的 SIEM 整合 Endgame 後就發展成了一套還算完整的端點防護產品。

對於整個後端團隊來說,需要應用在正式環境,Elastic Cloud Enterprise 提供了 Cloud UI 管理介面,大量簡化維運、擴充與初步問題排解的難度,節點的監控也都幾乎開箱即用,即便最後不使用 ECE 原來的 Kibana 也有很豐富(複雜)的功能,只是需要花(不只)一點心力把結果變成想要的樣子,甚拉出一套 GA 儀表板都沒有問題。

這次學習是照 Elastic Cloud 提供的免費訓練總共兩大塊 17 門課,最後完成 16 門。建議學習的順序是做完 Quick Start 之後就先讀相關的基礎知識,打鐵趁熱較不會一知半解,底下會列出我認為比較好的學習與歸類,當然,還有之前寫的文章。

Elastic Stack: Elasticsearch

Elasticsearch 是一個及時分散式的資料庫兼檢索引擎,並提供 REST API 方便大家操作,可以用在任何需要把資料儲存並快速進行全文檢索的地方,什麼時候可以用到檢索,一個搜尋引擎執行的目標就是優化查詢的速度,讓我們快速找到某個單詞或句子在文檔中出現的地方,過往經驗覺得比較適合的地方像是:

  • GIS 資料
  • 各種地方蒐集的 log
  • 電商的產品分類、價格、關鍵字搜尋 (不用直接操作關聯資料庫減少負擔)

有三種使用方法:

  • 本機安裝: Java Base 所以如果想要安裝在本機上就需要先準備相關的環境
  • 使用 Elastic Cloud
  • AWS、GCP 上的免費版 (Open Source 版本)

服務主要分成底下兩種:

  • App Search: 匯入資料 csv、JSON 等資料
  • Workplace Search: 整合第三方資料來源
    • Confluence Cloud
    • Confluence Server
    • GitHub
    • Google Drive
    • Dropbox
    • Jira Cloud
    • Jira Server
    • OneDrive
    • Salesforce
    • ServiceNowSharePoint Online
    • Zendesk

全文檢索

之前有寫過一篇文簡單介紹了全文檢索的概念與應用,這裡簡單比較用一般資料庫與 Elastic Search 實作全文檢索服務的差異。

一般資料庫:

  • 對資料庫下命令 Like 或是配置資料庫內建的全文檢索
  • 寫程式串接
  • 撰寫 API 供他人使用
  • 撰寫 Client 端
  • 需要相關背景知識進行效能調整

Elastic Search:

  • 可以都透過 REST API 做相關操作、不需要對資料庫下命令
  • 有現成的 App Search Client 可以套用
  • 系統自動透過反向索引增進效能

Elastic Stack: Kibana

Kibana 是一個搭配 Elasticsearch 使用的使用者介面兼資料視覺化工具:

  • 是一個開源的資料分析與視覺化平台,方便瀏覽 Elasticsearch 的資料並且製作圖表、Dashboard
  • 是一個 Elastic Stack 的管理介面,像是安全性設定、使用者腳色、快照備份等等
  • 是一個傳送門,像是透過 log 的分析就可以做到 Elastic 解決方案中的資訊安全事件管理 (SIEM)

Elastic Stack: Logstash or Beats

  • Beats 是數據的蒐集工具,透過模組直接送數據到 Elasticsearch 或 Logstash
  • Logstash 是資料處理的工具,能夠同時蒐集多個來源,統整轉換後再送進 Elasticsearch

Elastic Cloud 學習資源與分類

這次的學習將會以試用 Elastic Cloud 為主,接下來的 30 天將一步步的依照官方提供的一系列訓練教學文做過一遍,帶著大家一起入門。Elastic Cloud Stack 的相關教學主要會分成兩塊:

  1. Quick Starts
  • Logging Quick Start
  • Metrics Quick Start
  • Application Performance Monitoring (APM) Quick Start
  • Workplace Search Quick Start
  • App Search Quick Start
  1. Fundamentals Training
  • Observability Fundamentals
  • Introduction to Observability: Logging
  • Metrics Fundamentals
  • APM Fundamentals
  • Kibana Fundamentals
  • Kibana for Splunk Users
  • Fundamentals of Securing Elasticsearch
  • Elastic SIEM Fundamentals
  • Elastic Endpoint Security Fundamentals
  • Anomaly Detection for Cybersecurity
  • ECE Fundamentals

按照分類區分的話,會分成七大塊

  1. Logging
  2. Metrics
  3. APM
  4. Kibana
  5. Search APP
  6. Security
  7. Elastic Cloud Enterprise

Elastic Cloud Logging

  • Logging Quick Start: 示範如何安裝並使用 Filebeat 傳送 Nginx Access Log 到 Elasticsearch 中,並使用 Kibana 即時監看相關資料
  • Introduction to Observability: Logging: 更深入的去介紹 Log 與 Filebeat 在實際運用上的細節、基礎概念及相關配置教學,本篇文章將著重在 Filebeat 在收集 Log 上的運用

Elastic Cloud Metrics

  • Metrics Quick Start: 示範如何安裝並使用 Metricbeat 傳送 Nginx 伺服器狀態到 Elasticsearch 中,並使用 Kibana 即時監控相關資料

Elastic Cloud APM

  • APM Fundamentals: 簡介怎麼運用 APM client 和 server 端的函式庫來做應用程式層級的監控

Elastic Cloud Kibana

Elastic Cloud Search APP

  • App Search Quick Start: 示範如何使用 Elastic App Search,App Search 是一個全文檢索的引擎,使用 Elastic Cloud 服務可以在幾分鐘內完成搜尋引擎的所有相關設定與資料匯入
  • Workplace Search Quick Start: 示範如何使用 Elastic Workplace Search (工作區檢索),工作區檢索讓我們能夠匯入並整合第三方服務的資料到搜尋引擎中,像是 Google Drive、Dropbox 等等,使用 Elastic Cloud 服務可以在幾分鐘內完成所有相關設定與資料匯入

Elastic Cloud Security

Elastic Cloud Enterprise


FAQ:Elastic Stack 數據檢索入門常見問題

Q1:ELK Stack 與 Elastic Stack 有什麼差別?

A:ELK 代表 Elasticsearch, Logstash, Kibana 三者。隨著技術演進,Elastic 引入了輕量級採集器 Beats,為了解決 Logstash 在終端設備上資源消耗過大的問題。為了更精確地描述這個包含多個元件的生態系,官方將其更名為 Elastic Stack。現在的 Elastic Stack 能更高效地處理日誌、指標與安全性數據。

Q2:為什麼前端工程師也需要學習 Elastic Stack?

A:對於前端工程師而言,掌握 Elastic Stack 能顯著提升 開發者體驗 (DX)。例如,透過 APM (應用程式效能監控) 可以追蹤前端 Request 到後端的延遲情況;透過 Kibana 則可以即時查看使用者行為日誌,協助排除生產環境中難以重現的 Bug。此外,若專案需要高品質的數據檢索功能,直接串接 App Search API 能比手動寫後端查詢更快速且高效。

Q3:Elastic Cloud 與自行架設的 Open Source 版本有什麼不同?

A:自行架設需要處理硬體採購、網路配置與手動升級。Elastic Cloud 則提供了完全託管的服務,包含自動化的快照備份、一鍵升級以及官方提供的獨家功能(如進階的安全防護與機器學習工具)。對於追求快速交付與穩定性的企業來說,Elastic Cloud 能大幅減少維運人力成本。



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