注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)家庭與辦公軟件Prometheus云原生監(jiān)控:運(yùn)維與開發(fā)實(shí)戰(zhàn)

Prometheus云原生監(jiān)控:運(yùn)維與開發(fā)實(shí)戰(zhàn)

Prometheus云原生監(jiān)控:運(yùn)維與開發(fā)實(shí)戰(zhàn)

定 價(jià):¥89.00

作 者: 朱政科 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 云計(jì)算與虛擬化技術(shù)叢書
標(biāo) 簽: 暫缺

ISBN: 9787111667834 出版時(shí)間: 2020-11-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書共分為11章,緊密圍繞Prometheus的相關(guān)概念和技術(shù)展開介紹。 第1章主要介紹了監(jiān)控系統(tǒng)的相關(guān)概念。本章首先介紹了監(jiān)控的概念、監(jiān)控的分類、MDD(指標(biāo)驅(qū)動(dòng)開發(fā))的理念、Google四大黃金指標(biāo)、USE方法、RED方法等知識(shí);接著介紹了監(jiān)控中的探針和內(nèi)省、拉取和推送等常見手法;最后介紹了常見的監(jiān)控系統(tǒng)Nagios、Zabbix、Ganglia、Open-Falcon、ZMon,以及進(jìn)行監(jiān)控系統(tǒng)選型時(shí)應(yīng)該考慮的維度及誤區(qū)。 第2章介紹了Prometheus的相關(guān)概念。從歷史、特點(diǎn)、架構(gòu)、局限性、快速開始這5個(gè)方面介紹了Prometheus是什么,它在監(jiān)控領(lǐng)域有哪些使用場(chǎng)景,以及如何快速安裝和啟動(dòng)Prometheus。 第3章介紹了在Spring Boot中如何集成Prometheus。本章通過(guò)介紹Micrometer的理論,輔以Spring Boot 2.x應(yīng)用的案例,一步步教讀者將Spring Boot 2.x應(yīng)用數(shù)據(jù)傳輸?shù)絇rometheus監(jiān)控系統(tǒng)中,再以可視化監(jiān)控大盤的形式展現(xiàn)在Grafana儀表盤中。本章還介紹了當(dāng)系統(tǒng)出現(xiàn)故障時(shí),讀者如何將Spring Boot 2.x應(yīng)用的故障信息以告警的形式發(fā)送到郵箱或者釘釘中。本章內(nèi)容對(duì)于廣大開發(fā)者來(lái)說(shuō)具有一定的實(shí)戰(zhàn)指導(dǎo)作用。 第4章介紹了與PromQL相關(guān)的知識(shí)。PromQL是Prometheus實(shí)戰(zhàn)的核心,是Prometheus 場(chǎng)景的基礎(chǔ),也是Prometheus的重中之重。本章用很大的篇幅,從時(shí)間序列、PromQL數(shù)據(jù)類型、指標(biāo)類型、選擇器、聚合操作、二元操作符、內(nèi)置函數(shù)、最佳實(shí)踐、性能優(yōu)化等方面,通過(guò)理論聯(lián)系實(shí)際的方式,全方位介紹了與PromQL相關(guān)的概念及其具體用法。 第5章介紹了PromQL的高級(jí)用法。首先介紹了39個(gè)PromQL內(nèi)置函數(shù),然后圍繞HTTP API、記錄規(guī)則、告警規(guī)則、metric_relabel_configs、relabel_configs等多個(gè)知識(shí)點(diǎn),以理論聯(lián)系實(shí)際、知識(shí)點(diǎn)結(jié)合案例的形式,全方位介紹了PromQL的高級(jí)用法和最佳實(shí)踐。 第6章介紹了Prometheus的告警模塊—Alertmanager。本章圍繞Alertmanager告警的架構(gòu)、工作原理、集群、觸發(fā)的流程等展開介紹,接著拓展了告警分組、抑制、靜默、延遲等眾多知識(shí)點(diǎn)。讀完本章,讀者可以輕松理解告警是如何觸發(fā)的,還可以分析、定位、解決告警轟炸、告警不準(zhǔn)確等常見問(wèn)題。 第7章介紹了Prometheus中與Exporter相關(guān)的概念。Exporter的來(lái)源主要有兩個(gè),一個(gè)是社區(qū),另一個(gè)是用戶自定義。本章從數(shù)據(jù)規(guī)范、數(shù)據(jù)采集方式、案例代碼編寫等方面一步步指導(dǎo)讀者自定義Exporter。為了幫助讀者提高編碼水平和真正寫好Exporter,本章還給出了寫好Exporter的建議,并結(jié)合Node Exporter、Redis Exporter、MySQL Exporter、RocketMQ Exporter等的原理進(jìn)行分析講解。通過(guò)對(duì)本章的學(xué)習(xí),讀者可以掌握使用和定制Exporter的方法。 第8章介紹了與Spring Boot相關(guān)的高級(jí)話題,幫助讀者了解Prometheus集成Spring Boot的原理、源碼和解決方案。本章針對(duì)Prometheus監(jiān)控RESTful、監(jiān)控業(yè)務(wù)、通過(guò)注解進(jìn)行監(jiān)控、監(jiān)控Dubbo這4個(gè)真實(shí)需求給出了源碼級(jí)的技術(shù)指導(dǎo)方案。對(duì)Prometheus集成Spring Boot過(guò)程中可能產(chǎn)生的問(wèn)題,如空指針、極大值、內(nèi)存溢出等,本章也做了補(bǔ)充分析與解答。 第9章介紹了與Prometheus集群相關(guān)的實(shí)戰(zhàn)內(nèi)容。本章圍繞Prometheus集群實(shí)戰(zhàn)的架構(gòu)問(wèn)題,討論了多種集群解決方案(簡(jiǎn)單HA、簡(jiǎn)單HA+遠(yuǎn)程存儲(chǔ)、簡(jiǎn)單HA+遠(yuǎn)程存儲(chǔ)+聯(lián)邦集群)的理念、方法及優(yōu)化手段,探究如何構(gòu)建具有更高擴(kuò)展性和可靠性的集群。本章是實(shí)戰(zhàn)章節(jié),在采集指標(biāo)、推廣Prometheus在企業(yè)中的部署等細(xì)節(jié)問(wèn)題上都給出了指導(dǎo)。本章還通過(guò)搭建一個(gè)基于M3DB的簡(jiǎn)單HA+遠(yuǎn)程存儲(chǔ)Prometheus K8S集群的真實(shí)案例,用步驟引導(dǎo)以及配置文件樣例的形式,帶領(lǐng)讀者實(shí)際部署Prometheus集群。 第10章介紹了Prometheus的存儲(chǔ)原理。Prometheus不僅是一個(gè)監(jiān)控系統(tǒng),還是一款優(yōu)秀的時(shí)序數(shù)據(jù)庫(kù)。本章主要圍繞Prometheus 3.0版本的TSDB本地存儲(chǔ),對(duì)存儲(chǔ)文件的格式、存儲(chǔ)的原理、chunk、索引、block、WAL日志、tombstones、Checkpoint等相關(guān)知識(shí)點(diǎn)進(jìn)行介紹,讓讀者清晰地了解Prometheus存儲(chǔ)的運(yùn)行機(jī)制。第11章介紹了Prometheus的相關(guān)技術(shù)。本章首先介紹了Prometheus的伴侶—Thanos和M3DB,并對(duì)使用這些技術(shù)的過(guò)程中可能出現(xiàn)的一些問(wèn)題給出了指導(dǎo)和建議;然后介紹了繼承Prometheus理念的Loki,詳細(xì)介紹了Loki、ELK等相關(guān)日志技術(shù)的原理和架構(gòu)方案;最后,介紹了Operator模式和Prometheus Operator模式,以及在實(shí)戰(zhàn)中針對(duì)壓測(cè)、查找中間件(如Redis問(wèn)題)等場(chǎng)景應(yīng)該如何靈活運(yùn)用Prometheus。

