万本电子书0元读

万本电子书0元读

顶部广告

深入理解Zabbix监控系统电子书

1.从源码级别分析Zabbix本质,指导运维人员迅速定位并解决问题; 2.全面覆盖Zabbix 5.0源码,深剖析监控系统核心原理; 3.超越单纯使用,指导Zabbix用户一步扩展监控系统功能; 4.多位软件运维、监控专家大力推荐。

售       价:¥

纸质售价:¥46.00购买纸书

110人正在读 | 0人评论 6.2

作       者:鲍光亚 著

出  版  社:人民邮电出版社有限公司

出版时间:2021-04-01

字       数:37.3万

所属分类: 科技 > 计算机/网络 > 多媒体/数据通信

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Zabbix是一个源监控系统,在我国各类信息技术企业和金融企业中被广泛应用。本书主要从源码和功能两个角度,分析Zabbix监控系统的底层工作机制。本书首先讲述跨程的总体工作机制,然后按照监控数据的处理流程依次讲解Zabbix服务器端和Zabbix客户端各类程的内部工作机制,*后讲述Zabbix Web应用的工作机制。本书能够帮助读者深理解Zabbix系统的核心原理,有助于在运维工作中快速定位和解决问题。 本书适合具有一定Zabbix应用经验并想要一步理解Zabbix工作机制的读者阅读,包括相关企业的运维人员、技术主管、架构师、产品经理和决策者等。<br/>【推荐语】<br/>1.从源码级别分析Zabbix本质,指导运维人员迅速定位并解决问题; 2.全面覆盖Zabbix 5.0源码,深剖析监控系统核心原理; 3.超越单纯使用,指导Zabbix用户一步扩展监控系统功能; 4.多位软件运维、监控专家大力推荐。<br/>【作者】<br/>鲍光亚,本科毕业于山东大学,精通Zabbix和Prometheus监控软件,对IT系统和服务监控软件有深研究。他在2014年至2019年就职于,从事Zabbix监控系统的运维和相关发工作,对分布式、并行软件发和项目管理具有浓厚兴趣。他在工作期间始终践行终身学习理念,不断充实、提高自己,在2012年获得了中国社会科学院研究生院MBA学位。作者个人邮箱:bgy.cn@outlook.com。<br/>
目录展开

版 权

内容提要

前 言

作者简介

资源与支持

第一部分 Zabbix的基础工作机制

第1章 Zabbix总体架构及演变

1.1 监控系统概述

1.2 Zabbix的总体架构

1.2.1 Zabbix服务器

1.2.2 Zabbix代理

1.2.3 Zabbix java gateway

1.2.4 Zabbix客户端

1.3 Zabbix服务器的技术演进

1.3.1 Zabbix 2.2版本的Zabbix服务器

1.3.2 Zabbix 3.0版本的Zabbix服务器

1.3.3 Zabbix 4.0版本的Zabbix服务器

1.3.4 Zabbix 5.0版本的Zabbix服务器

1.4 小结

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

2.1 主进程和子进程的创建

2.1.1 主进程的启动和值守化

2.1.2 子进程的分类和创建

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

2.1.4 进程的回收

2.2 信号捕捉与处理

2.2.1 Zabbix进程处理的信号类型

2.2.2 信号处理函数

2.2.3 信号的触发与接收

2.2.4 用日志跟踪信号

2.3 Zabbix的共享内存

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

2.3.2 共享内存的分配与释放

2.3.3 共享内存状态的获取

2.3.4 Zabbix共享内存举例

2.4 TCP/IP套接字

2.4.1 zbx_socket_t结构体

2.4.2 作为服务器端的套接字

2.4.3 作为客户端的套接字

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

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

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

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

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

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

2.6 锁与信号量

2.6.1 互斥锁的应用

2.6.2 读写锁的应用

2.6.3 信号量的应用

2.7 小结

第3章 数据结构设计

3.1 向量

3.1.1 向量的数据结构定义

3.1.2 向量支持的操作

3.1.3 向量的应用场景

3.2 哈希集

3.2.1 哈希集的数据结构定义

3.2.2 哈希集支持的操作

3.2.3 哈希函数及关键字

3.2.4 哈希集的应用场景

3.3 哈希映射

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

