特價 -20%

異形般強大的監控系統:Prometheus掌控主機、VM、容器及K8S DM2005

NT$544

出版商 深智數位股份有限公司
出版日期 2020-2-20
語言 繁體中文
頁數 416
ISBN 9789865501167
Add to Wishlist
貨號: LV3229-1-3-1-1-1-1-2-1-2-1-2-1-2-1-1-1-1 Categories: ,

描述

內容簡介

伴隨著容器相關技術的興起,Prometheus 正逐步成為容器監控的標準,並且對於傳統應用和裝置也有很好的相容性。

全書共分為4 篇12 章,分別說明Prometheus 原理、在傳統應用監控和Kubernetes 監控中的應用,以及原始程式和擴充。

Prometheus 由Go 語言撰寫而成,採用Pull 方式取得監控資訊,並提供了多維度的資料模型和靈活的查詢介面。Prometheus 不僅可以透過靜態檔案設定監控物件,還支援自動發現機制,能夠透過Kubernetes、Consul、DNS 等多種方式動態取得監控物件。在資料獲取方面,借助Go 語言的高平行處理特性,單機Prometheus 可以擷取數百個節點的監控資料;在資料儲存方面,隨著本機時序資料庫的不斷最佳化,單機Prometheus 每秒可以擷取一千萬個指標,如果需要儲存大量的歷史監控資料,則還支援遠端儲存。

全書重點涵蓋:

►最強大的系控監控平台,可監控叢集、伺服器、虛擬、容器

►完整的資源管理、包括網路、儲存、CPU、記憶體、作業系統

►不需要自行組合Logstash/ElasticSearch/Kibana,單一完整監控系統

►最重要的就是針對Kubernetes的完整監控

►包括Kubernetes容器、服務自動發現等

►針對Kubernetes的物件、如cAdvisor, apiserver, kube-state-metrics

►Kubernetes叢集監控,Granfna的使用

►完整Prometheus的原始碼分析及改裝

本書特色

◎ 系統講解Prometheus的原理、應用、原始程式和擴充

◎ 圖文並茂、由淺入深、完整解說

適合讀者群:運維工程師、軟體架構師、研發工程師,及相關IT產業工作者參考和閱讀。

前言

無論是傳統資料中心還是雲端資料中心,無論是實體機、虛擬機器還是容器,整個資料中心的建設都繞不開監控這個話題。優秀的監控系統不僅需要相容各種裝置和環境,還需要具備高性能、高可靠及易運行維護等特性,Prometheus 正是其中之一。伴隨著容器相關技術的興起,Prometheus 正逐步成為容器監控的標準,並且對於傳統應用和裝置也有很好的相容性。

Prometheus 由Go 語言撰寫而成,採用Pull 方式取得監控資訊,並提供了多維度的資料模型和靈活的查詢介面。Prometheus 不僅可以透過靜態檔案設定監控物件,還支援自動發現機制,能夠透過Kubernetes、Consul、DNS 等多種方式動態取得監控物件。在資料獲取方面,借助Go 語言的高平行處理特性,單機Prometheus 可以擷取數百個節點的監控資料;在資料儲存方面,隨著本機時序資料庫的不斷最佳化,單機Prometheus 每秒可以擷取一千萬個指標,如果需要儲存大量的歷史監控資料,則還支援遠端儲存。

本書共分為4 篇12 章,分別說明Prometheus 原理、在傳統應用監控和Kubernetes 監控中的應用,以及原始程式和擴充,實際內容如下所述。

■ 第 1 章主要介紹監控系統的概念和架構設計,並剖析監控系統的內部結構,從程式執行的角度說明基礎資源監控、中介軟體監控、應用程式監控和記錄檔監控,並將多種監控系統的優缺點進行比較,指出Prometheus 獨特的優勢。

■ 第 2 章首先介紹 Prometheus 的相關概念,包含資料指標的定義和分類;然後介紹Prometheus 的整體架構和工作原理,包含資料獲取、資料處理、資料儲存、資料查詢及警告;最後說明Prometheus 聯邦及Thanos 的原理。

■ 第 3 章主要介紹 Prometheus 資料儲存。首先從歷史演進、設計理念、實現原理等多個方面詳細介紹Prometheus 的本機時序資料庫(Prometheus TSDB);然後介紹Prometheus 遠端儲存的使用方式和實現原理,並以InfluxDB 為例,詳解Adapter 的工作原理。

■ 第 4 章主要介紹 Prometheus exporter 的背景、使用方式和工作原理。首先介紹幾個常用的exporter,包含Node exporter、Redis exporter、MySQL server exporter 的內部建置; 然後從原始程式角度解析exporter,並撰寫一個簡單的exporter。

■ 第 5 章主要介紹 Kubernetes 叢集的常用監控方案,包含 Heapster、kube-state-metrics、metrics-server, 並介紹將Prometheus 應用於Kubernetes 叢集的優勢。

■ 第 6 章主要介紹 Prometheus 在 Kubernetes 叢集中的安裝和設定。首先介紹如何用正常的手動方式在Kubernetes 叢集中安裝Prometheus;然後介紹Kubernetes 中的另一種更進階的監控方案Prometheus Operator的安裝和使用,包含增加自訂監控項、增加自訂警告、自動發現設定、資料持久化設定等。

