深入理解Zabbix监控系统

深入理解Zabbix监控系统
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-05
版次: 1
ISBN: 9787115558336
定价: 99.90
装帧: 平装
开本: 其他
纸张: 胶版纸
页数: 312页
字数: 433千字
5人买过
  • Zabbix是一个开源监控系统,在我国各类信息技术企业和金融企业中被广泛应用。本书主要从源码和功能两个角度,分析Zabbix监控系统的底层工作机制。本书首先讲述跨进程的总体工作机制,然后按照监控数据的处理流程依次讲解Zabbix服务器端和Zabbix客户端各类进程的内部工作机制,*后讲述Zabbix Web应用的工作机制。本书能够帮助读者深入理解Zabbix系统的核心原理,有助于在运维工作中快速定位和解决问题。
      本书适合具有一定Zabbix应用经验并想要进一步理解Zabbix工作机制的读者阅读,包括相关企业的运维人员、技术主管、架构师、产品经理和决策者等。 鲍光亚,本科毕业于山东大学,精通Zabbix和Prometheus监控软件,对IT系统和服务监控软件有深入研究。他在2014年至2019年就职于京东,从事Zabbix监控系统的运维和相关开发工作,对分布式、并行软件开发和项目管理具有浓厚兴趣。他在工作期间始终践行终身学习理念,不断充实、提高自己,在2012年获得了中国社会科学院研究生院MBA学位。作者个人邮箱:bgy.cn@outlook.com。 第 一部分 Zabbix的基础工作机制

    第 1章 Zabbix总体架构及演变 2

    1.1 监控系统概述 2

    1.2 Zabbix的总体架构 3

    1.2.1 Zabbix服务器 4

    1.2.2 Zabbix代理 6

    1.2.3 Zabbix java gateway 7

    1.2.4 Zabbix客户端 7

    1.3 Zabbix服务器的技术演进 7

    1.3.1 Zabbix 2.2版本的Zabbix服务器 7

    1.3.2 Zabbix 3.0版本的Zabbix服务器 8

    1.3.3 Zabbix 4.0版本的Zabbix服务器 8

    1.3.4 Zabbix 5.0版本的Zabbix服务器 9

    1.4 小结 9

    第 2章 Zabbix进程间通信与协调 10

    2.1 主进程和子进程的创建 10

    2.1.1 主进程的启动和值守化 11

    2.1.2 子进程的分类和创建 13

    2.1.3 子进程从主进程继承的内容 17

    2.1.4 进程的回收 20

    2.2 信号捕捉与处理 21

    2.2.1 Zabbix进程处理的信号类型 21

    2.2.2 信号处理函数 22

    2.2.3 信号的触发与接收 24

    2.2.4 用日志跟踪信号 24

    2.3 Zabbix的共享内存 25

    2.3.1 共享内存结构——内存池 25

    2.3.2 共享内存的分配与释放 28

    2.3.3 共享内存状态的获取 30

    2.3.4 Zabbix共享内存举例 31

    2.4 TCP/IP套接字 32

    2.4.1 zbx_socket_t结构体 32

    2.4.2 作为服务器端的套接字 33

    2.4.3 作为客户端的套接字 33

    2.5 基于Unix域套接字的进程间通信服务 34

    2.5.1 Libevent库在进程间通信服务中的应用 34

    2.5.2 进程间通信服务的数据结构及其工作过程 35

    2.5.3 进程间通信服务的初始化 37

    2.5.4 进程间通信服务的通信协议 37

    2.5.5 从日志查看进程间通信服务消息 37

    2.6 锁与信号量 38

    2.6.1 互斥锁的应用 38

    2.6.2 读写锁的应用 40

    2.6.3 信号量的应用 40

    2.7 小结 41

    第3章 数据结构设计 42

    3.1 向量 42

    3.1.1 向量的数据结构定义 42

    3.1.2 向量支持的操作 43

    3.1.3 向量的应用场景 45

    3.2 哈希集 45

    3.2.1 哈希集的数据结构定义 45

    3.2.2 哈希集支持的操作 47

    3.2.3 哈希函数及关键字 48

    3.2.4 哈希集的应用场景 49

    3.3 哈希映射 50

    3.3.1 哈希映射的数据结构定义 50

    3.3.2 哈希映射支持的操作 51

    3.4 二叉堆 51

    3.4.1 二叉堆的数据结构定义 51

    3.4.2 二叉堆支持的操作 52

    3.4.3 二叉堆的应用场景 54

    3.5 队列 54

    3.5.1 队列的数据结构定义 55

    3.5.2 队列支持的操作 55

    3.5.3 队列的应用场景 56

    3.6 链表 56

    3.6.1 链表的数据结构定义 56

    3.6.2 链表支持的操作 57

    3.6.3 链表的应用场景 57

    3.7 zbx_ json和zbx_ json_ parse结构 57

    3.7.1 zbx_ json和zbx_ json_ parse结构的数据结构定义 58

    3.7.2 zbx_ json和zbx_ json_ parse结构支持的操作 58

    3.7.3 zbx_ json和zbx_ parse结构的应用场景 61

    3.8 小结 62

    第4章 数据缓存 63

    4.1 ConfigCache和configuration syncer进程 63

    4.1.1 ConfigCache的数据结构定义 64

    4.1.2 ConfigCache的初始化和首次加载 70

    4.1.3 configuration syncer进程 71

    4.1.4 实时导出ConfigCache数据 74

    4.2 HistoryCache和HistoryIndexCache 74

    4.2.1 数据结构与共享内存的区别 75

    4.2.2 HistoryCache和HistoryIndexCache的数据结构定义 75

    4.2.3 将监控值写入缓存 77

    4.2.4 HistoryCache数据的读取 78

    4.2.5 ids变量 79

    4.3 TrendCache 79

    4.3.1 TrendCache的数据结构定义 79

    4.3.2 TrendCache数据的写入和读取 80

    4.4 ValueCache 81

    4.4.1 ValueCache的数据结构定义 81

    4.4.2 ValueCache数据的写入 84

    4.4.3 ValueCache数据的淘汰 87

    4.4.4 ValueCache数据的读取 89

    4.5 小结 89

    第5章 套接字通信与加密 90

    5.1 TCP/IP套接字通信的过程 90

    5.1.1 多路复用与接受连接过程 91

    5.1.2 接收缓存与发送缓存 92

    5.1.3 超时机制 92

    5.1.4 关闭连接 93

    5.2 ZBXP 93

    5.2.1 ZBXP通信测试工具 94

    5.2.2 服务器-代理的ZBXP 94

    5.2.3 客户端-服务器的通信协议 98

    5.2.4 Web应用-服务器的通信协议 100

    5.3 TCP/IP套接字通信的加密 104

    5.4 小结 105

    第6章 Zabbix日志及其应用 106

    6.1 日志输出 106

    6.1.1 日志输出函数 106

    6.1.2 日志记录格式 107

    6.1.3 日志锁 108

    6.2 日志级别 109

    6.2.1 日志级别的划分 109

    6.2.2 在日志记录中添加日志级别 110

    6.2.3 日志相关代码的统计 111

    6.3 小结 112

    第二部分 Zabbix服务器端的各个进程

    第7章 trapper类和poller类进程——监控数据的收集 114

    7.1 trapper类进程 114

    7.1.1 trapper进程 115

    7.1.2 snmp trapper进程 120

    7.2 poller类进程 120

    7.2.1 poller类进程的工作过程 121

    7.2.2 poller进程 123

    7.2.3 unreachable poller进程 130

    7.2.4 ipmi manager进程和ipmi poller进程 130

    7.2.5 icmp pinger进程 133

    7.2.6 java poller进程 133

    7.2.7 proxy poller进程 134

    7.2.8 http poller进程 134

    7.3 小结 135

    第8章 预处理进程和LLD进程 136

    8.1 进程间通信服务消息格式 137

    8.2 预处理进程 138

    8.2.1 预处理工作总体框架 138

    8.2.2 preprocessing manager进程 140

    8.2.3 preprocessing worker进程 143

    8.3 LLD进程 145

    8.3.1 进程间通信服务中的LLD消息 145

    8.3.2 LLD原始数据的采集和预处理 146

    8.3.3 lld manager进程 146

    8.3.4 lld worker进程 149

    8.4 小结 150

    第9章 history syncer进程——监控数据的计算与入库 151

    9.1 history syncer进程的工作机制 151

    9.1.1 监控值的同步过程 152

    9.1.2 趋势数据的同步过程 154

    9.1.3 事件的生成与处理 155

    9.1.4 动作的处理 160

    9.1.5 history syncer进程之间的协作 161

    9.2 触发器的计算过程 162

    9.2.1 触发器表达式的表示法 162

    9.2.2 表达式函数的计算 163

    9.2.3 外层的计算 165

    9.3 自定义history write模块 165

    9.3.1 接口函数 165

    9.3.2 自定义模块的注册 167

    9.4 小结 168

    第 10章 escalator进程、alert进程族和task manager进程——事件激发的动作 169

    10.1 escalator进程 169

    10.1.1 理解升级序列 169

    10.1.2 工作过程 171

    10.1.3 escalator进程与alert进程族以及task表的关系 173

    10.2 alert进程族 173

    10.2.1 核心数据结构与工作机制 173

    10.2.2 进程间通信服务消息与进程间交互 178

    10.2.3 alert syncer进程 180

    10.2.4 alert manager进程 180

    10.2.5 alerter进程 181

    10.2.6 看门狗逻辑 181

    10.3 task manager进程 182

    10.3.1 远程命令任务和任务执行结果 182

    10.3.2 数据任务和数据结果任务 183

    10.3.3 立即检查任务 184

    10.3.4 问题确认任务和问题关闭任务 185

    10.4 小结 186

    第 11章 Zabbix内部监控 187

    11.1 self-monitoring进程与collector变量 187

    11.1.1 测量指标和单位 188

    11.1.2 数据结构 189

    11.1.3 数据处理过程 190

    11.1.4 数据溢出问题 191

    11.1.5 共享内存中的collector变量 191

    11.2 从数据库获取状态信息 192

    11.3 从缓存获取状态信息 193

    11.3.1 获取ConfigCache的状态信息 193

    11.3.2 获取ValueCache的状态信息 194

    11.3.3 获取HistoryCache和HistoryIndexCache的状态信息 195

    11.3.4 获取VMwareCache的状态信息 195

    11.4 从其他渠道获取信息 195

    11.4.1 从poller进程获取信息 195

    11.4.2 从进程间通信服务获取信息 196

    11.4.3 远程获取数据 196

    11.5 小结 197

    第 12章 Zabbix代理专述 198

    12.1 Zabbix代理端分担的功能 198

    12.1.1 功能划分的现状与评估 198

    12.1.2 未来功能划分的可能性 200

    12.2 Zabbix代理端的工作机制 200

    12.2.1 Zabbix代理端的configuration syncer进程 200

    12.2.2 Zabbix代理端的data sender进程 201

    12.2.3 被动模式下的Zabbix代理 203

    12.2.4 Zabbix代理端的housekeeper进程 204

    12.2.5 Zabbix代理端的heartbeat sender进程 205

    12.3 小结 206

    第 13章 数据库表和housekeeper进程 207

    13.1 Zabbix服务器访问数据库 207

    13.1.1 连接的建立与关闭 208

    13.1.2 SQL语句的构造与运行 209

    13.1.3 事务与数据的一致性 211

    13.1.4 访问量的计算 211

    13.2 进程使用的数据库表 212

    13.2.1 history syncer进程使用的表 212

    13.2.2 lld worker进程使用的表 212

    13.2.3 alert syncer进程使用的表 213

    13.2.4 escalator进程使用的表 213

    13.2.5 proxy poller进程使用的表 214

    13.2.6 configuration syncer进程使用的表 215

    13.3 housekeeper进程 216

    13.3.1 相关结构体定义 216

    13.3.2 清理数据的过程 217

    13.3.3 housekeeping_cleanup()函数 219

    13.4 小结 220

    第 14章 Zabbix java gateway 221

    14.1 JMX监控 221

    14.2 ZJG的内部结构 222

    14.2.1 功能结构 222

    14.2.2 ThreadPoolExecutor线程池 225

    14.2.3 日志输出 226

    14.3 java poller进程与ZJG的交互 227

    14.4 ZJG的安装部署 229

    14.4.1 编译和部署ZJG 229

    14.4.2 启动和停止ZJG 229

    14.5 小结 230

    第三部分 Zabbix客户端及源码构建

    第 15章 Zabbix客户端的工作机制 232

    15.1 Zabbix客户端主进程 232

    15.1.1 Zabbix客户端主进程的工作过程 232

    15.1.2 collector变量与共享内存 234

    15.2 collector进程 236

    15.2.1 collector进程的工作过程 236

    15.2.2 system.cpu.util监控值的收集 237

    15.2.3 proc.cpu.util监控值的收集 239

    15.2.4 vfs.dev.read与vfs.dev.write数据 242

    15.3 listener进程 244

    15.4 active checks进程 246

    15.5 可加载模块 247

    15.5.1 模块加载过程 247

    15.5.2 制作模块文件(.so文件)及测试 248

    15.6 小结 249

    第 16章 Zabbix客户端的原生监控项 250

    16.1 agent类监控项 250

    16.2 simple类监控项 251

    16.3 common类监控项 252

    16.3.1 系统通用监控项 253

    16.3.2 web.page组监控项 254

    16.3.3 vfs.file组监控项 255

    16.3.4 vfs.dir组监控项 256

    16.3.5 dns组监控项 257

    16.3.6 log组监控项 257

    16.3.7 zabbix.stats监控项 258

    16.4 specific类监控项 259

    16.4.1 kernel组监控项 259

    16.4.2 net组监控项 260

    16.4.3 proc组监控项 260

    16.4.4 文件系统监控项 261

    16.4.5 块设备监控项 262

    16.4.6 内存监控项 263

    16.4.7 系统专用监控项 263

    16.4.8 传感器监控项 266

    16.5 hostname监控项 266

    16.6 小结 267

    第 17章 Zabbix的构建过程 268

    17.1 总体构建过程 268

    17.1.1 源码文件的目录结构 268

    17.1.2 gcc的构建过程 269

    17.2 configure过程 270

    17.2.1 理解configure.ac文件 271

    17.2.2 理解aclocal.m4文件 272

    17.2.3 理解configure脚本 273

    17.3 make过程 276

    17.3.1 Makefile文件的内容结构 277

    17.3.2 理解Makefile.am文件 280

    17.3.3 src目录的构建过程 283

    17.4 make install过程 284

    17.5 Zabbix客户端的构建过程 284

    17.6 Zabbix的构建过程示例 285

    17.7 小结 286

    第四部分 Zabbix Web

    第 18章 Zabbix Web API 288

    18.1 类的关系与类的职责 288

    18.2 设计模式 291

    18.2.1 单例模式 291

    18.2.2 类工厂模式 291

    18.3 jsonrpc消息的处理过程 292

    18.3.1 准备阶段 293

    18.3.2 消息处理阶段 294

    18.4 扩展Zabbix Web API 297

    18.4.1 相关源码文件的组织 297

    18.4.2 扩展方法示例 298

    18.5 小结 299

    第 19章 Zabbix Web应用 300

    19.1 Zabbix的MVC模式 300

    19.1.1 MVC中的类图与类的职责 300

    19.1.2 请求处理过程 302

    19.2 前端页面的结构与构建 304

    19.2.1 布局与视图 305

    19.2.2 HTML的构建过程 307

    19.3 CController类 309

    19.4 Zabbix Web应用的扩展 309

    19.4.1 源码文件的目录结构 309

    19.4.2 在页面增加筛选条件 310

    19.5 小结 312
  • 内容简介:
    Zabbix是一个开源监控系统,在我国各类信息技术企业和金融企业中被广泛应用。本书主要从源码和功能两个角度,分析Zabbix监控系统的底层工作机制。本书首先讲述跨进程的总体工作机制,然后按照监控数据的处理流程依次讲解Zabbix服务器端和Zabbix客户端各类进程的内部工作机制,*后讲述Zabbix Web应用的工作机制。本书能够帮助读者深入理解Zabbix系统的核心原理,有助于在运维工作中快速定位和解决问题。
      本书适合具有一定Zabbix应用经验并想要进一步理解Zabbix工作机制的读者阅读,包括相关企业的运维人员、技术主管、架构师、产品经理和决策者等。
  • 作者简介:
    鲍光亚,本科毕业于山东大学,精通Zabbix和Prometheus监控软件,对IT系统和服务监控软件有深入研究。他在2014年至2019年就职于京东,从事Zabbix监控系统的运维和相关开发工作,对分布式、并行软件开发和项目管理具有浓厚兴趣。他在工作期间始终践行终身学习理念,不断充实、提高自己,在2012年获得了中国社会科学院研究生院MBA学位。作者个人邮箱:bgy.cn@outlook.com。
  • 目录:
    第 一部分 Zabbix的基础工作机制

    第 1章 Zabbix总体架构及演变 2

    1.1 监控系统概述 2

    1.2 Zabbix的总体架构 3

    1.2.1 Zabbix服务器 4

    1.2.2 Zabbix代理 6

    1.2.3 Zabbix java gateway 7

    1.2.4 Zabbix客户端 7

    1.3 Zabbix服务器的技术演进 7

    1.3.1 Zabbix 2.2版本的Zabbix服务器 7

    1.3.2 Zabbix 3.0版本的Zabbix服务器 8

    1.3.3 Zabbix 4.0版本的Zabbix服务器 8

    1.3.4 Zabbix 5.0版本的Zabbix服务器 9

    1.4 小结 9

    第 2章 Zabbix进程间通信与协调 10

    2.1 主进程和子进程的创建 10

    2.1.1 主进程的启动和值守化 11

    2.1.2 子进程的分类和创建 13

    2.1.3 子进程从主进程继承的内容 17

    2.1.4 进程的回收 20

    2.2 信号捕捉与处理 21

    2.2.1 Zabbix进程处理的信号类型 21

    2.2.2 信号处理函数 22

    2.2.3 信号的触发与接收 24

    2.2.4 用日志跟踪信号 24

    2.3 Zabbix的共享内存 25

    2.3.1 共享内存结构——内存池 25

    2.3.2 共享内存的分配与释放 28

    2.3.3 共享内存状态的获取 30

    2.3.4 Zabbix共享内存举例 31

    2.4 TCP/IP套接字 32

    2.4.1 zbx_socket_t结构体 32

    2.4.2 作为服务器端的套接字 33

    2.4.3 作为客户端的套接字 33

    2.5 基于Unix域套接字的进程间通信服务 34

    2.5.1 Libevent库在进程间通信服务中的应用 34

    2.5.2 进程间通信服务的数据结构及其工作过程 35

    2.5.3 进程间通信服务的初始化 37

    2.5.4 进程间通信服务的通信协议 37

    2.5.5 从日志查看进程间通信服务消息 37

    2.6 锁与信号量 38

    2.6.1 互斥锁的应用 38

    2.6.2 读写锁的应用 40

    2.6.3 信号量的应用 40

    2.7 小结 41

    第3章 数据结构设计 42

    3.1 向量 42

    3.1.1 向量的数据结构定义 42

    3.1.2 向量支持的操作 43

    3.1.3 向量的应用场景 45

    3.2 哈希集 45

    3.2.1 哈希集的数据结构定义 45

    3.2.2 哈希集支持的操作 47

    3.2.3 哈希函数及关键字 48

    3.2.4 哈希集的应用场景 49

    3.3 哈希映射 50

    3.3.1 哈希映射的数据结构定义 50

    3.3.2 哈希映射支持的操作 51

    3.4 二叉堆 51

    3.4.1 二叉堆的数据结构定义 51

    3.4.2 二叉堆支持的操作 52

    3.4.3 二叉堆的应用场景 54

    3.5 队列 54

    3.5.1 队列的数据结构定义 55

    3.5.2 队列支持的操作 55

    3.5.3 队列的应用场景 56

    3.6 链表 56

    3.6.1 链表的数据结构定义 56

    3.6.2 链表支持的操作 57

    3.6.3 链表的应用场景 57

    3.7 zbx_ json和zbx_ json_ parse结构 57

    3.7.1 zbx_ json和zbx_ json_ parse结构的数据结构定义 58

    3.7.2 zbx_ json和zbx_ json_ parse结构支持的操作 58

    3.7.3 zbx_ json和zbx_ parse结构的应用场景 61

    3.8 小结 62

    第4章 数据缓存 63

    4.1 ConfigCache和configuration syncer进程 63

    4.1.1 ConfigCache的数据结构定义 64

    4.1.2 ConfigCache的初始化和首次加载 70

    4.1.3 configuration syncer进程 71

    4.1.4 实时导出ConfigCache数据 74

    4.2 HistoryCache和HistoryIndexCache 74

    4.2.1 数据结构与共享内存的区别 75

    4.2.2 HistoryCache和HistoryIndexCache的数据结构定义 75

    4.2.3 将监控值写入缓存 77

    4.2.4 HistoryCache数据的读取 78

    4.2.5 ids变量 79

    4.3 TrendCache 79

    4.3.1 TrendCache的数据结构定义 79

    4.3.2 TrendCache数据的写入和读取 80

    4.4 ValueCache 81

    4.4.1 ValueCache的数据结构定义 81

    4.4.2 ValueCache数据的写入 84

    4.4.3 ValueCache数据的淘汰 87

    4.4.4 ValueCache数据的读取 89

    4.5 小结 89

    第5章 套接字通信与加密 90

    5.1 TCP/IP套接字通信的过程 90

    5.1.1 多路复用与接受连接过程 91

    5.1.2 接收缓存与发送缓存 92

    5.1.3 超时机制 92

    5.1.4 关闭连接 93

    5.2 ZBXP 93

    5.2.1 ZBXP通信测试工具 94

    5.2.2 服务器-代理的ZBXP 94

    5.2.3 客户端-服务器的通信协议 98

    5.2.4 Web应用-服务器的通信协议 100

    5.3 TCP/IP套接字通信的加密 104

    5.4 小结 105

    第6章 Zabbix日志及其应用 106

    6.1 日志输出 106

    6.1.1 日志输出函数 106

    6.1.2 日志记录格式 107

    6.1.3 日志锁 108

    6.2 日志级别 109

    6.2.1 日志级别的划分 109

    6.2.2 在日志记录中添加日志级别 110

    6.2.3 日志相关代码的统计 111

    6.3 小结 112

    第二部分 Zabbix服务器端的各个进程

    第7章 trapper类和poller类进程——监控数据的收集 114

    7.1 trapper类进程 114

    7.1.1 trapper进程 115

    7.1.2 snmp trapper进程 120

    7.2 poller类进程 120

    7.2.1 poller类进程的工作过程 121

    7.2.2 poller进程 123

    7.2.3 unreachable poller进程 130

    7.2.4 ipmi manager进程和ipmi poller进程 130

    7.2.5 icmp pinger进程 133

    7.2.6 java poller进程 133

    7.2.7 proxy poller进程 134

    7.2.8 http poller进程 134

    7.3 小结 135

    第8章 预处理进程和LLD进程 136

    8.1 进程间通信服务消息格式 137

    8.2 预处理进程 138

    8.2.1 预处理工作总体框架 138

    8.2.2 preprocessing manager进程 140

    8.2.3 preprocessing worker进程 143

    8.3 LLD进程 145

    8.3.1 进程间通信服务中的LLD消息 145

    8.3.2 LLD原始数据的采集和预处理 146

    8.3.3 lld manager进程 146

    8.3.4 lld worker进程 149

    8.4 小结 150

    第9章 history syncer进程——监控数据的计算与入库 151

    9.1 history syncer进程的工作机制 151

    9.1.1 监控值的同步过程 152

    9.1.2 趋势数据的同步过程 154

    9.1.3 事件的生成与处理 155

    9.1.4 动作的处理 160

    9.1.5 history syncer进程之间的协作 161

    9.2 触发器的计算过程 162

    9.2.1 触发器表达式的表示法 162

    9.2.2 表达式函数的计算 163

    9.2.3 外层的计算 165

    9.3 自定义history write模块 165

    9.3.1 接口函数 165

    9.3.2 自定义模块的注册 167

    9.4 小结 168

    第 10章 escalator进程、alert进程族和task manager进程——事件激发的动作 169

    10.1 escalator进程 169

    10.1.1 理解升级序列 169

    10.1.2 工作过程 171

    10.1.3 escalator进程与alert进程族以及task表的关系 173

    10.2 alert进程族 173

    10.2.1 核心数据结构与工作机制 173

    10.2.2 进程间通信服务消息与进程间交互 178

    10.2.3 alert syncer进程 180

    10.2.4 alert manager进程 180

    10.2.5 alerter进程 181

    10.2.6 看门狗逻辑 181

    10.3 task manager进程 182

    10.3.1 远程命令任务和任务执行结果 182

    10.3.2 数据任务和数据结果任务 183

    10.3.3 立即检查任务 184

    10.3.4 问题确认任务和问题关闭任务 185

    10.4 小结 186

    第 11章 Zabbix内部监控 187

    11.1 self-monitoring进程与collector变量 187

    11.1.1 测量指标和单位 188

    11.1.2 数据结构 189

    11.1.3 数据处理过程 190

    11.1.4 数据溢出问题 191

    11.1.5 共享内存中的collector变量 191

    11.2 从数据库获取状态信息 192

    11.3 从缓存获取状态信息 193

    11.3.1 获取ConfigCache的状态信息 193

    11.3.2 获取ValueCache的状态信息 194

    11.3.3 获取HistoryCache和HistoryIndexCache的状态信息 195

    11.3.4 获取VMwareCache的状态信息 195

    11.4 从其他渠道获取信息 195

    11.4.1 从poller进程获取信息 195

    11.4.2 从进程间通信服务获取信息 196

    11.4.3 远程获取数据 196

    11.5 小结 197

    第 12章 Zabbix代理专述 198

    12.1 Zabbix代理端分担的功能 198

    12.1.1 功能划分的现状与评估 198

    12.1.2 未来功能划分的可能性 200

    12.2 Zabbix代理端的工作机制 200

    12.2.1 Zabbix代理端的configuration syncer进程 200

    12.2.2 Zabbix代理端的data sender进程 201

    12.2.3 被动模式下的Zabbix代理 203

    12.2.4 Zabbix代理端的housekeeper进程 204

    12.2.5 Zabbix代理端的heartbeat sender进程 205

    12.3 小结 206

    第 13章 数据库表和housekeeper进程 207

    13.1 Zabbix服务器访问数据库 207

    13.1.1 连接的建立与关闭 208

    13.1.2 SQL语句的构造与运行 209

    13.1.3 事务与数据的一致性 211

    13.1.4 访问量的计算 211

    13.2 进程使用的数据库表 212

    13.2.1 history syncer进程使用的表 212

    13.2.2 lld worker进程使用的表 212

    13.2.3 alert syncer进程使用的表 213

    13.2.4 escalator进程使用的表 213

    13.2.5 proxy poller进程使用的表 214

    13.2.6 configuration syncer进程使用的表 215

    13.3 housekeeper进程 216

    13.3.1 相关结构体定义 216

    13.3.2 清理数据的过程 217

    13.3.3 housekeeping_cleanup()函数 219

    13.4 小结 220

    第 14章 Zabbix java gateway 221

    14.1 JMX监控 221

    14.2 ZJG的内部结构 222

    14.2.1 功能结构 222

    14.2.2 ThreadPoolExecutor线程池 225

    14.2.3 日志输出 226

    14.3 java poller进程与ZJG的交互 227

    14.4 ZJG的安装部署 229

    14.4.1 编译和部署ZJG 229

    14.4.2 启动和停止ZJG 229

    14.5 小结 230

    第三部分 Zabbix客户端及源码构建

    第 15章 Zabbix客户端的工作机制 232

    15.1 Zabbix客户端主进程 232

    15.1.1 Zabbix客户端主进程的工作过程 232

    15.1.2 collector变量与共享内存 234

    15.2 collector进程 236

    15.2.1 collector进程的工作过程 236

    15.2.2 system.cpu.util监控值的收集 237

    15.2.3 proc.cpu.util监控值的收集 239

    15.2.4 vfs.dev.read与vfs.dev.write数据 242

    15.3 listener进程 244

    15.4 active checks进程 246

    15.5 可加载模块 247

    15.5.1 模块加载过程 247

    15.5.2 制作模块文件(.so文件)及测试 248

    15.6 小结 249

    第 16章 Zabbix客户端的原生监控项 250

    16.1 agent类监控项 250

    16.2 simple类监控项 251

    16.3 common类监控项 252

    16.3.1 系统通用监控项 253

    16.3.2 web.page组监控项 254

    16.3.3 vfs.file组监控项 255

    16.3.4 vfs.dir组监控项 256

    16.3.5 dns组监控项 257

    16.3.6 log组监控项 257

    16.3.7 zabbix.stats监控项 258

    16.4 specific类监控项 259

    16.4.1 kernel组监控项 259

    16.4.2 net组监控项 260

    16.4.3 proc组监控项 260

    16.4.4 文件系统监控项 261

    16.4.5 块设备监控项 262

    16.4.6 内存监控项 263

    16.4.7 系统专用监控项 263

    16.4.8 传感器监控项 266

    16.5 hostname监控项 266

    16.6 小结 267

    第 17章 Zabbix的构建过程 268

    17.1 总体构建过程 268

    17.1.1 源码文件的目录结构 268

    17.1.2 gcc的构建过程 269

    17.2 configure过程 270

    17.2.1 理解configure.ac文件 271

    17.2.2 理解aclocal.m4文件 272

    17.2.3 理解configure脚本 273

    17.3 make过程 276

    17.3.1 Makefile文件的内容结构 277

    17.3.2 理解Makefile.am文件 280

    17.3.3 src目录的构建过程 283

    17.4 make install过程 284

    17.5 Zabbix客户端的构建过程 284

    17.6 Zabbix的构建过程示例 285

    17.7 小结 286

    第四部分 Zabbix Web

    第 18章 Zabbix Web API 288

    18.1 类的关系与类的职责 288

    18.2 设计模式 291

    18.2.1 单例模式 291

    18.2.2 类工厂模式 291

    18.3 jsonrpc消息的处理过程 292

    18.3.1 准备阶段 293

    18.3.2 消息处理阶段 294

    18.4 扩展Zabbix Web API 297

    18.4.1 相关源码文件的组织 297

    18.4.2 扩展方法示例 298

    18.5 小结 299

    第 19章 Zabbix Web应用 300

    19.1 Zabbix的MVC模式 300

    19.1.1 MVC中的类图与类的职责 300

    19.1.2 请求处理过程 302

    19.2 前端页面的结构与构建 304

    19.2.1 布局与视图 305

    19.2.2 HTML的构建过程 307

    19.3 CController类 309

    19.4 Zabbix Web应用的扩展 309

    19.4.1 源码文件的目录结构 309

    19.4.2 在页面增加筛选条件 310

    19.5 小结 312
查看详情
相关图书 / 更多
深入理解Zabbix监控系统
深入理解移动互联网
吴功宜 吴英 编著
深入理解Zabbix监控系统
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解Zabbix监控系统
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解Zabbix监控系统
深入浅出C#(视频教学版)
赵云
深入理解Zabbix监控系统
深入实践Kotlin元编程
霍丙乾 著
深入理解Zabbix监控系统
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解Zabbix监控系统
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解Zabbix监控系统
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解Zabbix监控系统
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解Zabbix监控系统
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解Zabbix监控系统
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解Zabbix监控系统
深入人心:数字产品设计的底层逻辑
林婕