全面介紹 Grafana、Prometheus、Loki、OpenTelemetry 等核心工具!
實現全面的系統監控和分析!
從零開始,構建強大的可觀測性架構
概念導覽
深入淺出解析可觀測性概念
完整範例
使用 Docker Compose 展示多種實戰範例
多處適用
Kubernetes 與傳統服務皆適用
資訊整合
結合 Metrics、Logs 和 Traces 全面洞察
提升穩定/增加效率/結合應用
無論前後端,全面掌握系統運行!
本書改編自第15屆 iThome 鐵人賽 Cloud Native 組冠軍系列文章《時光之鏡:透視過去、現在與未來的 Observability》,提供完整且易於理解的可觀測性學習路徑,涵蓋核心概念和實踐方法。詳細介紹 Grafana、Prometheus、Loki、OpenTelemetry 等工具,並透過多個實戰範例,展示如何實現系統的可觀測性。
不僅如此,本書還特別強調了如何結合應用各種可觀測性資訊,讓脈絡更加豐富,有別於傳統的監控方法。新增的 Grafana Faro 章節讓前端服務也能配有可觀測性,並與後端的可觀測性結合,實現全面的監控和分析。
可觀測性不僅是技術的提升,更是對系統運行的全面掌握。透過《可觀測性入門指南》,你將學會如何利用主流工具和方法,提升系統穩定性和運行效率。本書將成為你在可觀測性領域的得力助手,幫助你在工作中如虎添翼。期待與你一同探索可觀測性的無窮樂趣!
❖目標讀者
●追蹤 Bug 感到頭痛的 Dev:學習高效定位和解決問題的方法與工具。
●定位線上問題疲於奔命的 Ops:提升問題排查效率,減少故障排除時間。
●希望了解和導入可觀測性的工程師:從基礎到實踐,全方位學習快速上手。
專業推薦
本書除了分解架構之外,還分享並解釋了這些架構背後的思路,值得所有 IT 從業者參考與學習。對於每個專案,不應盲目使用,而應以自己的方式進行分類,並將這種方法應用於其他相似的專案中。透過這種方式,可以加深對專案的理解,提升對整體架構的掌握。希望讀者能透過本書,不僅提升技術能力,還能在實踐中探索出屬於自己的學習方法,應對日益複雜的系統挑戰,成為引領技術發展的先鋒。——邱宏瑋(hwchiu)
本書的內容涵蓋廣泛,從三大基本的遙測信號──Metrics、Logs 和 Traces──出發,深入探討各種信號的使用場景與工具選擇。每個章節不僅介紹了理論知識,還搭配了實際操作的 Lab,使讀者能夠親自動手,迅速掌握各種工具的使用方法。這種理論與實踐相結合的方式,能幫助讀者在理解可觀測性核心概念的同時,熟練掌握操作技能。無論是初學者還是有一定經驗的技術人員,都能從中獲益匪淺。在閱讀這本書的過程中,我們不僅能掌握遙測信號的理論基礎與實際操作,還能體會到可觀測性在系統維運中的重要性與實用性。——可觀測性工程戰友 雷N
可觀測性入門指南:Logs、Metrics、Traces三大實戰應用,用24個Lab鞏固你的SRE技能樹(iThome鐵人賽系列書)
內容描述
目錄大綱
PART1 可觀測性初探
Chapter01 可觀測性的過去與現在
可觀測性要解決的問題
可觀測性資訊
可觀測性資訊的處理與使用
資料收集 Pattern
常見元件名稱
小結
參考資料
Chapter02 Grafana──洞察一切資訊的羅盤
Components
Data Source
Explore
Dashboard
Alerting
Concepts
Dashboard 設計的最佳實踐
Lab
小結
參考資料
PART2 Metrics
Chapter03 Metrics 緒論──萬物皆可度量
指標的基礎定義
指標資訊的處理流程
生成
收集
儲存
使用
小結
Chapter04 Prometheus──照亮來時路與前方途的火炬
Components
Prometheus Server
Exporter
Prometheus Client Library
Alerting
Concepts
Scrape Job
Prometheus Web UI Status
Metric Types
PromQL
Lab
Prometheus 與 PromQL 操作練習
Prometheus 與 Exporter
小結
其他補充資料
Chapter05 Monitoring Best Practices──監控的黃金法則
The USE Method
The Four Golden Signals
The RED Method
Lab
小結
參考資料
Chapter06 Long-Term Storage──指標的記憶殿堂
Mimir──收羅萬象的智者
Features
Concepts
Lab
Cortex──指標長期儲存的大師兄
高可用性(High Availability)與 Hash Ring
Lab
Thanos──統御 Prometheus 群集的霸者
Concepts
Lab
小結
參考資料
StatsD Library
StatsD Exporter
Lab
StatsD + Graphite
小結
參考資料
Chapter07 StatsD──捍衛效能的守護神
Concepts
Metrics Type
UDP
StatsD Library
StatsD Exporter
Lab
StatsD + Graphite
小結
參考資料
Chapter08 Zabbix──指標界的沙場老兵
Concepts
Host
Template
Group
Web Scenario
Lab
小結
參考資料
PART3 Logs
Chapter09 Logs 緒論──紀錄的一切都將成為呈堂證供
日誌資訊的處理流程
生成
收集
儲存
使用
小結
Chapter10 Loki──解開日誌空間與時間束縛的法杖
Concepts
Label
LogQL
快還要更快
儲存
Loki Docker Driver
Lab
小結
參考資料
Chapter11 Promtail──Loki 御用 Log 收集器
Concepts
Tail
Service Discovery
Pipeline
Lab
小結
參考資料
Chapter12 Fluent Bit──資料收集界的萬能瑞士刀
Concepts
Event
Config File
Pipeline
Service
Lab
Basic
Container Log with Loki
Container Log with Vivo
小結
參考資料
Chapter13 Vector──速度至上的資料收集界新星
Concepts
Pipeline
Config
Lab
Basic
Container Log with Loki
小結
參考資料
PART4 Traces
Chapter14 Traces 緒論──看系統,一個兩個三個四個,連成線
分散式追蹤發展歷程
Trace 資訊的處理流程
生成
收集
儲存
使用
小結
參考資料
Chapter15 OpenTelemetry SDK──Zero-code Instrumentation 給你一對翅膀
Zero-code Instrumentation
Config
Logging with OpenTelemetry
Python Zero-code Instrumentation
Java Zero-code Instrumentation
Lab
小結
參考資料
Chapter16 Tempo──小孩才做選擇,Trace 我全都要
Concepts
TraceQL
儲存格式
Metrics-generator
Lab
Basic
Fake Traces
小結
參考資料
Chapter17 Jaeger──系統軌跡,無所遁形
Concepts
Architecture
API 選擇
Sampling
Lab
小結
參考資料
Chapter18 OpenTelemetry Collector──依賴反轉,解耦應用程式與儲存後端
Concepts
Deployment
Configuration
Lab
小結
參考資料
PART5 綜合應用
Chapter19 Observability Signal Correlation──使用 Grafana 三劍合一,發揮綜效
Metrics and Logs
Metrics to Traces
Traces and Logs
Traces to Metrics
Lab
小結
參考資料
Chapter20 Span Metrics──OpenTelemetry Collector 的 Trace 鍊金術
Metrics from Traces
Jaeger Service Performance Monitoring
Lab
Basic
Jaeger SPM
小結
參考資料
Chapter21 Grafana Cloud 與 Alloy──Grafana Labs 的野望
Grafana Cloud
Grafana Alloy
Configuration
Metrics
Logs
Traces
To Grafana Cloud
Lab
Grafana Alloy
Grafana Cloud
小結
參考資料
Chapter22 Profiles 與 eBPF──Unlocking The Kernel
Profiles
Grafana Pyroscope
eBPF
Grafana Beyla
Lab
Pyroscope
Beyla
小結
參考資料
Chapter23 Faro──前端的可觀測性
Concepts
Web Vital
Architecture
Log-based Metrics
Usage
Alloy
Faro Web SDK
Faro Web Tracing
Lab
小結
參考資料
Chapter24 In Production 1──準備釋放你的 Observability 原力吧!
成本與效益
網路的複雜性
告警疲勞
小結
Chapter25 In Production 2 ──能力越強責任越大,別成為單點故障
可擴展性 Scalability
Grafana Stack
Kafka
高可用性 High Availability
Lab
Loki Scalable Monolithic
Jaeger with Kafka
小結
參考資料
Chapter26 In Production 3──如果資料要加上一個期限,我希望是一萬年
儲存哪些
Metrics
Traces
儲存多久
怎麼儲存
Lab
Loki Tempo Mimir with MinIO
OpenTelemetry Collector Filter
小結
Chapter27 總結──可觀測性的未來
可觀測性開源專案的未來──CNCF Projects
可觀測性資訊的未來
可觀測性技術的未來
可觀測性商業的未來
結語
參考資料
作者介紹
作者簡介
劉義瑋 (Blueswen)
目前擔任 DevOps Engineer,樂於分享與交流技術。
擔任開發人員時前端、後端、ML 服務都略有接觸,有感於問題排除與監控的不足,於是開始研究與推廣可觀測性。
個人網站:blueswen.github.io/
【演講經歷】
PyCon Taiwan 2024 - 全方位強化Python服務可觀測性:以 FastAPI 和 Grafana Stack 為例
MWC 2023 - 從零開始打造可觀測性平台
DevOpsDays Taipei 2023 - 可觀測性實踐
iThome 鐵人賽獲獎
2023 Cloud Native 組冠軍《時光之鏡:透視過去、現在與未來的 Observability》