總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 自動化技術及設備
 
 
 
 
深入淺出Prometheus:原理•應用•源碼與拓展詳解
 叢書名稱: 博文視點雲原生精品叢書
 作  者: 陳曉宇/楊川胡/陳嘯
 出版單位: 電子工業
 出版日期: 2019.04
 進貨日期: 2019/9/3
 ISBN: 9787121360954
 開  本: 16 開    
 定  價: 668
 售  價: 534
  會 員 價: 490
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

《深入淺出Prometheus:原理、應用、源碼與拓展詳解》還未出版就受到了很多人的關注,時不時被詢問出版進度,熱度至此,不火怎行?

Prometheus既適用於容器監控,也適用于傳統應用監控,更是從CNCF第2個畢業的開源專案;眾多企業或者公司都在使用它,360°圍觀,它都註定是個明星項目。

現在還沒有一本Prometheus(普羅米修士)書問世,很多人都有很多關於Prometheus的問題想解決。

《深入淺出Prometheus:原理、應用、源碼與拓展詳解》囊括Prometheus的原理、傳統應用監控、Kubernetes監控、源碼及拓展方法,是一本努力做到全面,努力幫助讀者從瞭解、入門到實戰,再到源碼及優化的很用心的書,希望大家喜歡!

歡迎加編輯威信zgx228,或提問題,或與專家即時討論,我們會盡力給予幫助,加油!


內容簡介:

Prometheus是由SoundCloud開源的監控系統,是Google BorgMon監控系統的開源版本。伴隨著容器及Kubernetes技術的興起,Prometheus越來越受到大家的關注。《深入淺出Prometheus:原理、應用、源碼與拓展詳解》系統講解了Prometheus的原理、應用、源碼和拓展,圖文並茂、講解全面。原理篇主要介紹了Prometheus的整體架構及與其他監控系統的對比和優勢,讓讀者從整體上把握Prometheus的相關概念。應用篇從傳統應用監控和Kubernetes監控兩方面講解Prometheus的安裝、配置及優秀實踐,著重介紹Redis、MySQL server等常用中介軟體監控,並結合Kubernetes,詳細講解如何通過Prometheus監控容器集群,還對每個操作都進行了非常詳盡的記錄。源碼與拓展篇從整體到局部詳細剖析Prometheus的源碼架構,並且結合實際生產環境二次定制Prometheus的部分功能,可加深讀者對Prometheus的理解,也能很好地幫助讀者提升Prometheus開發技能。

《深入淺出Prometheus:原理、應用、源碼與拓展詳解》適合運維工程師、軟體架構師、研發工程師及其他資深IT人士參考和閱讀。


作者簡介:

陳曉宇

  宜信容器雲架構師,負責宜信PaaS平臺的設計和推廣,幫助企業從傳統應用遷移至雲原生應用。在雲計算相關行業具有豐富的研發與架構經驗,並積極參與OpenStack、Kubernetes、Harbor等社區的開源項目。


  楊川胡

  “k8s技術圈”社區維護者,全棧工程師,具備豐富的雲計算、上億活躍用戶應用後端實踐經驗,擅長Python、Golang、Docker、Kubernetes等技術,曾在小米擔任資深研發工程師。個人GitHub頁面:https://github.com/cnych。


  陳嘯

  Prometheus二次開發深度使用者,專注於分散式搜索、流式計算、集群監控、大資料安全領域。現就職於深信服科技股份有限公司安全感知團隊,負責資料平臺基礎架構研發工作。


圖書目錄:

第1篇 Prometheus原理

第1章 監控 2

1.1 監控系統概覽 2

1.2 基礎資源監控 4

1.2.1 網路監控 4

1.2.2 存儲監控 6

1.2.3 伺服器監控 7

1.3 中介軟體監控 9

1.4 應用程式監控(APM) 10

1.5 日誌監控 13

1.6 監控系統實現 14

1.6.1 總體架構 14

1.6.2 指標採集 15

1.6.3 資料處理 18

1.7 監控系統的發展趨勢 21

1.8 本書主角——Prometheus 22

1.9 其他開源監控工具 26

1.9.1 Zabbix 26

1.9.2 Nagios 30

1.9.3 Open-Falcon 31

1.10 監控系統的對比 33

第2章 深入Prometheus設計 35

2.1 指標 35

2.1.1 Prometheus的指標定義 35

2.1.2 Prometheus的指標分類 36

2.1.3 Prometheus資料樣本 40

2.2 資料獲取 40

2.2.1 服務發現 42

2.2.2 資料獲取 44

2.3 資料處理 45

2.3.1 重新定義標籤 45

2.3.2 標籤篩選 46

2.4 資料存儲 46

2.4.1 本機存放區 47

2.4.2 遠端存放 50

2.5 資料查詢 50

2.6 告警 52

2.7 集群 54

2.7.1 聯邦 54

2.7.2 Thanos 55

2.8 Prometheus並非監控銀彈 59

第3章 資料存儲 60

3.1 存儲介面 60

3.2 本機存放區 62

3.2.1 歷史 63

3.2.2 核心概念 63

3.2.3 相關參數 69

3.2.4 本機存放區介面 70

3.3 遠端存儲 71

3.3.1 總體架構 71

3.3.2 遠端介面規範 71

3.3.3 相關參數 74

