Prometheus云原生監(jiān)控:運維與開發(fā)實戰(zhàn)
定 價:89 元
叢書名:云計算與虛擬化技術(shù)叢書
- 作者:朱政科
- 出版時間:2020/11/1
- ISBN:9787111667834
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP277.2
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書主要圍繞當前業(yè)界*流行的監(jiān)控系統(tǒng)Prometheus展開,除了幫助讀者快速了解Prometheus的概念、用途、環(huán)境搭建等系統(tǒng)性、宏觀的認識,更多的讓讀者感受到Prometheus獨孤九劍破眾多技術(shù)壁壘的精彩。支持監(jiān)控微服務、系統(tǒng)級監(jiān)控、數(shù)據(jù)庫監(jiān)控、中間件監(jiān)控、大數(shù)據(jù)監(jiān)控等。
第1章主要介紹監(jiān)控系統(tǒng)的相關(guān)概念。第2章介紹Prometheus的相關(guān)概念。第3章介紹SpringBoot如何集成Prometheus的實戰(zhàn)案例。第4章介紹Prometheus中PromQL的相關(guān)概念。第5章繼續(xù)介紹PromQL的更多高級用法。第6章介紹Prometheus的告警模塊Alertmanager。第7章介紹Prometheus的exporter相關(guān)概念。第8章介紹Prometheus集成SpringBoot實戰(zhàn)場景中的高級話題。第9章介紹Prometheus的集群實戰(zhàn)。第10章介紹Prometheus的存儲原理。第11章介紹Prometheus的其他相關(guān)技術(shù)。
贊譽
前言
第1章 監(jiān)控之美 1
1.1 監(jiān)控:把握應用的脈搏 2
1.2 監(jiān)控架構(gòu)分類 6
1.3 MDD思想:從指標到洞察力 10
1.3.1 MDD理念綜述 10
1.3.2 指導實踐的3大監(jiān)控方法論 12
1.4 監(jiān)控系統(tǒng)選型分析及誤區(qū)探討 13
1.4.1 黑盒監(jiān)控和白盒監(jiān)控 14
1.4.2 監(jiān)控檢查的兩種模式—拉取和推送 14
1.4.3 5種常見的監(jiān)控系統(tǒng) 15
1.4.4 監(jiān)控系統(tǒng)的選型分析及誤區(qū)探討 24
1.5 本章小結(jié) 32
第2章 Prometheus入門 33
2.1 Prometheus發(fā)展簡史 34
2.2 Prometheus的主要特點 35
2.3 Prometheus架構(gòu)剖析 37
2.4 Prometheus的3大局限性 43
2.5 快速安裝并啟動Prometheus 43
2.6 本章小結(jié) 49
第3章 Spring Boot可視化監(jiān)控實戰(zhàn) 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 以埋點的方式更新指標數(shù)據(jù) 58
3.2.5 效果展示 59
3.3 針對Spring Boot 2.x采集并可視化相關(guān)數(shù)據(jù) 61
3.4 第三方專業(yè)可視化工具—Grafana 62
3.5 Grafana高級模板 67
3.6 郵件告警的生成與擴展 77
3.6.1 通過Alertmanager生成郵件告警 77
3.6.2 郵件告警擴展:cc和bcc 79
3.7 構(gòu)建釘釘告警系統(tǒng) 80
3.7.1 安裝MacOS Docker 80
3.7.2 安裝Docker鏡像 81
3.7.3 釘釘接入設置 83
3.7.4 釘釘告警功能驗證 84
3.8 本章小結(jié) 86
第4章 PromQL讓數(shù)據(jù)會說話 87
4.1 初識PromQL 87
4.1.1 PromQL的4種數(shù)據(jù)類型 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 區(qū)間向量選擇器 99
4.2.4 偏移量修改器 100
4.3 Prometheus的4大指標類型 101
4.3.1 計數(shù)器 101
4.3.2 儀表盤 103
4.3.3 直方圖 104
4.3.4 摘要 107
4.4 13種聚合操作 109
4.5 Prometheus的3種二元操作符 117
4.5.1 算術(shù)運算符 118
4.5.2 集合/邏輯運算符 119
4.5.3 比較運算符 120
4.5.4 優(yōu)先級 122
4.6 向量匹配 122
4.6.1 一對一匹配 122
4.6.2 一對多和多對一匹配 123
4.6.3 多對多匹配 124
4.7 本章小結(jié) 124
第5章 PromQL高級實戰(zhàn) 125
5.1 Prometheus內(nèi)置函數(shù) 125
5.1.1 動態(tài)標簽函數(shù) 126
5.1.2 數(shù)學運算函數(shù) 128
5.1.3 類型轉(zhuǎn)換函數(shù) 133
5.1.4 時間和日期函數(shù) 133
5.1.5 多對多邏輯運算符函數(shù) 137
5.1.6 排序函數(shù) 138
5.1.7 Counter函數(shù) 139
5.1.8 Gauge函數(shù) 141
5.1.9 Histogram函數(shù) 144
5.1.10 時間聚合函數(shù) 145
5.2 HTTP API 146
5.2.1 API響應格式 148
5.2.2 表達式查詢 149
5.2.3 元數(shù)據(jù)管理 150
5.2.4 其他拓展 151
5.3 兩種可定期執(zhí)行的規(guī)則 155
5.3.1 記錄規(guī)則 155
5.3.2 告警規(guī)則 159
5.4 指標的抓取與存儲 160
5.4.1 用relabel_conf?igs抓取指標 160
5.4.2 用metric_relabel_conf?igs存儲指標 163
5.5 通過調(diào)優(yōu)解決PromQL耗盡資源問題 166
5.6 本章小結(jié) 166
第6章 Prometheus告警機制深度解析 167
6.1 Alertmanager架構(gòu)解析 167
6.2 AMTool的安裝與用法 169
6.3 配置文件的編寫與解讀 171
6.4 告警規(guī)則的定義 177
6.5 關(guān)于告警的高級應用與問題處理 180
6.5.1 Prometheus告警失靈 180
6.5.2 出現(xiàn)告警轟炸的問題 182
6.6 構(gòu)建高可用告警集群 184
6.7 本章小結(jié) 186
第7章 Prometheus獨孤九劍:通過定制Exporter監(jiān)控一切 187
7.1 Exporter概述 187
7.2 Exporter的數(shù)據(jù)規(guī)范 189
7.3 Exporter數(shù)據(jù)采集方式 191
7.4 一個最簡單的Exporter示例 192
7.5 自己動手編寫一個Exporter 195
7.6 高質(zhì)量Exporter的編寫原則與方法 198
7.6.1 分配合理的端口號 198
7.6.2 設計落地頁 201
7.6.3 將軟件版本信息提供給Prometheus的正確方法 201
7.6.4 必備指標的梳理 202
7.6.5 編寫高質(zhì)量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 本章小結(jié) 216
第8章 Spring Boot高級監(jiān)控實戰(zhàn) 217
8.1 Controller監(jiān)控實戰(zhàn) 217
8.2 業(yè)務代碼監(jiān)控實戰(zhàn) 218
8.3 通過注解進行監(jiān)控的設置與實戰(zhàn) 221
8.4 Dubbo監(jiān)控實戰(zhàn) 223
8.5 SPI機制原理解析 225
8.6 SPI高級實戰(zhàn):基于Dubbo的分布式日志鏈路TraceID追蹤 228
8.7 集成Spring Boot時的常見問題及其解決方案 231
8.8 關(guān)于Micrometer的兩個常見問題及其解決方案 234
8.8.1 極大值BUG問題 235
8.8.2 Actuator內(nèi)存溢出問題 237
8.9 micrometer-spring-legacy源碼解析 242
8.9.1 spring.factories 244
8.9.2 CompositeMeterRegistryAuto-Conf?iguration 246
8.9.3 XX-MeterRegistry的注冊 248
8.9.4 WebMvcMetricsFilter過濾器 249
8.9.5 其他 250
8.10 本章小結(jié) 251
第9章 Prometheus集群實戰(zhàn) 252
9.1 校時 252
9.2 Prometheus的3種常見HA架構(gòu)
方案 255
9.2.1 簡單HA 256
9.2.2 簡單HA+遠程存儲 256
9.2.3 簡單HA+遠程存儲+聯(lián)邦集群 257
9.2.4 聯(lián)邦集群配置方式 261
9.2.5 功能分區(qū)配置方式 262
9.2.6 K8S單點故障引發(fā)的POD漂移問題 263
9.3 Prometheus集群架構(gòu)采集優(yōu)化方案 263
9.4 在企業(yè)中從零推廣Prometheus架構(gòu) 266
9.4.1 研發(fā)團隊 266
9.4.2 運維團隊 267
9.4.3 借助K8S一起推進上線 268
9.5 搭建基于M3DB的簡單HA+遠程存儲Prometheus K8S集群 268
9.5.1 架構(gòu)說明 268
9.5.2 K8S內(nèi)部Prometheus 270
9.5.3 K8S外部Prometheus 270
9.5.4 M3DB 276
9.6 多租戶、可橫向擴展的Prometheus即服務—?Cortex 277
9.7 本章小結(jié) 280
第10章 Prometheus存儲原理與問題分析 281
10.1 本地存儲文件結(jié)構(gòu)解析 282
10.2 存儲原理解析 286
10.3 存儲配置方法 287
10.4 本地存儲容量規(guī)劃原則與方法 290
10.5 RAM容量規(guī)劃原則與方法 291
10.6 本地存儲及時性和時序性問題分析 293
10.7 本章小結(jié) 294
第11章 Prometheus其他相關(guān)技術(shù)分析與實戰(zhàn) 296
11.1 Thanos架構(gòu)與監(jiān)控實戰(zhàn) 296
11.1.1 Thanos架構(gòu)解析 297
11.1.2 Thanos在Prometheus監(jiān)控中的作用與實戰(zhàn) 299
11.1.3 Thanos存在的問題 302
11.2 M3DB技術(shù)詳解 303
11.3 Loki的特性、架構(gòu)與應用 306
11.3.1 Loki特性 307
11.3.2 Loki架構(gòu)簡介 308
11.3.3 Loki使用方法 310
11.4 ELK的5種主流架構(gòu)及其優(yōu)劣分析 311
11.4.1 為什么要用ELK 312
11.4.2 基礎架構(gòu) 313
11.4.3 改良架構(gòu) 314
11.4.4 二次改良架構(gòu) 315
11.4.5 基于Tribe Node概念的架構(gòu) 316
11.4.6 帶有冷熱分離功能的架構(gòu) 316
11.5 Fluentd和Fluent Bit項目簡介 317
11.6 Operator模式現(xiàn)狀與未來展望 319
11.7 關(guān)于靈活運用Prometheus的幾點建議 321
11.8 本章小結(jié) 323
附錄A Prometheus相關(guān)端口列表 324
附錄B PromQL速查手冊 350
附錄C Prometheus 2.x(從2.0.0到2.20.0)的重大版本變遷 354
附錄D Prometheus自監(jiān)控指標 363
附錄E SLA服務可用性基礎參考指標 366