新生代的开源监控系统Prometheus,一线开发者教你如何活学活用
新书速递
从互联网、移动计算到云计算、大数据、人工智能,十多年来,信息技术的日新月异催生了不断涌现的互联网新业态,也推动了传统行业投身于数字化转型的创新浪潮。
云计算是IT信息技术发展和服务模式创新的集中体现,是信息化发展的重大变革和必然趋势。特别是在开源云计算技术蓬勃发展的过程中,Kubernetes、容器、微服务、区块链、智能运维、大数据等技术和理念的融合应用,已经成为影响云计算发展格局的关键。
云时代监控将面临四大挑战:
持续变更下的监控。
自下而上、自上而下以及在云环境中的监控都遇到难题。
监控微服务架构。
处理大容量的分布式(日志)数据。
因此,监控系统将成为云平台的重要工具。优秀的监控系统不仅需要兼容各种设备和环境,还需要具备高性能、高可靠、易运维等特性,Prometheus正是优秀的代表。今天小编为大家介绍《Prometheus监控技术与实践》。
本书从运维(Ops)角度对Prometheus监控的各项功能进行详细介绍,对Prometheus的系统架构、Exporter、服务发现、PromQL数据查询、告警处理、Grafana可视化等进行了深入浅出的探讨。
目录
前 言
第一部分 概述
第1章 云计算时代的监控系统 2
1.1 云计算时代的应用系统 2
1.1.1企业“IT云化”实现数字化转型 3
1.1.2 云计算时代的IT架构特点 3
1.1.3 云计算时代的IT管理变革 4
1.2 云计算监控的目标和挑战 5
1.2.1 云计算监控目标 5
1.2.2 云计算监控挑战 7
1.3 云计算监控的范围和架构 8
1.3.1 监控管理的范围 8
1.3.2 监控系统的基本架构 9
1.4 百花齐放的开源监控软件工具 10
1.4.1 监控系统成熟度 11
1.4.2Zabbix 11
1.4.3OpenTSDB 12
1.5Prometheus监控系统 13
1.5.1 应运而生,茁壮成长 13
1.5.2 功能完善、监控所有层级指标 15
1.5.3开放、高效、易用的完整解决方案 16
1.6 本章小结 18
第2章Prometheus基本概念及部署 19
2.1Prometheus架构 19
2.2Prometheus快速部署 20
2.2.1 使用二进制文件快速部署 21
2.2.2 使用Docker快速安装 25
2.2.3Prometheus Web UI 26
2.3Prometheus相关概念 29
2.3.1 数据模型 29
2.3.2Metric的四种类型 30
2.3.3Jobs 和 Instances 32
2.4Prometheus核心组件 34
2.5 本章小结 35
第二部分 Prometheus技术基础
第3章 Exporter 38
3.1 概述 38
3.1.1Exporter类型 38
3.1.2 文本数据格式 39
3.1.3 获取Exporter 40
3.2 主机监控 42
3.2.1Linux主机监控 42
3.2.2Windows主机监控 52
3.3 数据库监控 53
3.3.1MySQL Server exporter 54
3.3.2Redis exporter 60
3.4Nginx监控 62
3.5Prometheus之黑盒监控 64
3.5.1 软件安装与部署 65
3.5.2 配置文件 67
3.6 本章小结 71
第4章 服务发现 73
4.1 基于文件的服务发现 74
4.2 基于Consul的服务发现 78
4.2.1Consul体验应用信息 80
4.2.2 软件下载与部署 80
4.2.3 服务注册发现 83
4.2.4 与Prometheus集成 85
4.3 基于DNS的服务发现 87
4.3.1自建DNS服务SRV记录设置 87
4.3.2阿里云域名解析SRV记录设置 88
4.4Relabelling 89
4.5 本章小结 93
第5章 PromQL 94
5.1 时序数据库 94
5.2PromQL简介 96
5.2.1 数据模型与数据类型 96
5.2.2 时间序列选择器 97
5.3PromQL聚合操作 100
5.4PromQL运算符 102
5.4.1 算术运算符 102
5.4.2 关系运算符 103
5.4.3 向量匹配 105
5.4.4 逻辑运算符 107
5.4.5 运算符优先级 108
5.5PromQL函数 108
5.5.1 数学函数 108
5.5.2 时间函数 109
5.5.3 标签操作函数 110
5.5.4Counter指标增长率 111
5.5.5Gauge指标趋势变化预测 111
5.6PromQL查询分析 112
5.6.1 指标分析 112
5.6.2PromQL操作分析 113
5.7 本章小结 113
第6章 告警处理 115
6.1 概述 115
6.2Alertmanager部署 116
6.2.1Alertmanager机制 116
6.2.2 使用二进制文件方式安装 117
6.2.3 使用Docker安装 120
6.3Alertmanager配置 120
6.3.1global 120
6.3.2templates 122
6.3.3route 122
6.3.4receivers 124
6.3.5inhibit_rules 125
6.4Prometheus告警规则 126
6.4.1 与Alertmanager关联 126
6.4.2 告警规则 127
6.4.3 使用模板 132
6.5 告警接收器 133
6.5.1Email接收告警 133
6.5.2 企业微信接收告警 136
6.5.3基于Webhook的钉钉接收告警 142
6.5.4 告警通知模板 146
6.6 告警临时静默 147
6.7 本章小结 148
第7章 可视化 149
7.1 概述 149
7.2Grafana安装 150
7.2.1 在CentOS上安装 151
7.2.2 在Windows上安装 154
7.2.3 使用Docker安装 155
7.3Grafana基本概念 156
7.4Prometheus数据源 158
7.4.1 数据源添加 158
7.4.2 页面UI说明 160
7.5 仪表盘导入 161
7.5.1Node Exporter仪表盘 161
7.5.2Windows Node仪表盘 164
7.5.3MySQL仪表盘 166
7.5.4Redis仪表盘 168
7.5.5Nginx仪表盘 168
7.5.6Blackbox Exporter仪表盘 169
7.6 定制监控图表 171
7.6.1 定制仪表盘 171
7.6.2 定制面板 175
7.7 本章小结 183
第8章 Pushgateway 184
8.1 概述 184
8.2Pushgateway集成 185
8.2.1 软件下载与部署 186
8.2.2Pushgateway UP状态 187
8.3Pushgateway数据管理 187
8.3.1向Pushgateway发送和查看监控指标 187
8.3.2删除Pushgateway中的监控标准 189
8.3.3基于推送的Prometheus监控 189
8.4 本章小结 192
第三部分 监控综合实践
第9章 OpenStack云计算监控 194
9.1OpenStack监控架构 194
9.2OpenStack Exporter 196
9.2.1OpenStack Exporter部署 197
9.2.2OpenStack监控可视化 199
9.3OpenStack Helm监控 200
9.3.1基于OpenStack Helm部署Prometheus 200
9.3.2基于OpenStack Helm部署Grafana 203
9.4 本章小结 204
第10章 Docker容器监控 205
10.1Docker容器架构与监控 205
10.1.1Docker容器架构 205
10.1.2Docker容器监控方式 206
10.1.3cAdvisor架构及分析 209
10.2 部署cAdvisor容器监控 210
10.2.1 安装与运行cAdvisor 210
10.2.2cAdvisor结果输出 212
10.2.3cAdvisor常用搭配方案 214
10.2.4 集成Prometheus 216
10.2.5 集成Grafana实时显示 217
10.3 本章小结 218
第11章 Kubernetes监控 220
11.1Prometheus与Kubernetes完美结合 220
11.2在Kubernetes上部署Prometheus的传统方式 222
11.2.1Kubernetes部署Prometheus 223
11.2.2Kubernetes部署kube-state-metrics 230
11.2.3Kubernetes部署node-exporter 234
11.2.4Kubernetes部署Grafana 236
11.3通过Operator方式部署Prometheus 239
11.4 服务配置 241
11.4.1 静态配置 241
11.4.2 服务发现配置 241
11.5 监控对象 244
11.5.1 容器监控 244
11.5.2kube-apiserver监控 245
11.5.3kube-state-metrics监控 246
11.5.4 主机监控 247
11.6 数据展现 247
11.6.1在Kubernetes集群中安装Grafana 248
11.6.2 配置Grafana 248
11.6.3 集成Grafana展示数据 248
11.7 告警 250
11.7.1 安装Alertmanager 250
11.7.2 告警规则 252
11.7.3 微信告警 252
11.8 本章小结 253
第12章 微服务及业务监控 254
12.1 微服务监控 254
12.1.1 微服务架构模式 254
12.1.2 以服务为中心的监控 256
12.1.3 微服务监控的关键指标 257
12.2 构建Spring Boot微服务监控 258
12.2.1Spring Boot监控架构 258
12.2.2配置加载Actuator监控组件 259
12.2.3使用io.micrometer构建监控指标 260
12.3 业务监控与运营指标 264
12.3.1 业务运营指标 264
12.3.2 业务量类指标 265
12.3.3 构建运营指标体系 266
12.4 在Spring Boot自定义Metrics 267
12.4.1扩展Spring Boot支持监控埋点 267
12.4.2 自定义Metrics监控指标 269
12.4.3使用Collector导出业务指标 273
12.5 本章小结 274
第13章 日志监控的设计与实现 276
13.1 概述 276
13.2mtail日志监控 277
13.2.1mtail安装与使用 277
13.2.2mtail运行与输出 280
13.2.3mtail与Prometheus、Grafana集成 281
13.2.4 处理Web服务器访问日志 283
13.2.5集成mtail定制caching_exporter 284
13.2.6nginx-prometheus-exporter 286
13.3Fluentd日志监控 288
13.3.1Fluentd系统架构 288
13.3.2Fluentd的Prometheus监控插件 290
13.3.3用Prometheus监控Fluentd 291
13.3.4 与Prometheus集成配置 293
13.4grok_exporter日志监控 295
13.5 本章小结 297
第14章Prometheus监控系统生产部署 299
14.1 最佳实践原则 299
14.2 数据存储 301
14.2.1 本地存储 301
14.2.2 远端存储 304
14.3 构建联邦集群系统 308
14.4Thanos集群解决方案 310
14.4.1Thanos集群架构 311
14.4.2 部署Thanos监控集群 312
14.4.3Thanos远程存储 315
14.5Alertmanager高可用 316
14.5.1Gossip机制 317
14.5.2 搭建本地集群环境 319
14.6Prometheus自动化部署 325
14.6.1使用Ansible部署Prometheus监控系统 325
14.6.2 设计role组件 325
14.6.3 参数调整与部署 328
14.7 在监控中实现异常检测 329
14.8 本章小结 331
上下滑动查看
更多精彩新书
上新 | 从0到1构建用户画像系统技术和方法论
上新 | 智能领域系统能力培养大成之作!——《智能计算系统》重磅出版!
上新 | “Flutter中文网”社区创始人倾力撰写的网红书 《Flutter实战》正式出版
上新 | 零基础掌握Istio& Kubernetes开发与运维