| 作者 |
| 陈金窗 刘政委 张其栋 郑少斌 |
| 丛书名 |
| 云计算与虚拟化技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111649649 |
| 简要 |
| 全方位介绍Prometheus的原理架构及应用场景,包括与OpenStack、Docker、Kubernetes、Spring Boot、日志系统的结合,以及构建监控系统的高可用方案等 |
| 简介 |
| 内容简介书籍计算机书籍 本书系统化介绍云原生监控系统Prometheus的基本概念和使用方法。本书从基础内容讲起,由浅入深,分析了监控系统的主要功能和运维原则。主要内容包括三大部分,第一部分“入门基础篇”介绍初识Prometheus云监控的基本点和主要方向,Prometheus架构及核心组件,监控指标与Labels,常用Exporter探测器等;第二部分“技术提高篇”介绍服务发现、告警处理、PromQL数据查询、可视化、Pushgateway等;第三部分“应用实践篇”介绍监控方向,如监控Docker与cAdvisor、Kubernetes、业务程序,编写Exporter探测器和日志监控指标,生产部署,云业务监控平台搭建等。 |
| 目录 |
| 前 言 第一部分 概述 第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.2 Zabbix 11 1.4.3 OpenTSDB 12 1.5 Prometheus监控系统 13 1.5.1 应运而生,茁壮成长 13 1.5.2 功能完善、监控所有层级指标 15 1.5.3 开放、高效、易用的完整解决方案 16 1.6 本章小结 18 第2章 Prometheus基本概念及部署 19 2.1 Prometheus架构 19 2.2 Prometheus快速部署 20 2.2.1 使用二进制文件快速部署 21 2.2.2 使用Docker快速安装 25 2.2.3 Prometheus Web UI 26 2.3 Prometheus相关概念 29 2.3.1 数据模型 29 2.3.2 Metric的四种类型 30 2.3.3 Jobs 和 Instances 32 2.4 Prometheus核心组件 34 2.5 本章小结 35 第二部分 Prometheus技术基础 第3章 Exporter 38 3.1 概述 38 3.1.1 Exporter类型 38 3.1.2 文本数据格式 39 3.1.3 获取Exporter 40 3.2 主机监控 42 3.2.1 Linux主机监控 42 3.2.2 Windows主机监控 52 3.3 数据库监控 53 3.3.1 MySQL Server exporter 54 3.3.2 Redis exporter 60 3.4 Nginx监控 62 3.5 Prometheus之黑盒监控 64 3.5.1 软件安装与部署 65 3.5.2 配置文件 67 3.6 本章小结 71 第4章 服务发现 73 4.1 基于文件的服务发现 74 4.2 基于Consul的服务发现 78 4.2.1 Consul体验应用信息 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.4 Relabelling 89 4.5 本章小结 93 第5章 PromQL 94 5.1 时序数据库 94 5.2 PromQL简介 96 5.2.1 数据模型与数据类型 96 5.2.2 时间序列选择器 97 5.3 PromQL聚合操作 100 5.4 PromQL运算符 102 5.4.1 算术运算符 102 5.4.2 关系运算符 103 5.4.3 向量匹配 105 5.4.4 逻辑运算符 107 5.4.5 运算符优先级 108 5.5 PromQL函数 108 5.5.1 数学函数 108 5.5.2 时间函数 109 5.5.3 标签操作函数 110 5.5.4 Counter指标增长率 111 5.5.5 Gauge指标趋势变化预测 111 5.6 PromQL查询分析 112 5.6.1 指标分析 112 5.6.2 PromQL操作分析 113 5.7 本章小结 113 第6章 告警处理 115 6.1 概述 115 6.2 Alertmanager部署 116 6.2.1 Alertmanager机制 116 6.2.2 使用二进制文件方式安装 117 6.2.3 使用Docker安装 120 6.3 Alertmanager配置 120 6.3.1 global 120 6.3.2 templates 122 6.3.3 route 122 6.3.4 receivers 124 6.3.5 inhibit_rules 125 6.4 Prometheus告警规则 126 6.4.1 与Alertmanager关联 126 6.4.2 告警规则 127 6.4.3 使用模板 132 6.5 告警接收器 133 6.5.1 Email接收告警 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.2 Grafana安装 150 7.2.1 在CentOS上安装 151 7.2.2 在Windows上安装 154 7.2.3 使用Docker安装 155 7.3 Grafana基本概念 156 7.4 Prometheus数据源 158 7.4.1 数据源添加 158 7.4.2 页面UI说明 160 7.5 仪表盘导入 161 7.5.1 Node Exporter仪表盘 161 7.5.2 Windows Node仪表盘 164 7.5.3 MySQL仪表盘 166 7.5.4 Redis仪表盘 168 7.5.5 Nginx仪表盘 168 7.5.6 Blackbox Exporter仪表盘 169 7.6 定制监控图表 171 7.6.1 定制仪表盘 171 7.6.2 定制面板 175 7.7 本章小结 183 第8章 Pushgateway 184 8.1 概述 184 8.2 Pushgateway集成 185 8.2.1 软件下载与部署 186 8.2.2 Pushgateway UP状态 187 8.3 Pushgateway数据管理 187 8.3.1 向Pushgateway发送和查看监控指标 187 8.3.2 删除Pushgateway中的监控标准 189 8.3.3 基于推送的Prometheus监控 189 8.4 本章小结 192 第三部分 监控综合实践 第9章 OpenStack云计算监控 194 9.1 OpenStack监控架构 194 9.2 OpenStack Exporter 196 9.2.1 OpenStack Exporter部署 197 9.2.2 OpenStack监控可视化 199 9.3 OpenStack Helm监控 200 9.3.1 基于OpenStack Helm部署Prometheus 200 9.3.2 基于OpenStack Helm部署Grafana 203 9.4 本章小结 204 第10章 Docker容器监控 205 10.1 Docker容器架构与监控 205 10.1.1 Docker容器架构 205 10.1.2 Docker容器监控方式 206 10.1.3 cAdvisor架构及分析 209 10.2 部署cAdvisor容器监控 210 10.2.1 安装与运行cAdvisor 210 10.2.2 cAdvisor结果输出 212 10.2.3 cAdvisor常用搭配方案 214 10.2.4 集成Prometheus 216 10.2.5 集成Grafana实时显示 217 10.3 本章小结 218 第11章 Kubernetes监控 220 11.1 Prometheus与Kubernetes完美结合 220 11.2 在Kubernetes上部署Prometheus的传统方式 222 11.2.1 Kubernetes部署Prometheus 223 11.2.2 Kubernetes部署kube-state-metrics 230 11.2.3 Kubernetes部署node-exporter 234 11.2.4 Kubernetes部署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.2 kube-apiserver监控 245 11.5.3 kube-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.1 Spring 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.2 mtail日志监控 277 13.2.1 mtail安装与使用 277 13.2.2 mtail运行与输出 280 13.2.3 mtail与Prometheus、Grafana集成 281 13.2.4 处理Web服务器访问日志 283 13.2.5 集成mtail定制caching_exporter 284 13.2.6 nginx-prometheus-exporter 286 13.3 Fluentd日志监控 288 13.3.1 Fluentd系统架构 288 13.3.2 Fluentd的Prometheus监控插件 290 13.3.3 用Prometheus监控Fluentd 291 13.3.4 与Prometheus集成配置 293 13.4 grok_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.4 Thanos集群解决方案 310 14.4.1 Thanos集群架构 311 14.4.2 部署Thanos监控集群 312 14.4.3 Thanos远程存储 315 14.5 Alertmanager高可用 316 14.5.1 Gossip机制 317 14.5.2 搭建本地集群环境 319 14.6 Prometheus自动化部署 325 14.6.1 使用Ansible部署Prometheus监控系统 325 14.6.2 设计role组件 325 14.6.3 参数调整与部署 328 14.7 在监控中实现异常检测 329 14.8 本章小结 331 |