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