開外掛的 Elasticsearch 數據檢索 30 天上手 Elastic Cloud 心得分享

me
林彥成
2020-09-30 | 5 min.
文章目錄
  1. 1. 心得分享
  2. 2. Elastic Stack: Elasticsearch
    1. 2.1. 全文檢索
  3. 3. Elastic Stack: Kibana
  4. 4. Elastic Stack: Logstash or Beats
  5. 5. Elastic Cloud 學習資源與分類
    1. 5.1. Elastic Cloud Logging
    2. 5.2. Elastic Cloud Metrics
    3. 5.3. Elastic Cloud APM
    4. 5.4. Elastic Cloud Kibana
    5. 5.5. Elastic Cloud Search APP
    6. 5.6. Elastic Cloud Security
    7. 5.7. Elastic Cloud Enterprise

什麼是 ELK Stack? Elastic 加入了開源的相關周邊後,進化成 Elastic Stack (ELK Stack) 主要包含 Elasticsearch、Kibana、Logstash (選配) or Beats,接下來會分享花 30 天入門 Elastic Cloud Stack 相關服務的心得,這次的學習將會以 Elastic Cloud 上的操作為主。

心得分享

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

  • 工作: 前後端開發六年多
    • 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


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


share