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

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

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

定 價:¥89.00

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

ISBN: 9787111667834 出版時間: 2020-11-01 包裝: 平裝
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

贊譽
前言
第1章 監(jiān)控之美 1
1.1 監(jiān)控:把握應(yīng)用的脈搏 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應(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 通過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 釘釘接入設(shè)置 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響應(yīng)格式 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)于告警的高級應(yīng)用與問題處理 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 設(shè)計落地頁 201
7.6.3 將軟件版本信息提供給Prometheus的正確方法 201
7.6.4 必備指標的梳理 202
7.6.5 編寫高質(zhì)量Exporter的其他注意事項 209
7.7 Node Exporter源碼解析 210
7.8 Exporter高級應(yīng)用:開啟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è)務(wù)代碼監(jiān)控實戰(zhàn) 218
8.3 通過注解進行監(jiān)控的設(shè)置與實戰(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即服務(wù)—?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)與應(yīng)用 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 基礎(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項目簡介 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服務(wù)可用性基礎(chǔ)參考指標 366

本目錄推薦

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