3.4 存儲彙聚 77


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

第4章 Prometheus exporter詳解 80

4.1 服務分類 80

4.2 資料規範 81

4.3 exporter簡介 82

4.4 基於Go用戶端編寫一個exporter 84

4.5 Node exporter解析 87

4.6 Redis exporter解析 90

4.6.1 Redis exporter的應用 90

4.6.2 Redis exporter的工作原理 91

4.7 MySQL server exporter解析 93

4.7.1 MySQL server exporter的應用 93

4.7.2 MySQL server exporter的工作原理 94

4.8 深入探索Go用戶端 96


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

第5章 Kubernetes監控方案 100

5.1 Heapster 101

5.2 kube-state-metrics 104

5.3 metrics-server 105

5.4 Prometheus 105

第6章 Prometheus的安裝配置 107

6.1 手動安裝Prometheus 107

6.2 安裝Prometheus Operator 114

6.3 在Prometheus Operator中添加自訂的監控項 125

6.4 在Prometheus Operator中添加自定義告警 132

6.4.1 配置PrometheusRule 133

6.4.2 配置告警 138

6.5 Prometheus Operator的高級配置 144

6.5.1 自動發現配置 145

6.5.2 資料持久化配置 152

第7章 Prometheus監控Kubernetes之服務配置 159

7.1 靜態配置 159

7.2 服務發現配置 164

第8章 Prometheus監控Kubernetes之監控對象 171

8.1 容器監控 172

8.1.1 Prometheus的配置方式 172

8.1.2 容器指標 174

8.2 apiserver監控 177

8.2.1 配置方式 177

8.2.2 apiserver指標 181

8.3 Service監控 182

8.4 kube-state-metrics監控 185

8.5 主機監控 186

第9章 Prometheus監控Kubernetes之資料展現 191

9.1 在Kubernetes集群中安裝Grafana 191

9.2 配置Grafana 200

9.2.1 資料來源 200

9.2.2 Dashboard 201

9.3 外掛程式 207

9.4 Grafana告警 212

9.4.1 郵件告警 212

9.4.2 釘釘告警 214

9.4.3 Grafana告警配置 215

第10章 Prometheus監控Kubernetes之告警 219

10.1 AlertManager簡介 219

10.2 安裝AlertManager 220

10.3 告警規則 225

10.4 webhook接收器 231


第4篇 Prometheus源碼與拓展

第11章 Prometheus服務元件 240

11.1 Prometheus源碼的目錄結構 240

11.2 原生Prometheus的不足 242

11.3 源碼改造——更改時區 243

11.3.1 源碼修改 243

11.3.2 編譯 244

11.3.3 功能驗證 244

11.4 源碼改造——用blog4go記錄系統日誌 245

11.4.1 引入blog4go庫 245

11.4.2 設置日誌回呼函數 246

11.4.3 開機記錄記錄服務 246

11.4.4 配置config.xml 247

11.4.5 編譯 248

11.4.6 驗證服務 248

11.5 Prometheus的初始化 248

11.5.1 Prometheus性能調試 249

11.5.2 Context介紹 249

11.5.3 初始化服務元件 251

11.5.4 元件配置管理 257

11.5.5 啟動服務元件 258

11.6 源碼改造——MySQL規則存儲 262

11.6.1 規則載入流程 262

11.6.2 表結構設計 262

11.6.3 規則載入模組 264

11.6.4 loadGroups改造 267

11.6.5 初始化 269

11.6.6 功能驗證 269

11.7 資料獲取 270

11.7.1 服務發現 270

11.7.2 指標採集 277

11.7.3 存儲指標 289

11.8 通知管理 297

11.8.1 啟動notifier服務 298

11.8.2 註冊notifier 308

11.9 規則管理 311

11.9.1 規則調度 312

11.9.2 查詢引擎 321

11.10 源碼改造——不重複scrape及自帶時間戳記規則運算 327

11.10.1 實現思路 328

11.10.2 不重複scrape 328

11.10.3 自帶時間戳記規則運算 331

11.10.4 功能驗證 343

第12章 AlertManager服務元件 348

12.1 接收告警 348

12.2 告警調度 351

12.3 告警匹配 356

12.4 告警處理 357

12.5 告警通知 362


章節試讀:

自 序

  無論是傳統資料中心還是雲資料中心,無論是物理機、虛擬機器還是容器,整個資料中心的建設都繞不開監控這個話題。優秀的監控系統不僅需要相容各種設備和環境,還需要具備高性能、高可靠及易運維等特性,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集群監控的一個常用外掛程式grafana-kuberentes-app的安裝和使用;最後介紹如何使用Grafana告警,包括郵件告警、釘釘告警等。

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

  第11章主要對Prometheus源碼進行分析,涉及Prometheus資料獲取、規則管理、通知管理、存儲管理和查詢引擎方面的內容,並以二次開發實戰的方式加深讀者對Prometheus程式結構的理解。

  第12章主要對AlertManager源碼進行分析,涉及接收告警、告警調度、告警匹配、告警處理和告警通知方面的內容,並結合設定檔中的配置項,帶領讀者從源碼角度理解告警分組、告警頻次控制、告警路由、告警抑制和告警靜默功能的實現。

  致謝

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

  感謝張國霞編輯在成書過程中對作者的協助和鞭策。

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

--本書作者


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。