3.3.2 哈希映射支持的操作

3.4 二叉堆

3.4.1 二叉堆的数据结构定义

3.4.2 二叉堆支持的操作

3.4.3 二叉堆的应用场景

3.5 队列

3.5.1 队列的数据结构定义

3.5.2 队列支持的操作

3.5.3 队列的应用场景

3.6 链表

3.6.1 链表的数据结构定义

3.6.2 链表支持的操作

3.6.3 链表的应用场景

3.7 zbx_json和zbx_json_parse结构

3.7.1 zbx_json和zbx_json_parse结构的数据结构定义

3.7.2 zbx_json和zbx_json_parse结构支持的操作

3.7.3 zbx_json和zbx_parse结构的应用场景

3.8 小结

第4章 数据缓存

4.1 ConfigCache和configuration syncer进程

4.1.1 ConfigCache的数据结构定义

4.1.2 ConfigCache的初始化和首次加载

4.1.3 configuration syncer进程

4.1.4 实时导出ConfigCache数据

4.2 HistoryCache和HistoryIndexCache

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

4.2.2 HistoryCache和HistoryIndexCache的数据结构定义

4.2.3 将监控值写入缓存

4.2.4 HistoryCache数据的读取

4.2.5 ids变量

4.3 TrendCache

4.3.1 TrendCache的数据结构定义

4.3.2 TrendCache数据的写入和读取

4.4 ValueCache

4.4.1 ValueCache的数据结构定义

4.4.2 ValueCache数据的写入

4.4.3 ValueCache数据的淘汰

4.4.4 ValueCache数据的读取

4.5 小结

第5章 套接字通信与加密

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

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

5.1.2 接收缓存与发送缓存

5.1.3 超时机制

5.1.4 关闭连接

5.2 ZBXP

5.2.1 ZBXP通信测试工具

5.2.2 服务器-代理的ZBXP

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

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

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

5.4 小结

第6章 Zabbix日志及其应用

6.1 日志输出

6.1.1 日志输出函数

6.1.2 日志记录格式

6.1.3 日志锁

6.2 日志级别

6.2.1 日志级别的划分

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

6.2.3 日志相关代码的统计

6.3 小结

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

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

7.1 trapper类进程

7.1.1 trapper进程

7.1.2 snmp trapper进程

7.2 poller类进程

7.2.1 poller类进程的工作过程

7.2.2 poller进程

7.2.3 unreachable poller进程

7.2.4 ipmi manager进程和ipmi poller进程

7.2.5 icmp pinger进程

7.2.6 java poller进程

7.2.7 proxy poller进程

7.2.8 http poller进程

7.3 小结

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

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

8.2 预处理进程

8.2.1 预处理工作总体框架

8.2.2 preprocessing manager进程

8.2.3 preprocessing worker进程

8.3 LLD进程

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

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

8.3.3 lld manager进程

8.3.4 lld worker进程

8.4 小结

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

9.1 history syncer进程的工作机制

9.1.1 监控值的同步过程

9.1.2 趋势数据的同步过程

9.1.3 事件的生成与处理

9.1.4 动作的处理

9.1.5 history syncer进程之间的协作

9.2 触发器的计算过程

9.2.1 触发器表达式的表示法

9.2.2 表达式函数的计算

9.2.3 外层的计算

9.3 自定义history write模块

9.3.1 接口函数

9.3.2 自定义模块的注册

9.4 小结

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

10.1 escalator进程

10.1.1 理解升级序列

10.1.2 工作过程

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

10.2 alert进程族

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

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

10.2.3 alert syncer进程

10.2.4 alert manager进程

10.2.5 alerter进程

10.2.6 看门狗逻辑

10.3 task manager进程

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

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

10.3.3 立即检查任务

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

10.4 小结

第11章 Zabbix内部监控

11.1 self-monitoring进程与collector变量

11.1.1 测量指标和单位

11.1.2 数据结构

11.1.3 数据处理过程

11.1.4 数据溢出问题

11.1.5 共享内存中的collector变量

11.2 从数据库获取状态信息

11.3 从缓存获取状态信息

11.3.1 获取ConfigCache的状态信息

11.3.2 获取ValueCache的状态信息

11.3.3 获取HistoryCache和HistoryIndexCache的状态信息

