第1章 监控简介 1
1.1 什么是监控 1
1.1.1 技术作为客户 2
1.1.2 业务作为客户 2
1.2 监控基础知识 2
1.2.1 事后监控 2
1.2.2 机械式监控 3
1.2.3 不够准确的监控 4
1.2.4 静态监控 5
1.2.5 不频繁的监控 5
1.2.6 缺少自动化或自服务 6
1.2.7 监控模式总结 6
1.3 监控机制 7
1.3.1 探针和内省 7
1.3.2 拉取和推送 7
1.3.3 监控数据的类型 8
1.4 指标 8
1.4.1 什么是指标 9
1.4.2 指标类型 10
1.4.3 指标摘要 12
1.4.4 指标聚合 12
1.5 监控方法论 20
1.5.1 USE方法 20
1.5.2 Google的四个黄金指标 21
1.6 警报和通知 22
1.7 可视化 23
1.8 另一本关于监控的书 24
1.9 本书内容 24
1.10 小结 25
第2章 Prometheus简介 26
2.1 Prometheus起源 26
2.2 Prometheus架构 27
2.2.1 指标收集 28
2.2.2 服务发现 29
2.2.3 聚合和警报 29
2.2.4 查询数据 29
2.2.5 自治 30
2.2.6 冗余和高可用性 30
2.2.7 可视化 31
2.3 Prometheus数据模型 31
2.3.1 指标名称 31
2.3.2 标签 32
2.3.3 采样数据 32
2.3.4 符号表示 32
2.3.5 保留时间 33
2.4 安全模型 33
2.5 Prometheus生态系统 34
2.6 参考链接 34
2.7 小结 34
第3章 安装和启动Prometheus 35
3.1 安装Prometheus 35
3.1.1 在Linux上安装Prometheus 36
3.1.2 在Windows上安装Prometheus 37
3.1.3 在Windows上安装Prometheus的其他方式 38
3.1.4 在Mac OS X上安装Prometheus 38
3.1.5 通过监控套件安装Prometheus 38
3.1.6 通过配置管理工具安装Prometheus 39
3.1.7 通过Kubernetes安装Prometheus 39
3.2 配置Prometheus 39
3.2.1 global 40
3.2.2 alerting 41
3.2.3 rule_files 42
3.2.4 scrape_configs 42
3.3 启动Prometheus 43
3.4 第一个指标 44
3.5 表达式浏览器 45
3.6 聚合时间序列 48
3.7 容量规划 51
3.7.1 内存 51
3.7.2 磁盘 51
3.8 小结 52
第4章 监控主机和容器 53
4.1 监控节点 54
4.1.1 安装Node Exporter 54
4.1.2 配置Node Exporter 55
4.1.3 配置textfile收集器 56
4.1.4 启用systemd收集器 57
4.1.5 运行Node Exporter 57
4.1.6 抓取Node Exporter 58
4.1.7 过滤收集器 58
4.2 监控Docker容器 59
4.2.1 运行cAdvisor 60
4.2.2 抓取cAdvisor 61
4.3 抓取的生命周期 62
4.4 标签 64
4.4.1 标签分类 64
4.4.2 重新标记 65
4.5 Node Exporter和cAdvisor指标 69
4.5.1 USE方法 69
4.5.2 服务状态 77
4.5.3 可用性和up指标 78
4.5.4 metadata指标 79
4.6 查询持久性 81
4.6.1 记录规则 82
4.6.2 配置记录规则 82
4.6.3 添加记录规则 83
4.7 可视化 86
4.7.1 安装Grafana 86
4.7.2 启动和配置Grafana 88
4.7.3 配置Grafana Web界面 89
4.7.4 第一个仪表板 91
4.8 小结 92
第5章 服务发现 93
5.1 静态配置的局限性 93
5.2 基于文件的服务发现 94
5.3 基于API的服务发现 98
5.4 基于DNS的服务发现 102
5.5 小结 104
第6章 警报管理 105
6.1 警报 105
6.2 Alertmanager如何工作 107
6.3 安装Alertmanager 108
6.3.1 在Linux上安装Alertmanager 108
6.3.2 在Windows上安装Alertmanager 109
6.3.3 通过监控套件安装Alertmanager 110
6.3.4 通过配置管理工具安装Alertmanager 110
6.4 配置Alertmanager 111
6.5 运行Alertmanager 113
6.6 为Prometheus配置Alertmanager 114
6.6.1 Alertmanager服务发现 114
6.6.2 监控Alertmanager 115
6.7 添加警报规则 115
6.7.1 添加第一条警报规则 116
6.7.2 警报触发 118
6.7.3 Alertmanager的警报 118
6.7.4 添加新警报和模板 120
6.8 路由 123
6.9 接收器和通知模板 126
6.10 silence和维护 128
6.10.1 通过Alertmanager控制silence 128
6.10.2 通过amtool控制silence 130
6.11 小结 132
第7章 可靠性和可扩展性 133
7.1 可靠性和容错性 133
7.1.1 重复的Prometheus服务器 134
7.1.2 设置Alertmanager集群 135
7.1.3 为Prometheus配置Alertmanager集群 136
7.2 可扩展性 138
7.2.1 功能扩展 138
7.2.2 水平分片 139
7.3 远程存储 144
7.4 第三方工具 144
7.5 小结 144
第8章 监控应用程序 145
8.1 应用程序监控入门 145
8.1.1 从哪里开始 146
8.1.2 监控分类 146
8.2 指标 146
8.2.1 应用程序指标 147
8.2.2 业务指标 147
8.2.3 放置指标 147
8.2.4 实用程序模式 147
8.2.5 外部模式 148
8.2.6 监控应用程序示例 149
8.3 小结 155
第9章 日志监控 156
9.1 日志处理 156
9.2 mtail简介 157
9.2.1 安装mtail 157
9.2.2 使用mtail 158
9.2.3 运行mtail 159
9.3 处理Web服务器访问日志 161
9.4 解析Rails日志到直方图 163
9.5 部署mtail 165
9.6 抓取mtail端点 165
9.7 小结 166
第10章 探针监控 167
10.1 探针架构 167
10.2 Blackbox exporter 168
10.3 安装exporter 168
10.3.1 在Linux上安装exporter 169
10.3.2 在Windows上安装exporter 170
10.3.3 通过配置管理工具安装exporter 170
10.4 配置exporter 171
10.4.1 HTTP检查 172
10.4.2 ICMP检查 172
10.4.3 DNS检查 173
10.5 启动exporter 173
10.6 创建Prometheus作业 174
10.7 小结 176
第11章 推送指标和Pushgateway 177
11.1 Pushgateway 177
11.1.1 Pushgateway使用场景 178
11.1.2 安装Pushgateway 179
11.1.3 在Linux上安装Pushgateway 179
11.1.4 在Windows上安装Pushgateway 180
11.1.5 通过配置管理工具安装Pushgateway 181
11.1.6 配置和运行Pushgateway 181
11.1.7 向Pushgateway发送指标 182
11.1.8 在Pushgateway上查看指标 183
11.1.9 删除Pushgateway中的指标 184
11.1.10 从客户端发送指标 185
11.2 抓取Pushgateway 187
11.3 小结 188
第12章 监控Kubernetes 189
12.1 Kubernetes集群 189
12.2 在Kubernetes上运行Prometheus 190
12.3 监控Kubernetes 191
12.4 监控Kubernetes节点 191
12.4.1 Node Exporter DaemonSet 191
12.4.2 Node Exporter服务 194
12.4.3 部署Node Exporter 195
12.4.4 Node Exporter作业 196
12.4.5 Node Exporter规则 199
12.5 Kubernetes 200
12.5.1 Kube-state-metrics 200
12.5.2 Kube API 202
12.5.3 cAdvisor和节点 205
12.6 小结 206
第13章 监控Tornado 207
13.1 边车模式 207
13.2 MySQL 208
13.3 Redis 213
13.4 Tornado 216
13.4.1 添加Clojure包装器 216
13.4.2 添加注册表 217
13.4.3 添加指标 217
13.4.4 导出指标 218
13.4.5 Tornado监控配置 219
13.5 小结 220