Zabbix源码解析之源码整体结构

zabbix源码目录结构

|-- bin         // 包含Windows下对zabbix_sender进行二次开发所需要的头文件与库
|-- build       // 包含Windows下的编译文件,二进制程序文件等
|-- conf        // agent,proxy,server的配置文件
|-- database    // 数据库脚本
|-- frontends   // PHP前端
|-- include     // zabbix公共头文件(*)
|-- m4          // 依赖第三方库的说明文件
|-- man         // 使用手册
|-- misc        // 包含图片,脚本等杂项文件
|-- sass
`-- src         // zabbix的实现源码文件
    |-- libs             // zabbix公共基础模块的代码(*)
    |-- modules          // zabbix可加载模块的开发示例
    |   `-- dummy
    |-- zabbix_agent     // zabbix客户端源码文件,主要是包括数据自动收集、被动监控和自动发送数据(*)
    |-- zabbix_get       // zabbix_get工具的源码
    |-- zabbix_java      // Java网关的源码
    |-- zabbix_proxy     // zabbix代理模块源码文件
    |   |-- datasender
    |   |-- heart
    |   |-- housekeeper
    |   |-- proxyconfig
    |   `-- taskmanager
    |-- zabbix_sender    // zabbix_sender工具的源码
    `-- zabbix_server    // zabbix服务端源码.每个子目录对应服务端一种子进程(*)
        |-- alerter
        |-- dbconfig
        |-- dbsyncer
        |-- discoverer
        |-- escalator
        |-- housekeeper
        |-- httppoller
        |-- ipmi
        |-- odbc
        |-- pinger
        |-- poller
        |-- preprocessor
        |-- proxypoller
        |-- scripts
        |-- selfmon
        |-- snmptrapper
        |-- taskmanager
        |-- timer
        |-- trapper
        `-- vmware

上面的源码目录结构中,需要我们重点关注的源码目录有:includelibszabbix_agentzabbix_server,已用“*”标注了出来。

zabbix整体架构图

zabbix的整体架构如下图所示:

组件说明:

  • Zabbix Server:可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能。

  • DataBase:专用于存储所有配置信息,以及由zabbix收集的数据。

  • Web GUI:zabbix前端操作界面。

  • Zabbix Proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力。

  • Zabbix Agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等指标发往server端或proxy端。

Zabbix Server是一个开源的网络监控系统,其源码是用C语言开发的。以下是对Zabbix Server源码的简要解析: 1. 主要组件:Zabbix Server的源码包含了多个主要组件,包括服务器引擎、数据库接口、配置文件解析器、监控项处理器、报警触发器等。 2. 数据库接口:Zabbix Server使用支持SQL的关系型数据库来存储监控数据和配置信息。源码中实现了对不同数据库的接口,包括MySQL、PostgreSQL、Oracle等。 3. 配置文件解析器:Zabbix Server使用配置文件来定义监控项、触发器、报警等设置。源码中包含了一个配置文件解析器,用于解析和加载配置文件中的信息。 4. 监控项处理器:Zabbix Server通过监控项来收集各种指标数据,如CPU使用率、内存使用量等。源码中实现了对各种监控项类型的处理和数据收集。 5. 报警触发器:Zabbix Server可以根据定义的触发条件来触发报警动作,如发送邮件、短信等。源码中包含了触发条件的处理逻辑和报警动作的实现。 6. 网络通信:Zabbix Server需要与各个被监控主机进行通信,收集监控数据。源码中实现了基于TCP/IP协议的网络通信模块,用于与被监控主机建立连接和数据交换。 这些是对Zabbix Server源码的简要解析,它们只是源码中的一小部分内容。如果你对特定的功能或模块有更具体的问题,我可以提供更详细的解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值