■ 第 7 章主要介紹 Prometheus 監控 Kubernetes 叢集服務的設定方法。首先介紹手動靜態設定方法,然後介紹如何使用Prometheus 中的服務發現機制來自動發現Kubernetes 中的Service。

■ 第 8 章主要介紹 Prometheus 在 Kubernetes 叢集中的一些常用監控物件,包含cAdvisor 監控、apiserver 監控、Service 監控、kube-state-metrics 監控,並介紹如何使用node-exporter 監控Kubernetes 叢集中的節點。

■ 第 9 章主要介紹 Prometheus 監控 Kubernetes 叢集的資料展示。首先介紹在Kubernetes 叢集中安裝Grafana 的方法;然後介紹如何將Grafana設定Prometheus 資料來源,以及一些常用的Dashboard 設定方法;並介紹Grafana 針對Kubernetes 叢集監控的常用外掛程式grafanakuberentes-app 的安裝和使用;最後介紹如何使用Grafana 警告,包含郵件警告、釘釘警告等。

■ 第 10 章主要介紹 Prometheus 監控 Kubernetes 叢集的警告功能。首先介紹如何在Kubernetes 叢集中安裝Prometheus 的警告模組AlertManager;然後介紹如何透過ConfigMap 資源物件設定警告規則;最後撰寫一個 webhook 接收器來處理AlertManager 警告資料。

■ 第 11 章主要對 Prometheus 原始程式進行分析,有關 Prometheus 資料獲取、規則管理、通知管理、儲存管理和查詢引擎方面的內容,並以延伸開發實戰的方式加深讀者對Prometheus 程式結構的了解。

■ 第 12 章主要對 AlertManager 原始程式進行分析,有關接收警告、警告排程、警告比對、警告處理和警告通知方面的內容,並結合設定檔中的設定項目,帶領讀者從原始程式角度了解警告分組、警告頻次控制、警告路由、警告抑制和警告預設功能的實現。

 致謝

本書作者分別來自宜信容器雲團隊(陳曉宇)、「k8s 技術圈」社群(楊川胡)及深信服安全感知團隊(陳嘯),感謝這些團隊及社群對本書作者的支援和鼓勵。

感謝作者家人對作者的支援和鼓勵,來自家人的愛,讓我們時刻擁有信心與力量!

目錄

前言

第1篇 Prometheus 原理

01監控

1.1 監控系統概覽

1.2 基礎資源監控

1.3 中介軟體監控

1.4 應用程式監控(APM)

1.5 記錄檔監控

1.6 監控系統實現

1.7 監控系統的發展趨勢

1.8 本書主角-- Prometheus

1.9 其他開放原始碼監控工具

1.10 監控系統的比較

02深入Prometheus 設計

2.1指標

2.2 資料獲取

2.3 資料處理

2.4 資料儲存

2.5 資料查詢

2.6 警告

2.7 叢集

2.8 Prometheus 並非監控銀彈

03資料儲存

3.1 儲存介面

3.2 本機存放區

3.3 遠端儲存

3.4 儲存匯聚

第2篇 Prometheus 在傳統應用監控中的應用

04 Prometheus exporter 詳解

4.1 服務分類

4.2 資料標準

4.3 exporter 簡介

4.4 基於Go 用戶端撰寫一個exporter

4.5 Node exporter 解析

4.6 Redis exporter 解析

4.7 MySQL server exporter 解析

4.8 深入探索Go 用戶端

第3篇 Prometheus 在Kubernetes 監控中的應用

05 Kubernetes 監控方案

5.1 Heapster

5.2 kube-state-metrics

5.3 metrics-server

5.4 Prometheus

06 Prometheus 的安裝設定

6.1 手動安裝Prometheus

6.2 安裝Prometheus Operator

6.3 在Prometheus Operator 中增加自訂的監控

6.4 在Prometheus Operator 中增加自訂警告

6.5 Prometheus Operator 的進階設定

07 Prometheus 監控Kubernetes 之服務設定

7.1 靜態設定

7.2 服務發現設定

08 Prometheus 監控Kubernetes 之監控物件

8.1 容器監控

8.2 apiserver 監控

8.3 Service 監控

8.4 kube-state-metrics 監控

8.5 主機監控

09 Prometheus 監控Kubernetes 之資料展現

9.1 在Kubernetes 叢集中安裝Grafana

9.2 設定Grafana

9.3 外掛程式

9.4 Grafana 警告

10 Prometheus 監控Kubernetes 之警告

10.1 AlertManager 簡介

10.2 安裝AlertManager

10.3 警告規則

10.4 webhook 接收器

第4 Prometheus 原始程式與擴充

11 Prometheus 服務元件

11.1 Prometheus 原始程式的目錄結構

11.2 原生Prometheus 的不足

11.3 原始程式改造-- 更改時區

11.4 原始程式改造-- 用blog4go 記錄系統記錄檔

11.5 Prometheus 的初始化

11.6 原始程式改造-- MySQL 規則儲存

11.7 資料獲取

11.8 通知管理

11.9 規則管理

11.10 原始程式改造-- 不重複scrape 及附帶時間戳記正則運算

12 AlertManager 服務元件

12.1 接收警告

12.2 警告排程

12.3 警告比對

12.4 警告處

12.5 警告通知

額外資訊

出版商

深智數位股份有限公司

出版日期

2020-2-20

語言

繁體中文

頁數

416

ISBN

9789865501167