作者簡(jiǎn)介

  朱政科 資深架構(gòu)師,中間件技術(shù)專家,對(duì)數(shù)據(jù)庫(kù)連接池和Prometheus等監(jiān)控技術(shù)有深入研究。 有10余年IT行業(yè)從業(yè)經(jīng)驗(yàn),現(xiàn)就職于國(guó)內(nèi)某大型世界百?gòu)?qiáng)企業(yè)。 曾在阿里等一線互聯(lián)網(wǎng)公司長(zhǎng)期從事中間件的研發(fā)及團(tuán)隊(duì)管理工作。 先后主導(dǎo)和參與了多個(gè)重要的與物聯(lián)網(wǎng)、人工智能等相關(guān)的大型項(xiàng)目。 著有《HikariCP數(shù)據(jù)庫(kù)連接池實(shí)戰(zhàn)》。

圖書目錄

贊譽(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)控系統(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 儀表盤 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 配置文件的編寫與解讀 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)手編寫一個(gè)Exporter 195
7.6 高質(zhì)量Exporter的編寫原則與方法 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 編寫高質(zhì)量Exporter的其他注意事項(xiàng) 209
7.7 Node Exporter源碼解析 210
7.8 Exporter高級(jí)應(yīng)用:開啟TSL連接和Basic Auth認(rèn)證 214
7.8.1 準(zhǔn)備證書 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í)的常見問(wèn)題及其解決方案 231
8.8 關(guān)于Micrometer的兩個(gè)常見問(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種常見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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)