|
|
这套 Zabbix 源码解析课程,讲师是实打实的一线运维出身,不是那种只讲理论的培训师。
他目前在一家上市公司做资深运维工程师,12年经验,主导过好几家银行金融机构的平台运维体系建设。手里有RHCA、CKA、OCP这些认证,Linux系统运维、云平台架构、自动化运维都是日常在碰的东西。
课程内容偏实战,源码解析这块会结合企业里真实的运维场景来讲,不是单纯读代码。对正在用Zabbix、或者准备深入监控体系的运维来说,能少走不少弯路。
Zabbix源码解析 (图1)
如果你已经会搭Zabbix、想搞清楚底层逻辑,或者团队里正面临大规模监控的部署问题,这套内容会比较对路。纯新手建议先补基础再来看。
你将会学到:
掌握Zabbix核心机制与调优技能,具备源码级排障能力,快速提升监控系统稳定性与个人运维竞争力。
课程简介:
一、课程简介:
本课程《Zabbix源码解析4.0(基础版)》将带您从源码层面深入理解Zabbix监控系统的内部工作机制。课程内容详尽、结构清晰,不仅涵盖Zabbix核心组件的运行原理,还结合实战场景,全方位剖析Zabbix的数据采集 → 数据处理 → 数据存储全链路流程。
课程以C语言为基础,结合Linux系统环境,引导学员完成Zabbix的源码编译、调试与二次开发。您将系统掌握Zabbix各核心进程(如主进程、配置同步进程、主动/被动采集进程、预处理进程、告警管理进程等)的职责与协作机制,并具备源码级故障定位、性能瓶颈分析及参数调优能力。
本课程专注于Zabbix 4.0.x版本的源码解析,旨在为学员提供深入理解Zabbix核心机制与架构的基础。尽管课程主要聚焦于Zabbix 4.0.x,但对于有兴趣了解Zabbix 5.0.x和6.0.x源码的同学同样具有极高价值。据统计,Zabbix 4.0.x与5.0.x版本间大约80%的代码是相同的,其中剩余20%的差异主要包括新增进程及功能优化;而Zabbix 6.0.x与4.0.x相比,约有60%的代码保持一致。因此,掌握Zabbix 4.0.x源码不仅能够帮助您轻松理解5.0.x版本中大部分代码,也为进一步学习6.0.x版本打下坚实基础。
无论您是一线运维工程师,还是对监控系统源码感兴趣的开发者,本课程都将为您打开Zabbix底层世界的大门,助您从“会用”迈向“精通”。
二、课程分级
基础版:本部分课程时长超过2000分钟,涵盖了从环境搭建到各个关键进程源码剖析等内容,适合希望深入了解Zabbix工作机制的所有层次的技术人员。
高级版:计划中的高级版课程将包含额外的4000多分钟视频内容,重点在于更深层次的代码讲解、极限性能测试以及复杂故障排除技巧。这部分课程目前正处于紧张筹备阶段,预计会为那些渴望在Zabbix领域达到专业水平的人士提供无与伦比的学习资源。
通过本课程的学习,无论您是运维新手还是经验丰富的IT专家,都将获得宝贵的技能提升机会,从而更好地应对日常工作中的挑战,并为进一步探索最新版Zabbix奠定坚实的基础。
三、课程大纲:
章节一:课程介绍
• 课程简介:了解课程的背景、目标和适用人群,为学习做准备。
• 课程定位:明确本课程在Zabbix学习路径中的位置,以及与其他相关课程的关系,帮助学员设定学习方向。
章节二:环境准备
• 安装虚拟机,编译zabbix:详细介绍如何搭建Zabbix的学习环境,确保每位学员都能顺利开始。
• 第一次修改代码,添加中文注释:引导学员进行简单的代码改动,熟悉开发环境,为后续深入学习打下基础。
• 运行日志切割脚本,查看日志文件:教授如何监控和管理应用日志,便于问题排查和系统维护。
章节三:主进程源码讲解(main-process)
• 主进程功能介绍:概述主进程在Zabbix架构中的角色和作用,为主进程的学习奠定理论基础。
• 主进程源码讲解:深入解析主进程的核心逻辑与实现细节,理解其工作原理。
章节四:配置同步进程源码讲解(configuration-syncer)
• 配置同步进程功能介绍:解释配置同步进程的工作原理及其重要性,强调其在系统中的角色。
• 配置同步进程源码讲解:通过实例分析配置同步的具体实现,加深对概念的理解。
章节五:主动采集进程源码讲解(poller)
• 主动采集进程功能介绍:介绍主动采集进程的功能和应用场景,了解其实用价值。
• 主动采集进程源码讲解:详细讲解主动采集进程的源码结构,掌握其工作机制。
章节六:被动接收进程源码讲解(trapper)
• 被动接收进程功能介绍:说明被动接收进程的作用及其在数据收集中的地位。
• 被动接收进程源码讲解:分析被动接收进程的源码,揭示其实现方式。
章节七:预处理管理进程源码讲解(preprocessing-manager)
• 预处理管理进程功能介绍:描述预处理管理进程的主要职责,认识其对数据处理的重要性。
• 预处理管理进程源码讲解:研究预处理管理进程的内部逻辑,深化理解。
章节八:预处理工作进程源码讲解(preprocessing-worker)
• 预处理工作进程功能介绍:讲解预处理工作进程的功能,明确它在数据流中的作用。
• 预处理工作进程源码讲解:拆解预处理工作进程的代码,学习其实现细节。
章节九:数据入库进程源码讲解(dbsyncer)
• 数据入库进程功能介绍:阐述数据入库进程的任务,强调其在数据持久化中的关键作用。
• 数据入库进程源码讲解:解读数据入库进程的源码,掌握数据存储机制。
章节十:ping类型采集进程源码讲解(pinger)
• ping类型采集进程功能介绍:介绍ping类型采集进程的功能和使用场合,了解其在网络监测中的用途。
• ping类型采集进程源码讲解:解析ping类型采集进程的源码,熟悉其实现流程。
章节十一:web场景类型采集进程源码讲解(http-poller)
• web场景类型采集进程功能介绍:讲述web场景类型采集进程的应用领域,展现其在现代网络监控中的价值。
• web场景类型采集进程源码讲解:深入探究web场景类型采集进程的代码,理解其设计思想。
章节十二:被动模式采集进程源码讲解(proxy-poller)
• 被动模式采集进程功能介绍:介绍被动模式采集进程的工作模式及其应用场景。
• 被动模式采集进程源码讲解:分析被动模式采集进程的源码,了解其实现细节。
章节十三:不可达类型采集进程源码讲解(unreachable-poller)
• 不可达类型采集进程功能介绍:解释不可达类型采集进程的作用,以及它如何识别网络故障。
• 不可达类型采集进程源码讲解:深入研究不可达类型采集进程的源码,掌握其实现原理。
章节十四:自监控进程源码讲解(self-monitoring)
• 自监控进程功能介绍:描述自监控进程的功能,了解其在保障系统稳定性方面的作用。
• 自监控进程源码讲解:剖析自监控进程的源码,学习其实现细节。
章节十五:管家进程源码讲解(housekeeper)
• 管家进程功能介绍:介绍管家进程的任务,了解其在系统维护中的角色。
• 管家进程源码讲解:详细解读管家进程的源码,掌握其工作流程。
章节十六:LLD自发现进程源码讲解(discoverer)
• LLD自发现进程功能介绍:讲解LLD自发现进程的功能,认识其在自动化运维中的意义。
• LLD自发现进程源码讲解:分析LLD自发现进程的源码,理解其实现方式。
章节十七:告警管理进程源码讲解(alert-manager)
• 告警管理进程功能介绍:描述告警管理进程的角色,了解其在事件响应中的重要性。
• 告警管理进程源码讲解:深入研究告警管理进程的源码,掌握其设计思路。
章节十八:告警器进程源码讲解(alerter)
• 告警器进程功能介绍:介绍告警器进程的功能,理解其在通知用户方面的用途。
• 告警器进程源码讲解:解析告警器进程的源码,熟悉其实现细节。
资源目录:
1-1 课程简介.mp4
1-2 各进程职责.mp4
2-1 下载zabbix源码包,并安装虚拟机.mp4
2-2 创建git仓库,上传代码,安装git插件.mp4
2-3 安装系统依赖,编译安装并且配置zabbix.mp4
2-4 添加第一行中文注释,切割日志,课后总结.mp4
3-1 学习目标,修改日志级别.mp4
3-2 main函数讲解.mp4
3-3 守护进程讲解.mp4
3-4 主进程入口函数讲解-上.mp4
3-5 主进程入口函数讲解-下.mp4
4-1 安装zabbix-proxy和zabbix-agent.mp4
4-2 configuration syncer进程的完整启动流程.mp4
4-3 DCsync_configuration()函数讲解.mp4
4-4 zbx_dbsync_init()函数讲解.mp4
4-5 zbx_dbsync_compare_config()函数讲解.mp4
4-6 DBsync_config()函数讲解.mp4
4-7 查询主机模板、宏参数到全局配置缓存中-上.mp4
4-8 查询主机模板、宏参数到全局配置缓存中-下.mp4
4-9 更新主机模板、宏参数到全局配置缓存中-上.mp4
4-10 更新主机模板、宏参数到全局配置缓存中-下.mp4
4-11 查询9组数据.mp4
4-12 查询并更新主机信息到全局配置缓存中.mp4
4-13 查询并更新监控项信息到全局配置缓存中.mp4
4-14 输出配置同步过程中新增、修改、删除的数量和同步时间.mp4
4-15 全局配置缓存输出到日志分析.mp4
5-1 入口函数分析-上.mp4
5-2 入口函数分析-下.mp4
5-3 get_values()函数分析.mp4
5-4 获取二叉堆中的监控项用于采集.mp4
5-5 判断获取的监控项是否需要采集.mp4
5-6 监控项宏替换和各采集属性赋值.mp4
5-7 get_value()函数分析.mp4
5-8 采集结果处理和日志分析.mp4
6-1 进程功能介绍与进程交互脚本使用.mp4
6-2 入口函数分析.mp4
6-3 process_trapper_child()函数解析-上.mp4
6-4 process_trapper_child()函数解析-下.mp4
6-5 进程日志分析.mp4
7-1 进程介绍与入口函数分析.mp4
7-2 接收IPC服务消息.mp4
7-3 注册预处理工作进程.mp4
7-4 接收并转发消息给预处理工作进程-01.mp4
7-5 接收并转发消息给预处理工作进程-02.mp4
7-6 接收并转发消息给预处理工作进程-03.mp4
7-7 接收并转发消息给预处理工作进程-04.mp4
7-8 接收并处理预处理结果-01.mp4
7-9 接收并处理预处理结果-02.mp4
7-10 接收并处理队列长度请求.mp4
7-11 日志分析.mp4
8-1 进程介绍与入口函数分析.mp4
8-2 注册预处理工作进程.mp4
8-3 读取IPC消息并处理预处理消息-01.mp4
8-4 处理预处理消息-02.mp4
8-5 处理预处理消息-03.mp4
9-1 进程介绍与入口函数讲解.mp4
9-2 开始讲解同步历史缓存数据入库函数-01.mp4
9-3 获取待入库的缓存数据.mp4
9-4 向数据库中添加历史值数据.mp4
9-5 将历史值数据写入缓存中.mp4
9-6 向数据库中添加趋势值数据-01.mp4
9-7 向数据库中添加趋势值数据-02.mp4
9-8 技术触发器生成事件.mp4
9-9 日志分析.mp4
9-10 测试采集数据的完整生命周期.mp4
9-11 加餐:TCP Socket与IPC Socket编程示例.mp4
10-1 进程介绍与入口函数分析.mp4
10-2 处理主机列表中的Ping任务.mp4
11-1 进程介绍与入口函数分析.mp4
11-2 处理HTTP测试任务.mp4
11-3 日志分析.mp4
12-1 进程介绍和入口函数分析.mp4
12-2 进程关键步骤分析.mp4
12-3 日志分析.mp4
13-1 进程介绍.mp4
13-2 不可达进程源码分析.mp4
14-1 进程介绍与收集统计数据源码分析.mp4
14-2 收集统计数据日志分析.mp4
14-3 更新自监控统计数据源码分析.mp4
14-4 获取统计数据源码与日志分析.mp4
15-1 管家进程介绍和入口函数分析.mp4
15-2 清理历史数据与趋势数据-上.mp4
15-3 清理历史数据与趋势数据-下.mp4
15-4 清理其他数据.mp4
15-5 日志分析.mp4
16-1 自发现进程介绍和入口函数分析.mp4
16-2 自发现进程源码分析.mp4
16-3 自发现进程日志分析.mp4
17-1 告警管理进程介绍.mp4
17-2 入口函数关键步骤分析.mp4
17-3 同步看门狗信息.mp4
17-4 处理告警结果.mp4
17-5 日志分析.mp4
18-1 告警器进程介绍与源码分析.mp4
zabbix-4.0.20源码(带中文注释版).zip
Zabbix源码解析-课件.zip
|
|