《深入浅出Prometheus:原理、应用、源码与拓展详解》还未出版就受到了很多人的关注,时不时被询问出版进度,热度至此,不火怎行?
Prometheus既适用于容器监控,也适用于传统应用监控,更是从CNCF第2个毕业的开源项目;众多企业或者公司都在使用它,360°围观,它都注定是个明星项目。
现在还没有一本Prometheus书问世,很多人都有很多关于Prometheus的问题想解决。
《深入浅出Prometheus:原理、应用、源码与拓展详解》囊括Prometheus的原理、传统应用监控、Kubernetes监控、源码及拓展方法,是一本努力做到全面,努力帮助读者从了解、入门到实战,再到源码及优化的很用心的书,希望大家喜欢!
欢迎加编辑威信zgx228,或提问题,或与专家实时讨论,我们会尽力给予帮助,加油!
Prometheus是由SoundCloud开源的监控系统,是Google BorgMon监控系统的开源版本。伴随着容器及Kubernetes技术的兴起,Prometheus越来越受到大家的关注。《深入浅出Prometheus:原理、应用、源码与拓展详解》系统讲解了Prometheus的原理、应用、源码和拓展,图文并茂、讲解全面。原理篇主要介绍了Prometheus的整体架构及与其他监控系统的对比和优势,让读者从整体上把握Prometheus的相关概念。应用篇从传统应用监控和Kubernetes监控两方面讲解Prometheus的安装、配置及优秀实践,着重介绍Redis、MySQL server等常用中间件监控,并结合Kubernetes,详细讲解如何通过Prometheus监控容器集群,还对每个操作都进行了非常详尽的记录。源码与拓展篇从整体到局部详细剖析Prometheus的源码架构,并且结合实际生产环境二次定制Prometheus的部分功能,可加深读者对Prometheus的理解,也能很好地帮助读者提升Prometheus开发技能。
《深入浅出Prometheus:原理、应用、源码与拓展详解》适合运维工程师、软件架构师、研发工程师及其他资深IT人士参考和阅读。
第1篇 Prometheus原理
第1章 监控 2
1.1 监控系统概览 2
1.2 基础资源监控 4
1.2.1 网络监控 4
1.2.2 存储监控 6
1.2.3 服务器监控 7
1.3 中间件监控 9
1.4 应用程序监控(APM) 10
1.5 日志监控 13
1.6 监控系统实现 14
1.6.1 总体架构 14
1.6.2 指标采集 15
1.6.3 数据处理 18
1.7 监控系统的发展趋势 21
1.8 本书主角——Prometheus 22
1.9 其他开源监控工具 26
1.9.1 Zabbix 26
1.9.2 Nagios 30
1.9.3 Open-Falcon 31
1.10 监控系统的对比 33
第2章 深入Prometheus设计 35
2.1 指标 35
2.1.1 Prometheus的指标定义 35
2.1.2 Prometheus的指标分类 36
2.1.3 Prometheus数据样本 40
2.2 数据采集 40
2.2.1 服务发现 42
2.2.2 数据采集 44
2.3 数据处理 45
2.3.1 重新定义标签 45
2.3.2 标签筛选 46
2.4 数据存储 46
2.4.1 本地存储 47
2.4.2 远程存储 50
2.5 数据查询 50
2.6 告警 52
2.7 集群 54
2.7.1 联邦 54
2.7.2 Thanos 55
2.8 Prometheus并非监控银弹 59
第3章 数据存储 60
3.1 存储接口 60
3.2 本地存储 62
3.2.1 历史 63
3.2.2 核心概念 63
3.2.3 相关参数 69
3.2.4 本地存储接口 70
3.3 远端存储 71
3.3.1 总体架构 71
3.3.2 远端接口规范 71
3.3.3 相关参数 74
3.4 存储汇聚 77
第2篇 Prometheus在传统应用监控中的应用
第4章 Prometheus exporter详解 80
4.1 服务分类 80
4.2 数据规范 81
4.3 exporter简介 82
4.4 基于Go客户端编写一个exporter 84
4.5 Node exporter解析 87
4.6 Redis exporter解析 90
4.6.1 Redis exporter的应用 90
4.6.2 Redis exporter的工作原理 91
4.7 MySQL server exporter解析 93
4.7.1 MySQL server exporter的应用 93
4.7.2 MySQL server exporter的工作原理 94
4.8 深入探索Go客户端 96
第3篇 Prometheus在Kubernetes监控中的应用
第5章 Kubernetes监控方案 100
5.1 Heapster 101
5.2 kube-state-metrics 104
5.3 metrics-server 105
5.4 Prometheus 105
第6章 Prometheus的安装配置 107
6.1 手动安装Prometheus 107
6.2 安装Prometheus Operator 114
6.3 在Prometheus Operator中添加自定义的监控项 125
6.4 在Prometheus Operator中添加自定义告警 132
6.4.1 配置PrometheusRule 133
6.4.2 配置告警 138
6.5 Prometheus Operator的高级配置 144
6.5.1 自动发现配置 145
6.5.2 数据持久化配置 152
第7章 Prometheus监控Kubernetes之服务配置 159
7.1 静态配置 159
7.2 服务发现配置 164
第8章 Prometheus监控Kubernetes之监控对象 171
8.1 容器监控 172
8.1.1 Prometheus的配置方式 172
8.1.2 容器指标 174
8.2 apiserver监控 177
8.2.1 配置方式 177
8.2.2 apiserver指标 181
8.3 Service监控 182
8.4 kube-state-metrics监控 185
8.5 主机监控 186
第9章 Prometheus监控Kubernetes之数据展现 191
9.1 在Kubernetes集群中安装Grafana 191
9.2 配置Grafana 200
9.2.1 数据源 200
9.2.2 Dashboard 201
9.3 插件 207
9.4 Grafana告警 212
9.4.1 邮件告警 212
9.4.2 钉钉告警 214
9.4.3 Grafana告警配置 215
第10章 Prometheus监控Kubernetes之告警 219
10.1 AlertManager简介 219
10.2 安装AlertManager 220
10.3 告警规则 225
10.4 webhook接收器 231
第4篇 Prometheus源码与拓展
第11章 Prometheus服务组件 240
11.1 Prometheus源码的目录结构 240
11.2 原生Prometheus的不足 242
11.3 源码改造——更改时区 243
11.3.1 源码修改 243
11.3.2 编译 244
11.3.3 功能验证 244
11.4 源码改造——用blog4go记录系统日志 245
11.4.1 引入blog4go库 245
11.4.2 设置日志回调函数 246
11.4.3 启动日志记录服务 246
11.4.4 配置config.xml 247
11.4.5 编译 248
11.4.6 验证服务 248
11.5 Prometheus的初始化 248
11.5.1 Prometheus性能调试 249
11.5.2 Context介绍 249
11.5.3 初始化服务组件 251
11.5.4 组件配置管理 257
11.5.5 启动服务组件 258
11.6 源码改造——MySQL规则存储 262
11.6.1 规则加载流程 262
11.6.2 表结构设计 262
11.6.3 规则加载模块 264
11.6.4 loadGroups改造 267
11.6.5 初始化 269
11.6.6 功能验证 269
11.7 数据采集 270
11.7.1 服务发现 270
11.7.2 指标采集 277
11.7.3 存储指标 289
11.8 通知管理 297
11.8.1 启动notifier服务 298
11.8.2 注册notifier 308
11.9 规则管理 311
11.9.1 规则调度 312
11.9.2 查询引擎 321
11.10 源码改造——不重复scrape及自带时间戳规则运算 327
11.10.1 实现思路 328
11.10.2 不重复scrape 328
11.10.3 自带时间戳规则运算 331
11.10.4 功能验证 343
第12章 AlertManager服务组件 348
12.1 接收告警 348
12.2 告警调度 351
12.3 告警匹配 356
12.4 告警处理 357
12.5 告警通知 362
在容器和微服务领域,系统监控、多维数据采集和查询变得尤为重要,而Prometheus无疑是监控工具中的佼佼者。本书通过众多实例详细解读了Prometheus的原理及应用,是快速学习、掌握Prometheus的有效工具。
----宜信CTO Joshua
经过SoundCloud的多年积累,Prometheus紧跟Kubernetes的步伐,成为第2个进入CNCF的项目,也成为云原生项目的重要监控支持工具。本书不仅讲解了Prometheus的架构和使用方法;更从实践出发,讲解了Prometheus的常见应用场景及问题解决方案;进一步地,提供了对部分源码的解析及对实现机制的探索,以及在此基础之上对拓展实现方式的说明。
如果你正在或者准备在生产环境中实施基于Prometheus的监控方案,那么本书能提供很实际的参考和帮助,值得一读。
----《Kubernetes权wei指南》《深入浅出Istio》作者 崔秀龙
微服务成为未来架构的趋势,对海量微服务的监控也成为新的挑战,Prometheus正是为了迎接这个挑战而生的。本书由浅入深地讲解了Prometheus的原理、应用、源码与拓展,还提供了与作者的实际项目经验相结合的众多实例,是学习Prometheus不可多得的好书。
----爱奇艺资深研发工程师 闫高威