11.3.4 获取VMwareCache的状态信息

11.4 从其他渠道获取信息

11.4.1 从poller进程获取信息

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

11.4.3 远程获取数据

11.5 小结

第12章 Zabbix代理专述

12.1 Zabbix代理端分担的功能

12.1.1 功能划分的现状与评估

12.1.2 未来功能划分的可能性

12.2 Zabbix代理端的工作机制

12.2.1 Zabbix代理端的configuration syncer进程

12.2.2 Zabbix代理端的data sender进程

12.2.3 被动模式下的Zabbix代理

12.2.4 Zabbix代理端的housekeeper进程

12.2.5 Zabbix代理端的heartbeat sender进程

12.3 小结

第13章 数据库表和housekeeper进程

13.1 Zabbix服务器访问数据库

13.1.1 连接的建立与关闭

13.1.2 SQL语句的构造与运行

13.1.3 事务与数据的一致性

13.1.4 访问量的计算

13.2 进程使用的数据库表

13.2.1 history syncer进程使用的表

13.2.2 lld worker进程使用的表

13.2.3 alert syncer进程使用的表

13.2.4 escalator进程使用的表

13.2.5 proxy poller进程使用的表

13.2.6 configuration syncer进程使用的表

13.3 housekeeper进程

13.3.1 相关结构体定义

13.3.2 清理数据的过程

13.3.3 housekeeping_cleanup()函数

13.4 小结

第14章 Zabbix java gateway

14.1 JMX监控

14.2 ZJG的内部结构

14.2.1 功能结构

14.2.2 ThreadPoolExecutor线程池

14.2.3 日志输出

14.3 java poller进程与ZJG的交互

14.4 ZJG的安装部署

14.4.1 编译和部署ZJG

14.4.2 启动和停止ZJG

14.5 小结

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

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

15.1 Zabbix客户端主进程

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

15.1.2 collector变量与共享内存

15.2 collector进程

15.2.1 collector进程的工作过程

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

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

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

15.3 listener进程

15.4 active checks进程

15.5 可加载模块

15.5.1 模块加载过程

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

15.6 小结

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

16.1 agent类监控项

16.2 simple类监控项

16.3 common类监控项

16.3.1 系统通用监控项

16.3.2 web.page组监控项

16.3.3 vfs.file组监控项

16.3.4 vfs.dir组监控项

16.3.5 dns组监控项

16.3.6 log组监控项

16.3.7 zabbix.stats监控项

16.4 specific类监控项

16.4.1 kernel组监控项

16.4.2 net组监控项

16.4.3 proc组监控项

16.4.4 文件系统监控项

16.4.5 块设备监控项

16.4.6 内存监控项

16.4.7 系统专用监控项

16.4.8 传感器监控项

16.5 hostname监控项

16.6 小结

第17章 Zabbix的构建过程

17.1 总体构建过程

17.1.1 源码文件的目录结构

17.1.2 gcc的构建过程

17.2 configure过程

17.2.1 理解configure.ac文件

17.2.2 理解aclocal.m4文件

17.2.3 理解configure脚本

17.3 make过程

17.3.1 Makefile文件的内容结构

17.3.2 理解Makefile.am文件

17.3.3 src目录的构建过程

17.4 make install过程

17.5 Zabbix客户端的构建过程

17.6 Zabbix的构建过程示例

17.7 小结

第四部分 Zabbix Web

第18章 Zabbix Web API

18.1 类的关系与类的职责

18.2 设计模式

18.2.1 单例模式

18.2.2 类工厂模式

18.3 jsonrpc消息的处理过程

18.3.1 准备阶段

18.3.2 消息处理阶段

18.4 扩展Zabbix Web API

18.4.1 相关源码文件的组织

18.4.2 扩展方法示例

18.5 小结

第19章 Zabbix Web应用

19.1 Zabbix的MVC模式

19.1.1 MVC中的类图与类的职责

19.1.2 请求处理过程

19.2 前端页面的结构与构建

19.2.1 布局与视图

19.2.2 HTML的构建过程

19.3 CController类

19.4 Zabbix Web应用的扩展

19.4.1 源码文件的目录结构

19.4.2 在页面增加筛选条件

19.5 小结

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部