深入理解Prometheus监控系统 鲍光亚,张帆 著

深入理解Prometheus监控系统 鲍光亚,张帆 著
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2024-07
版次: 1
ISBN: 9787115642677
定价: 79.80
装帧: 平装
开本: 16开
页数: 220页
字数: 303千字
  • 本书按照监控数据的采集和加工流程的顺序,深入剖析 Prometheus 监控系统的主要模块,旨在帮助读者理解 Prometheus 监控系统的底层工作机制。本书主要内容包括监控数据来源模块、监控目标发现模块、监控数据采集模块、监控数据存储与读写模块、监控数据查询语言、监控数据计算与告警模块、Web模块,以及警报管理系统等。通过对主要模块的学习,读者可以了解 Prometheus 监控系统是如何充分利用并发能力和 Go 语言的关键特性来应对动态变化的云环境的。
    本书适合已经对 Prometheus 有初步了解的读者,也适合想要进一步探究其内部工作机制的运维工程师、软件设计人员及软件开发工程师阅读。 鲍光亚,毕业于山东大学,具有10年以上互联网行业工作经验,曾就职于京东,主要负责监控系统的开发工作,在Prometheus和Zabbix监控系统的使用方面有丰富的经验,著有《深入理解Zabbix监控系统》一书。 张帆,毕业于北京航空航天大学。?2007~2011年在中国工商银行软件开发中心负责测试环境的监控和管理,2011年以来在金融行业负责监控系统相关工作,在Prometheus和Zabbix监控系统的使用方面有丰富的经验。 第 1章  Prometheus技术演进史 1
    1.1  Prometheus 0.1.0(少有版本) 1
    1.2  Prometheus 1.0 3
    1.3  Prometheus 2.0 4
    1.4  Prometheus 2.37(LTS版本) 5
    第 2章  YAML文本与配置文件 7
    2.1  YAML文本解析过程 7
    2.1.1  记号类型 8
    2.1.2  词法分析过程 12
    2.1.3  句法分析过程 17
    2.1.4  将语法树转换为目标对象 24
    2.2  配置文件的加载与刷新 26
    第3章  监控数据的来源——Exporter 28
    3.1  Exporter的典型工作架构 28
    3.2  采集器 30
    3.2.1  采集器的工作机制 30
    3.2.2  监控项描述符 32
    3.2.3  Gauge样本状态结构体 33
    3.2.4  Counter样本状态结构体 34
    3.2.5  Histogram样本状态结构体 35
    3.2.6  Summary样本状态结构体 36
    3.3  汇集器 37
    3.4  编码器 39
    3.5  推送模式 41
    第4章  监控目标的发现——Discovery 42
    4.1  Discovery管理器 42
    4.2  数据供应者 43
    4.3  目标数据的组织结构 45
    4.4  数据供应过程 47
    4.4.1  目标探测与处理 47
    4.4.2  Kubernetes供应者 48
    4.4.3  Consul供应者 51
    4.4.4  PuppetDB供应者 52
    4.4.5  ZooKeeper供应者 53
    4.4.6  文件目标供应者 53
    4.4.7  HTTP供应者 54
    4.4.8  DNS供应者 54
    4.4.9  其他供应者 55
    第5章  监控数据的采集与加工 56
    5.1  采样管理器概述 56
    5.2  监控目标数据加工过程 59
    5.2.1  目标数据加载协程 59
    5.2.2  采样池的目标数据同步 60
    5.2.3  采样协程的创建 63
    5.2.4  采样时间偏置 63
    5.3  监控数据加工过程 64
    5.3.1  HTTP请求与响应消息 65
    5.3.2  响应消息的解析 66
    5.3.3  写入数据库 75
    5.3.4  生成报告 76
    5.4  配置信息加载过程 77
    5.5  采集过程自身监控指标 78
    第6章  监控数据的存储与读写 ——TSDB 81
    6.1  头部块 81
    6.1.1  头部追加器 81
    6.1.2  追加样本 83
    6.1.3  写入WAL文件 84
    6.1.4  写入头部子块 86
    6.1.5  头部子块的持久化 87
    6.2  压缩器 88
    6.2.1  将头部块转换为主体块的1级压缩 88
    6.2.2  主体块的逐级压缩 92
    6.3  WAL文件与快照文件 94
    6.3.1  WAL文件的加载 94
    6.3.2  快照文件的生成与加载 95
    6.4  事务及其隔离性 97
    第7章  监控数据的查询语言——PromQL 100
    7.1  PromQL解析器 100
    7.1.1  解析器的工作过程 101
    7.1.2  句法分析 103
    7.1.3  词法分析 104
    7.2  PromQL语法树的结构 105
    7.2.1  语法树的节点类型 105
    7.2.2  向量选择器 108
    7.2.3  矩阵选择器 109
    7.2.4  子查询表达式 110
    7.2.5  二元表达式 111
    7.2.6  函数调用表达式 113
    7.2.7  聚合表达式 115
    7.2.8  步调恒定表达式 115
    7.3  PromQL语法树的执行 116
    7.3.1  监控数据查询模型 116
    7.3.2  向量选择器的执行 119
    7.3.3  时间参数及其处理 121
    7.3.4  矩阵选择器的执行 124
    7.3.5  子查询节点的执行 125
    7.3.6  聚合表达式的执行 127
    7.3.7  函数调用节点的执行 128
    7.3.8  二元表达式的执行 130
    7.3.9  查询任务的调度与监控 131
    第8章  监控数据的计算与告警触发 133
    8.1  转录规则 133
    8.2  告警规则 135
    8.2.1  告警规则的定义与执行 135
    8.2.2  警报状态及其转换 136
    8.2.3  警报外发及其生命延续方法 137
    8.2.4  警报样本写入数据库 138
    8.3  规则组及其评价任务调度 140
    8.4  通知器 143
    第9章  HTTP API与PromQL编辑器 146
    9.1  路由选择器 146
    9.2  Web API与联邦 150
    9.2.1  远程写请求及其处理 150
    9.2.2  远程读请求及其处理 151
    9.2.3  本地查询请求及其处理 154
    9.2.4  本地TSDB管理 155
    9.2.5  联邦 155
    9.3  PromQL编辑器 157
    9.3.1  自动补全 157
    9.3.2  语法高亮 160
    9.3.3  语法检查 161
    9.4  PromQL前端解析器 162
    9.4.1  解析器的栈结构 162
    9.4.2  分析表的编码及其加载 162
    9.4.3  词法分析器 163
    9.4.4  句法分析器 165
    第 10章  Prometheus的构建与部署 171
    10.1  Makefile文件 171
    10.2  代码静态检查 173
    10.3  构建过程 175
    10.3.1  Web用户界面静态资源文件的构建 176
    10.3.2  Go代码的构建 178
    10.3.3  自动发现插件的构建 179
    10.4  代码测试 180
    10.4.1  Go代码测试 180
    10.4.2  Web用户界面代码测试 181
    10.5  部署 181
    第 11章  警报管理系统——Alertmanager 183
    11.1  警报管理系统的分布式集群 183
    11.1.1  集群成员间传输的消息类型 183
    11.1.2  节点的数据表示与新节点的加入 185
    11.1.3  节点间的探测 187
    11.1.4  全量数据交换 189
    11.1.5  消息的散播 192
    11.2  警报存储池与警报状态总账 198
    11.2.1  警报的存储结构 198
    11.2.2  警报的写入 200
    11.2.3  警报的订阅 201
    11.2.4  警报的清理 202
    11.3  警报的分组与组内处理流程 202
    11.3.1  封闭式分组(路由树及其匹配) 203
    11.3.2  开放式分组(自我聚类) 204
    11.3.3  组内警报处理流程 206
    11.4  警报的滤除 207
    11.4.1  抑制器 208
    11.4.2  时钟过滤 209
    11.4.3  消声器 210
    11.5  警报的派发 212
    11.5.1  收件人的数据结构表示 212
    11.5.2  派发等待与去重 213
    11.5.3  警报的试投 213
    11.6  警报的登记 216
    11.6.1  通知日志的存储与读写 216
    11.6.2  通知日志的广播 218
    11.6.3  通知日志的作用 218
  • 内容简介:
    本书按照监控数据的采集和加工流程的顺序,深入剖析 Prometheus 监控系统的主要模块,旨在帮助读者理解 Prometheus 监控系统的底层工作机制。本书主要内容包括监控数据来源模块、监控目标发现模块、监控数据采集模块、监控数据存储与读写模块、监控数据查询语言、监控数据计算与告警模块、Web模块,以及警报管理系统等。通过对主要模块的学习,读者可以了解 Prometheus 监控系统是如何充分利用并发能力和 Go 语言的关键特性来应对动态变化的云环境的。
    本书适合已经对 Prometheus 有初步了解的读者,也适合想要进一步探究其内部工作机制的运维工程师、软件设计人员及软件开发工程师阅读。
  • 作者简介:
    鲍光亚,毕业于山东大学,具有10年以上互联网行业工作经验,曾就职于京东,主要负责监控系统的开发工作,在Prometheus和Zabbix监控系统的使用方面有丰富的经验,著有《深入理解Zabbix监控系统》一书。 张帆,毕业于北京航空航天大学。?2007~2011年在中国工商银行软件开发中心负责测试环境的监控和管理,2011年以来在金融行业负责监控系统相关工作,在Prometheus和Zabbix监控系统的使用方面有丰富的经验。
  • 目录:
    第 1章  Prometheus技术演进史 1
    1.1  Prometheus 0.1.0(少有版本) 1
    1.2  Prometheus 1.0 3
    1.3  Prometheus 2.0 4
    1.4  Prometheus 2.37(LTS版本) 5
    第 2章  YAML文本与配置文件 7
    2.1  YAML文本解析过程 7
    2.1.1  记号类型 8
    2.1.2  词法分析过程 12
    2.1.3  句法分析过程 17
    2.1.4  将语法树转换为目标对象 24
    2.2  配置文件的加载与刷新 26
    第3章  监控数据的来源——Exporter 28
    3.1  Exporter的典型工作架构 28
    3.2  采集器 30
    3.2.1  采集器的工作机制 30
    3.2.2  监控项描述符 32
    3.2.3  Gauge样本状态结构体 33
    3.2.4  Counter样本状态结构体 34
    3.2.5  Histogram样本状态结构体 35
    3.2.6  Summary样本状态结构体 36
    3.3  汇集器 37
    3.4  编码器 39
    3.5  推送模式 41
    第4章  监控目标的发现——Discovery 42
    4.1  Discovery管理器 42
    4.2  数据供应者 43
    4.3  目标数据的组织结构 45
    4.4  数据供应过程 47
    4.4.1  目标探测与处理 47
    4.4.2  Kubernetes供应者 48
    4.4.3  Consul供应者 51
    4.4.4  PuppetDB供应者 52
    4.4.5  ZooKeeper供应者 53
    4.4.6  文件目标供应者 53
    4.4.7  HTTP供应者 54
    4.4.8  DNS供应者 54
    4.4.9  其他供应者 55
    第5章  监控数据的采集与加工 56
    5.1  采样管理器概述 56
    5.2  监控目标数据加工过程 59
    5.2.1  目标数据加载协程 59
    5.2.2  采样池的目标数据同步 60
    5.2.3  采样协程的创建 63
    5.2.4  采样时间偏置 63
    5.3  监控数据加工过程 64
    5.3.1  HTTP请求与响应消息 65
    5.3.2  响应消息的解析 66
    5.3.3  写入数据库 75
    5.3.4  生成报告 76
    5.4  配置信息加载过程 77
    5.5  采集过程自身监控指标 78
    第6章  监控数据的存储与读写 ——TSDB 81
    6.1  头部块 81
    6.1.1  头部追加器 81
    6.1.2  追加样本 83
    6.1.3  写入WAL文件 84
    6.1.4  写入头部子块 86
    6.1.5  头部子块的持久化 87
    6.2  压缩器 88
    6.2.1  将头部块转换为主体块的1级压缩 88
    6.2.2  主体块的逐级压缩 92
    6.3  WAL文件与快照文件 94
    6.3.1  WAL文件的加载 94
    6.3.2  快照文件的生成与加载 95
    6.4  事务及其隔离性 97
    第7章  监控数据的查询语言——PromQL 100
    7.1  PromQL解析器 100
    7.1.1  解析器的工作过程 101
    7.1.2  句法分析 103
    7.1.3  词法分析 104
    7.2  PromQL语法树的结构 105
    7.2.1  语法树的节点类型 105
    7.2.2  向量选择器 108
    7.2.3  矩阵选择器 109
    7.2.4  子查询表达式 110
    7.2.5  二元表达式 111
    7.2.6  函数调用表达式 113
    7.2.7  聚合表达式 115
    7.2.8  步调恒定表达式 115
    7.3  PromQL语法树的执行 116
    7.3.1  监控数据查询模型 116
    7.3.2  向量选择器的执行 119
    7.3.3  时间参数及其处理 121
    7.3.4  矩阵选择器的执行 124
    7.3.5  子查询节点的执行 125
    7.3.6  聚合表达式的执行 127
    7.3.7  函数调用节点的执行 128
    7.3.8  二元表达式的执行 130
    7.3.9  查询任务的调度与监控 131
    第8章  监控数据的计算与告警触发 133
    8.1  转录规则 133
    8.2  告警规则 135
    8.2.1  告警规则的定义与执行 135
    8.2.2  警报状态及其转换 136
    8.2.3  警报外发及其生命延续方法 137
    8.2.4  警报样本写入数据库 138
    8.3  规则组及其评价任务调度 140
    8.4  通知器 143
    第9章  HTTP API与PromQL编辑器 146
    9.1  路由选择器 146
    9.2  Web API与联邦 150
    9.2.1  远程写请求及其处理 150
    9.2.2  远程读请求及其处理 151
    9.2.3  本地查询请求及其处理 154
    9.2.4  本地TSDB管理 155
    9.2.5  联邦 155
    9.3  PromQL编辑器 157
    9.3.1  自动补全 157
    9.3.2  语法高亮 160
    9.3.3  语法检查 161
    9.4  PromQL前端解析器 162
    9.4.1  解析器的栈结构 162
    9.4.2  分析表的编码及其加载 162
    9.4.3  词法分析器 163
    9.4.4  句法分析器 165
    第 10章  Prometheus的构建与部署 171
    10.1  Makefile文件 171
    10.2  代码静态检查 173
    10.3  构建过程 175
    10.3.1  Web用户界面静态资源文件的构建 176
    10.3.2  Go代码的构建 178
    10.3.3  自动发现插件的构建 179
    10.4  代码测试 180
    10.4.1  Go代码测试 180
    10.4.2  Web用户界面代码测试 181
    10.5  部署 181
    第 11章  警报管理系统——Alertmanager 183
    11.1  警报管理系统的分布式集群 183
    11.1.1  集群成员间传输的消息类型 183
    11.1.2  节点的数据表示与新节点的加入 185
    11.1.3  节点间的探测 187
    11.1.4  全量数据交换 189
    11.1.5  消息的散播 192
    11.2  警报存储池与警报状态总账 198
    11.2.1  警报的存储结构 198
    11.2.2  警报的写入 200
    11.2.3  警报的订阅 201
    11.2.4  警报的清理 202
    11.3  警报的分组与组内处理流程 202
    11.3.1  封闭式分组(路由树及其匹配) 203
    11.3.2  开放式分组(自我聚类) 204
    11.3.3  组内警报处理流程 206
    11.4  警报的滤除 207
    11.4.1  抑制器 208
    11.4.2  时钟过滤 209
    11.4.3  消声器 210
    11.5  警报的派发 212
    11.5.1  收件人的数据结构表示 212
    11.5.2  派发等待与去重 213
    11.5.3  警报的试投 213
    11.6  警报的登记 216
    11.6.1  通知日志的存储与读写 216
    11.6.2  通知日志的广播 218
    11.6.3  通知日志的作用 218
查看详情
12
您可能感兴趣 / 更多
深入理解Prometheus监控系统 鲍光亚,张帆 著
深入理解Zabbix监控系统
鲍光亚