喬叔的 Elastic Stack 專業教育訓練
  • 喬叔的 Elastic Stack 專業教育訓練
  • 🧑關於喬叔 (Joe Wu)
  • Elastic 課程公開班
    • 🎯Elasticsearch 基礎實務班
      • 💯學員課後回饋
    • 🆕Elasticsearch 進階運維班
      • 💯學員課後回饋
    • Elasticsearch 進階開發班
    • Elastic Stack 基礎實務班
    • Elastic Observability 基礎實務班
    • 📩課程許願池
  • 技術分享
    • 📗喬叔帶你上手 Elastic Stack
      • 前言
      • Elastic Cloud 如何建立 Deployment
        • ES Node 的種類
        • 配置的選擇
      • Index 建立前你該知道的
        • ES Index 如何被建立
        • ES 的超前佈署 - Dynamic Mapping
        • ES 的超前佈署 - Index Template
        • ES Index 的別名 (Alias)
        • 管理你的 Index - Kibana Index
      • 管理 Index 的 Best Practices
        • Shard 的數量與 Rollover & Shrink API
        • 三溫暖架構 - Hot Warm Cold Architecture
        • Index Lifecycle Management (ILM)
        • Rollup
        • Transform
        • Snapshot Lifecycle Management (SLM)
        • 總結
      • Elastic Cloud 比免費版還多的功能
        • Elastic Stack 的方案比較與銷售方式
        • Centralized Beats Management
        • Centralized Pipeline Management
        • Watcher
        • Elasticsearch Token Service
        • Multi-stack monitoring & Automatic stack issue alerts
      • 向 App Search 學習怎麼用 Elasticsearch
        • 揭開 App Search 的面紗
        • Engine 的 Index Settings 篇
        • Engine 的 Mapping 篇
        • Engine 的 Search 基礎剖析篇
        • Engine 的 Search 進階剖析篇
      • Elasticsearch 的優化技巧
        • Indexing 索引效能優化
        • Searching 搜尋效能優化
        • Index 的儲存空間最佳化
        • Shard 的最佳化管理
      • 完賽心得
    • 📘喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 系列
      • 前言 & 淺談 Observability
      • Elastic 的 Observability 解決方案
      • Uptime - 掌握系統的生命徵象
        • 我們要觀測的生命徵象是什麼?
        • 使用 Heartbeat 收集系統生命徵象數據
        • 透過 Kibana 觀看心電圖及設定警報
        • 使用合成監控 (Synthetics Monitor) 從使用者情境驗證服務的運作狀態
      • Metrics - 觀察系統的健康指標
        • Metrics 與 Metricbeat 的基本介紹
        • 使用 Metricbeat 掌握 Elastic Stack 的健康狀態
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 Host 篇
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 Docker 篇
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 Kubernetes 篇
        • 使用 Metricbeat 掌握 Infrastructure 的健康狀態 AWS 篇
      • Logs - 挖掘系統內部發生的狀況
        • Logs 與 Filebeat 的基本介紹
        • 使用 Filebeat 應該要了解的設計細節與原理
        • 透過 Filebeat 收集 Elastic Stack 中各種服務的細節資訊
        • 透過 Filebeat 收集 Infrastructure 中各種服務的細節資訊
      • Traces - 觀察應用程式的效能瓶頸
        • Elastic APM 基本介紹
        • 使用 APM-Integratoin-Testing 建立 Elastic APM 的模擬環境
        • 如何在 Kibana 使用 APM UI
        • 使用 APM Server 來收集 APM 數據
        • 透過 APM Agents 收集並傳送後端服務運作的記錄
        • 透過真實使用者監控 (RUM, Real User Monitoring) 來改善使用者體驗
      • 建立結構化的 Log
        • Elastic Common Schema 結構化 Log 的規範
        • Elasticsearch Ingest Pipeline 資料 Index 前的轉換好幫手
          • 基本介紹
          • 各種常用的 Processor
          • Enrich 資料與例外處理
      • 有效的使用 Observability 的資料
        • 透過 Machine Learning 發現異常的問題
        • 使用 Kibana Alerts 主動通知異常狀況
        • 資料的生命週期管理
        • 使用 Elastic Observability 追縱及觀察問題的心得
      • 完賽心得
    • 😀Elasticsearch 技術分享小品
      • 🤖Elastic 與 AI
        • Elasticsearch Inference API 讓我們直接在 ES 裡運用 OpenAI Completion API
    • 🎥線上分享
      • 喬叔 Elasticsearch Index 管理與效能優化技巧
      • Elastic Certification 認證經驗分享
    • 🛠️workshop
      • 如何在 Elasticsearch 實現敏捷的資料建模與管理 @ DevOpsDays 2023
        • 工作坊實作內容
      • Elastic Observability 實作體驗坊 @ DevOpsDays 2022
        • 行前準備
        • 工作坊實作內容
      • 當 Elasticsearch 搜尋引擎遇上 AI @ HelloWordDevConference 2024
        • 投影片
        • Elasticsearch 環境準備
        • Google Colab 環境準備
        • 工作坊操作說明
        • ElasticSearch Relevance Engine (ESRE)
    • ⬆️Elastic Stack 版本升級記錄
      • 🔍Elasticsearch
  • 其他專業服務
    • 👩‍🎓企業包班 | 企業內訓
    • 👨‍💼顧問服務
    • 🈺專案合作
    • 🧩Elastic 授權代理
  • 相關連結
    • Facebook 粉絲頁
