作 者:朱政科 著
定 價:89
出 版 社:機械工業出版社
出版日期:2020年11月01日
頁 數:384
裝 幀:平裝
ISBN:9787111667834
這是一本指導初中級讀者輕松搭建Prometheus監控繫統並在實際工作中迅速用起來,以時刻掌握私有雲、公有雲、混合雲等數據中心以及其上應用整體運行情況的Prometheus“百科全書”。從內容層面來說,書中不僅從繫統機構和工作原理兩個維度對Prometheus進行了深度剖析,還給出了大量實戰案例和常見問題解決方案,同時以附錄的形式給出了Prometheus端口列表、PromQL基礎語法速查表、自監控指標等常用內容集結;從讀者層面來說,本書不僅針對運維人員給出了Prometheus對接各種雲原生應等
●贊譽
前言
第1章 監控之美 1
1.1 監控:把握應用的脈搏 2
1.2 監控架構分類 6
1.3 MDD思想:從指標到洞察力 10
1.3.1 MDD理念綜述 10
1.3.2 指導實踐的3大監控方法論 12
1.4 監控繫統選型分析及誤區探討 13
1.4.1 黑盒監控和白盒監控 14
1.4.2 監控檢查的兩種模式—拉取和推送 14
1.4.3 5種常見的監控繫統 15
1.4.4 監控繫統的選型分析及誤區探討 24
1.5 本章小結 32
第2章 Prometheus入門 33
2.1 Prometheus發展簡史 34
2.2 Prometheus的主要特點 35
2.3 Prometheus架構剖析 37
2.4 Prometheus的3大局限性 43
2.5 快速安裝並啟動Prometheus 43
2.6 本章小結 49
第3章 Spring Boot可視化監控實戰 50
3.1 用Micrometer儀表化JVM應用 50
3.2 在Spring Boot 2.x中集成Prometheus的方法 53
3.2.1 引入Maven依賴 54
3.2.2 application.properties配置 56
3.2.3 通過MeterBinder接口采集和注冊指標 57
3.2.4 以埋點的方式更新指標數據 58
3.2.5 效果展示 59
3.3 針對Spring Boot 2.x采集並可視化相關數據 61
3.4 第三方專業可視化工具—Grafana 62
3.5 Grafana高級模板 67
3.6 郵件告警的生成與擴展 77
3.6.1 通過Alertmanager生成郵件告警 77
3.6.2 郵件告警擴展:cc和bcc 79
3.7 構建釘釘告警繫統 80
3.7.1 安裝MacOS Docker 80
3.7.2 安裝Docker鏡像 81
3.7.3 釘釘接入設置 83
3.7.4 釘釘告警功能驗證 84
3.8 本章小結 86
第4章 PromQL讓數據會說話 87
4.1 初識PromQL 87
4.1.1 PromQL的4種數據類型 89
4.1.2 時間序列 90
4.1.3 指標 91
4.2 PromQL中的4大選擇器 94
4.2.1 匹配器 95
4.2.2 瞬時向量選擇器 98
4.2.3 區間向量選擇器 99
4.2.4 偏移量修改器 100
4.3 Prometheus的4大指標類型 101
4.3.1 計數器 101
4.3.2 儀表盤 103
4.3.3 直方圖 104
4.3.4 摘要 107
4.4 13種聚合操作 109
4.5 Prometheus的操作符 117
4.5.1 算術運算符 118
4.5.2 集合/邏輯運算符 119
4.5.3 比較運算符 120
4.5.4 優先級 122
4.6 向量匹配 122
4.6.1 一對一匹配 122
4.6.2 一對多和多對一匹配 123
4.6.3 多對多匹配 124
4.7 本章小結 124
第5章 PromQL高級實戰 125
5.1 Prometheus內置函數 125
5.1.1 動態標簽函數 126
5.1.2 數學運算函數 128
5.1.3 類型轉換函數 133
5.1.4 時間和日期函數 133
5.1.5 多對多邏輯運算符函數 137
5.1.6 排序函數 138
5.1.7 Counter函數 139
5.1.8 Gauge函數 141
5.1.9 Histogram函數 144
5.1.10 時間聚合函數 145
5.2 HTTP API 146
5.2.1 API響應格式 148
5.2.2 表達式查詢 149
5.2數據管理 150
5.2.4 其他拓展 151
5.3 兩種可定期執行的規則 155
5.3.1 記錄規則 155
5.3.2 告警規則 159
5.4 指標的抓取與存儲 160
5.4.1 用relabel_configs抓取指標 160
5.4.2 用metric_relabel_configs存儲指標 163
5.5 通過調優解決PromQL耗盡資源問題 166
5.6 本章小結 166
第6章 Prometheus告警機制深度解析 167
6.1 Alertmanager架構解析 167
6.2 AMTool的安裝與用法 169
6.3 配置文件的編寫與解讀 171
6.4 告警規則的定義 177
6.5 關於告警的高級應用與問題處理 180
6.5.1 Prometheus告警失靈 180
6.5.2 出現告警轟炸的問題 182
6.6 構建高可用告警集群 184
6.7 本章小結 186
第7章 Prometheus獨孤九劍:通過定制Exporter監控一切 187
7.1 Exporter概述 187
7.2 Exporter的數據規範 189
7.3 Exporter數據采集方式 191
7.4 一個最簡單的Exporter示例 192
7.5 自己動手編寫一個Exporter 195
7.6 高質量Exporter的編寫原則與方法 198
7.6.1 分配合理的端口號 198
7.6.2 設計落地頁 201
7.6.3 將軟件版本信息提供給Prometheus的正確方法 201
7.6.4 推薦指標的梳理 202
7.6.5 編寫高質量Exporter的其他注意事項 209
7.7 Node Exporter源碼解析 210
7.8 Exporter高級應用:開啟TSL連接和Basic Auth認證 214
7.8.1 準備證書 214
7.8.2 支持TLS的配置方法 214
7.8.3 支持Basic Auth的配置方法 215
7.9 本章小結 216
第8章 Spring Boot高級監控實戰 217
8.1 Controller監控實戰 217
8.2 業務代碼監控實戰 218
8.3 通過注解進行監控的設置與實戰 221
8.4 Dubbo監控實戰 223
8.5 SPI機制原理解析 225
8.6 SPI高級實戰:基於Dubbo的分布式日志鏈路TraceID追蹤 228
8.7 集成Spring Boot時的常見問題及其解決方案 231
8.8 關於Micrometer的兩個常見問題及其解決方案 234
8.8.1 極大值BUG問題 235
8.8.2 Actuator內存溢出問題 237
8.9 micrometer-spring-legacy源碼解析 242
8.9.1 spring.factories 244
8.9.2 CompositeMeterRegistryAuto-Configuration 246
8.9.3 XX-MeterRegistry的注冊 248
8.9.4 WebMvcMetricsFilter過濾器 249
8.9.5 其他 250
8.10 本章小結 251
第9章 Prometheus集群實戰 252
9.1 校時 252
9.2 Prometheus的3種常見HA架構
方案 255
9.2.1 簡單HA 256
9.2.2 簡單HA+遠程存儲 256
9.2.3 簡單HA+遠程存儲+聯邦集群 257
9.2.4 聯邦集群配置方式 261
9.2.5 功能分區配置方式 262
9.2.6 K8S單點故障引發的POD漂移問題 263
9.3 Prometheus集群架構采集優化方案 263
9.4 在企業中從零推廣Prometheus架構 266
9.4.1 研發團隊 266
9.4.2 運維團隊 267
9.4.3 借助K8S一起推進上線 268
9.5 搭建基於M3DB的簡單HA+遠程存儲Prometheus K8S集群 268
9.5.1 架構說明 268
9.5.2 K8S內部Prometheus 270
9.5.3 K8S外部Prometheus 270
9.5.4 M3DB 276
9.6 多租戶、可橫向擴展的Prometheus即服務—Cortex 277
9.7 本章小結 280
第10章 Prometheus存儲原理與問題分析 281
10.1 本地存儲文件結構解析 282
10.2 存儲原理解析 286
10.3 存儲配置方法 287
10.4 本地存儲容量規劃原則與方法 290
10.5 RAM容量規劃原則與方法 291
10.6 本地存儲及時性和時序性問題分析 293
10.7 本章小結 294
第11章 Prometheus其他相關技術分析與實戰 296
11.1 Thanos架構與監控實戰 296
11.1.1 Thanos架構解析 297
11.1.2 Thanos在Prometheus監控中的作用與實戰 299
11.1.3 Thanos存在的問題 302
11.2 M3DB技術詳解 303
11.3 Loki的特性、架構與應用 306
11.3.1 Loki特性 307
11.3.2 Loki架構簡介 308
11.3.3 Loki使用方法 310
11.4 ELK的5種主流架構及其優劣分析 311
11.4.1 為什麼要用ELK 312
11.4.2 基礎架構 313
11.4.3 改良架構 314
11.4.4 二次改良架構 315
11.4.5 基於Tribe Node概念的架構 316
11.4.6 帶有冷熱分離功能的架構 316
11.5 Fluentd和Fluent Bit項目簡介 317
11.6 Operator模式現狀與未來展望 319
11.7 關於靈活運用Prometheus的幾點建議 321
11.8 本章小結 323
附錄A Prometheus相關端口列表 324
附錄B PromQL速查手冊 350
附錄C Prometheus 2.x(從2.0.0到2.20.0)的重大版本變遷 354
附錄D Prometheus自監控指標 363
附錄E SLA服務可用性基礎參考指標 366
這是一部從運維和開發雙重視角全面講解Prometheus的著作,來自華為、阿裡、騰訊、京東、網易等一線IT企業,以及Apache、雲原生社區等的多位資深專家給予高度評價。本書不僅能指導讀者快速搭建一個Prometheus監控繫統並將其應用到實踐中,還通過私有雲、公有雲、混合雲環境下的大量案例證明了一個事實——Prometheus可監控一切,它是一種通用的監控繫統解決方案。 首先,本書從繫統架構和工作原理兩個維度對Prometheus進行了深度剖析,讓讀者能深入了解Prometheus的核心功能及其使用方法;其次,針對運維人員給出了Prometheus對接各種雲原生應用並實現事前預警、事中報警、事後提供翔實數據的方法;最後,針對開發人員給出了Prometheus主要組件的源碼分析以及部分功能的二次開發實現。此外,結合大量雲原生應用場景,給出了大量實戰案例和常見問題的解決方案。本書共分等