内容简介
第1篇 Prometheus原理
第1章 监控
1.1 监控系统概览
1.2 基础资源监控
1.2.1 网络监控
1.2.2 存储监控
1.2.3 服务器监控
1.3 中间件监控
1.4 应用程序监控(APM)
1.5 日志监控
1.6 监控系统实现
1.6.1 总体架构
1.6.2 指标采集
1.6.3 数据处理
1.7 监控系统的发展趋势
1.8 本书主角——Prometheus
1.9 其他开源监控工具
1.9.1 Zabbix
1.9.2 Nagios
1.9.3 Open-Falcon
1.10 监控系统的对比
第2章 深入Prometheus设计
2.1 指标
2.1.1 Prometheus的指标定义
2.1.2 Prometheus的指标分类
2.1.3 Prometheus数据样本
2.2 数据采集
2.2.1 服务发现
2.2.2 数据采集
2.3 数据处理
2.3.1 重新定义标签
2.3.2 标签筛选
2.4 数据存储
2.4.1 本地存储
2.4.2 远程存储
2.5 数据查询
2.6 告警
2.7 集群
2.7.1 联邦
2.7.2 Thanos
2.8 Prometheus并非监控银弹
第3章 数据存储
3.1 存储接口
3.2 本地存储
3.2.1 历史
3.2.2 核心概念
3.2.3 相关参数
3.2.4 本地存储接口
3.3 远端存储
3.3.1 总体架构
3.3.2 远端接口规范
3.3.3 相关参数
3.4 存储汇聚
第2篇 Prometheus在传统应用监控中的应用
第4章 Prometheus exporter详解
4.1 服务分类
4.2 数据规范
4.3 exporter简介
4.4 基于Go客户端编写一个exporter
4.5 Node exporter解析
4.6 Redis exporter解析
4.6.1 Redis exporter的应用
4.6.2 Redis exporter的工作原理
4.7 MySQL server exporter解析
4.7.1 MySQL server exporter的应用
4.7.2 MySQL server exporter的工作原理
4.8 深入探索Go客户端
第3篇 Prometheus在Kubernetes监控中的应用
第5章 Kubernetes监控方案
5.1 Heapster
5.2 kube-state-metrics
5.3 metrics-server
5.4 Prometheus
第6章 Prometheus的安装配置
6.1 手动安装Prometheus
6.2 安装Prometheus Operator
6.3 在Prometheus Operator中添加自定义的监控项
6.4 在Prometheus Operator中添加自定义告警
6.4.1 配置PrometheusRule
6.4.2 配置告警
6.5 Prometheus Operator的高级配置
6.5.1 自动发现配置
6.5.2 数据持久化配置
第7章 Prometheus监控Kubernetes之服务配置
7.1 静态配置
7.2 服务发现配置
第8章 Prometheus监控Kubernetes之监控对象
8.1 容器监控
8.1.1 Prometheus的配置方式
8.1.2 容器指标
8.2 apiserver监控
8.2.1 配置方式
8.2.2 apiserver指标
8.3 Service监控
8.4 kube-state-metrics监控
8.5 主机监控
第9章 Prometheus监控Kubernetes之数据展现
9.1 在Kubernetes集群中安装Grafana
9.2 配置Grafana
9.2.1 数据源
9.2.2 Dashboard
9.3 插件
9.4 Grafana告警
9.4.1 邮件告警
9.4.2 钉钉告警
9.4.3 Grafana告警配置
第10章 Prometheus监控Kubernetes之告警
10.1 AlertManager简介
10.2 安装AlertManager
10.3 告警规则
10.4 webhook接收器
第4篇 Prometheus源码与拓展
第11章 Prometheus服务组件
11.1 Prometheus源码的目录结构
11.2 原生Prometheus的不足
11.3 源码改造——更改时区
11.3.1 源码修改
11.3.2 编译
11.3.3 功能验证
11.4 源码改造——用blog4go记录系统日志
11.4.1 引入blog4go库
11.4.2 设置日志回调函数
11.4.3 启动日志记录服务
11.4.4 配置config.xml
11.4.5 编译
11.4.6 验证服务
11.5 Prometheus的初始化
11.5.1 Prometheus性能调试
11.5.2 Context介绍
11.5.3 初始化服务组件
11.5.4 组件配置管理
11.5.5 启动服务组件
11.6 源码改造——MySQL规则存储
11.6.1 规则加载流程
11.6.2 表结构设计
11.6.3 规则加载模块
11.6.4 loadGroups改造
11.6.5 初始化
11.6.6 功能验证
11.7 数据采集
11.7.1 服务发现
11.7.2 指标采集
11.7.3 存储指标
11.8 通知管理
11.8.1 启动notifier服务
11.8.2 注册notifier
11.9 规则管理
11.9.1 规则调度
11.9.2 查询引擎
11.10 源码改造——不重复scrape及自带时间戳规则运算
11.10.1 实现思路
11.10.2 不重复scrape
11.10.3 自带时间戳规则运算
11.10.4 功能验证
第12章 AlertManager服务组件
12.1 接收告警
12.2 告警调度
12.3 告警匹配
12.4 告警处理
12.5 告警通知