Powered by GitBook
On this page
  • 參賽背景
  • 什麼是 Observability (可觀察性) ?
  • 此系列文章的目的
  • 參考資料
  1. 技術分享
  2. 喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 系列

前言 & 淺談 Observability

參賽背景

去年參加第 12 屆的 iT邦幫忙鐵人賽,在飽受煎熬的度過 30 天之後,沒想過會要再參加下一屆,今年在經歷超過 100 次想放棄的念頭之後,在 9/15 最後一天報名截止日,填了報名表單,按下了送出,於是在 9/16 當天開始動筆寫下這篇文章。

(你沒看錯,就是學不會教訓,第二次參賽了還不懂得要先累積一些文章…)

本來少女人妻這次想落跑,今年換我把他推進坑!(不知她是誰的,她是我們上一屆的團長、也是推我入鐵人坑的兇手!)

今年除了我們去年團隊的三個成員,另外多找了三位新成員,總共六人報名,要團體完賽的難度加倍…夥伴們加油!也歡迎大家多鼓勵餵食我們!

什麼是 Observability (可觀察性) ?

最近幾年,特別是 2019~2020 年時,Observability 這個字變得非常的熱門,一方面微服務架構的普及化,傳統的系統服務監控方式開始發現不足以應付這樣複雜的系統,另一方面 DevOps 的理念及各種實踐方法也愈來愈被大家重視,因此如何能有效的掌握系統的運作狀態,也就被受重視。

針對 Observability 字面上可以簡單的解讀為:

透過系統外部所揭露資訊的觀察,能有效的掌握到系統內部的運作狀態

有不少針對 Monitoring (監控) 與 Observability (可觀察性) 進行比較的討論,有人覺得根本是一樣的,這個 observability 只是個 buzzword,而我這邊和大家分享一下我自己對於這兩個字的解讀。

Monitoring,可以比喻像是我們透過心電圖、心跳、血壓…等各種方式來掌握一個人的生命狀態,透過身體本身就會產生的各種訊息,來觀察我們身體的狀態,用來解讀甚至能監控我們身體健康情況,一但有異常就能即時發現,甚至是可以當作生病時找尋病源的參考資訊。

Observability,重點是 Observable (可被觀察的),如果今天是一個鋼鐵人,身穿盔甲,我們從外部測不到心跳、心電、血壓,這樣也就缺少了可被觀察的能力。

也就是說,讓身體的數據可以被取得、可以被觀察,也就是 Observability,並且因為有這樣的能力,我們也才有辦法做 Monitoring,因此若只是使用一堆 Monitoring 的工具,把系統的資訊給拉成一個個的 Dashboard,這樣並不適合叫做提升 Observability,而透過工具讓本來很不容易取得的資訊,能更容易的被觀察、分析、監控,甚至在服務或應用程式的設計上,將有被觀察意義的資訊給揭露出來,讓負責維護系統的人能有效的掌握系統狀況、盤查問題,這才是有效的提升系統的 Observability。

另外參考 Google Cloud Architecture Center 中 DevOps Guides [1] 對針這兩個詞的定義:

Monitoring is tooling or a technical solution that allows teams to watch and understand the state of their systems. Monitoring is based on gathering predefined sets of metrics or logs.

Observability is tooling or a technical solution that allows teams to actively debug their system. Observability is based on exploring properties and patterns not defined in advance.

有提到一個重點,就是『事先定義』,Observability 也就是擁有能夠探索未事先定義的屬性與模式的能力。

此系列文章的目的

這次會以 Observability 當作主題,主要是喬叔自己在軟體領域 20 多年來,在實務中深感 Observability 的重要,因此希望一方面透過這個主題,能將這方面的經驗與觀念整理出來,另一方面也想透過寫這篇文章時,能再次精煉我自己對於 Elastic Stack 的熟練程度,因此這系列會以 Elastic Stack 來當作提升系統 Observability 的解決方案,另外不會去和其他的競品比較,在這邊要先要解釋一下,Elastic Stack 絕對不會是唯一合適的選擇,而我會選擇他,是因為他提一個整合度、生態圈都蠻完整的整體解決方案,最重要的是能較快速的將好的理念實現出來,能實際幫助到團隊、產品、客戶,盡快產生出實際的價值,希望這系列的文章能幫助到有需要的人。

參考資料

Previous喬叔帶你上手 Elastic Stack - 探索與實踐 Observability 系列NextElastic 的 Observability 解決方案

Last updated 2 years ago

📘
Google Cloud Architecture Center - DevOps Guides