基于Zabbix 空管设备监控平台的研究与设计
边志龙
民航宁夏空管分局 宁夏回族自治区银川市 750001
一、前言
随着空管事业的快速发展,空管通导各类设备快速增长,同时也带来了通导部门对于所部属的各种硬件设备和应用系统性能的监控越发困难。各个系统内部硬件采用了大量的服务器、交换机、路由器以及终端工作站,如采用传统的、分散的人工监控方式,仅巡检流程就要花费很长的时间和人工精力,而且无法了解到各设备的实时性能指标。如果可以通过某种软件工具实时的监控各个硬件设备的 CPU、硬盘使用率、网络连接状态以及其他各个运行参数值,这样可以极大的提高系统安全运行,方便维护人员实时的掌握系统整体运行状态。Zabbix 作为一款高效的分布式性能监控平台,为用户提供了完善的解决方案。该平台能够自动采集并实时展示各类应用系统和硬件设备的运行指标。同时,系统支持通过短信、微信等多种渠道快速推送告警信息,帮助运维团队及时掌握异常情况。这种智能化的监控方式不仅取代了传统的人工巡检工作,还显著提升了故障处理的时效性,从而有效保障了IT 基础设施的稳定运行和业务连续性。
二、Zabbix 监控系统简介
Zabbix 是一款开源监控软件,采用高弹性分布式架构设计,通过Zabbix Server 集中管理配置与数据存储,搭配 Zabbix Agent 实现被监控节点的深度数据采集,同时支持 SNMP、JMX 等多种协议,可无缝对接复杂异构环境。其监控范围广泛,具体如下:
1、操作系统层:深度适配 Linux(CentOS、Ubuntu 等)、Windows全系列系统,可对 CPU 负载、内存利用率、磁盘 I/O 等核心指标进行监控。2、网络设备:借助 SNMP 协议对路由器、交换机进行流量分析、端口状态检测,并实现网络拓扑可视化。3、数据库服务:针对 MySQL、Oracle、PostgreSQL 等主流数据库,提供慢查询分析、事务处理性能监控等高级功能。4、中间件与应用:支持对 Tomcat、Nginx、Redis 等组件的健康检查,还可通过自定义脚本扩展监控特定业务逻辑。
Zabbix 支持两种数据采集模式:客户端直采和服务器/ 代理采集。在服务器 / 代理模式下,系统可采用主动或被动方式获取监控数据;而客户端采集则支持 SNMP、TCP、ICMP、SSH 等多种协议。当监控规模较大时,代理模式能够利用空闲进程资源,将数据分层上报至主服务器,有效缓解服务器负载压力。所有采集的监控数据都会持久化存储至数据库,便于后续的深度分析和可视化呈现。
Zabbix 系统采用两种主要架构模式:基础架构采用 Client/Server模式,而分布式环境则支持 Client/Proxy/Server 或 Client/Node/Server 模式。在基础架构中,系统由 Zabbix Server 和 Zabbix Agent 组成,通过安装在客户端的 Agent 程序采集性能数据并传输至服务器,适用于单一数据中心的监控场景(如图 2-1 所示)。然而,这种基础架构存在监控范围有限的问题,难以应对多数据中心和资源池化的复杂需求,因此仍需进一步优化和扩展其架构设计。
图 2-1 Zbbix Client/Server 架构

Zabbix 系统在 Client/Proxy/Server 架构中,Proxy 作为中间代理层,主要负责汇总 Agent 采集的监控数据并暂存至本地数据库,随后按照预设的时间周期将数据批量上传至 Zabbix 服务器(架构示意图见图2-2)。这种设计通过引入代理层,在监控大规模主机时能有效分担主服务器的数据处理压力。特别是在多资源池和多数据中心的复杂监控场景下,Proxy 的缓冲和转发机制显著提升了系统的扩展性和可靠性。
图 2-2 Zbbix Client/Proxy/Server 架构

三、Zabbix 监控原理

Zabbix Server 可以通过 SNMP、Zabbix agent 等方法对远程服务器和网络设备进行状态监控和数据采集。Zabbix 架构按照:数据采集→配置管理 $$ 告警触发 $$ 通知响应”的逻辑拆解各组件和交互。在Zabbix 系统中被监控主机被抽象为主机 (host),系统采集服务器的信息被抽象为监控项 (item)。可以设置触发器 (triger) 监测监控项的返回值,当满足触发条件后执行相应的动作(action)。Zabbix 可以设置的动作包括执行脚本程序、发送报警信息和执行命令。以下为各个组件的功能:
1. 监控项(Item)
监控项是 Zabbix 数据采集的基本单元,由 Key 和参数两部分组成,其中参数决定了监控数据的类型。系统支持多种采集方式,包括Agent、SNMP、IPMI 等,用户在创建监控项时需指定对应的检查器类型。每个监控项包含 Host、Name、Type 等属性,同时支持自定义 Key,通过修改zabbix_agentd.conf 配置文件,可以扩展监控非预定义的指标,满足个性化需求。
2. 触发器(Trigger)
触发器用于定义监控数据的告警阈值,当采集的数据超出预设范围时触发告警。一个监控项可以绑定多个触发器,实现不同级别的告警策略。此外,触发器支持依赖关系设置,当关联的任一触发器被触发时,依赖的触发器会同时生效,确保告警信息完整传递。
3. 事件(Events)
事件是触发器被触发后生成的记录,包含详细的告警信息。Zabbix 支持自动注册事件,例如邮件通知、短信告警等,均基于事件
机制实现。通过事件管理,运维人员可以快速定位问题并跟踪处理状态。
4. 动作(Actions)
动作定义了特定条件下的自动化响应,例如触发器状态变化、网络中断、Agent 注册或监控项异常等场景。Zabbix 通过动作机制实现灵活的通知策略,包括邮件、微信、Webhook 等多种告警方式,确保运维团队及时响应异常情况。
5. 模板(Template)
模板是预定义的监控配置集合,包含标准化的监控项(Item)、触发器(Trigger)等元素。其中,Application 用于对监控项进行逻辑分组,便于分类管理。通过关联模板,新主机可快速继承监控配置,大幅降低部署复杂度,提升运维效率。模板机制使得监控策略可复用,适用于多数据中心和规模化监控场景。
6 简单网络管理协议(SNMP)
通过简单网络管理协议SNMP,监控网络设备如交换机、路由器、打印机等支持SNMP 的设备。
7 Zabbix Agent
Zabbix Agent 安装在被监控主机(如 Linux/Windows 服务器)上的代理程序,用于采集主机级指标,如CPU、内存、进程等。
四、Zabbix 部署
(一)Zabbix 服务端部署
Zabbix 服务端通常运行在Linux 系统上,可通过源码、二进制包、Docker 容器等多种方式进行安装部署,下面通过rpm 包举例安装。
1 安装 rpm 包rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-
release-4.0-1.el7.noarch.rpm更新 yum:yum clean all yum repolist2 安装 zabbix-server 和 zabbix-web-mysql:yum install -y zabbix-server-mysql zabbix-web-mysql3 安装 mysql3.1 下载 mysql 的 rpm 包:rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/6/
x86_64/mysql-community-release-el6-5.noarch.rpm3.2 安装:yum install -y mysql-community-server3.3 启动(开机自启):systemctl start mysqld/sbin/chkconfig mysqld on4 配置 mysql4.1 初始化数据库:mysql_secure_installation4.2 创建 zabbix 数据库及账号:[root@MiWiFi]# mysql -u root -pmysql> create database zabbix character set utf8 collate utf8_bin;mysql> grant all privileges on zabbix.* to ‘zabbix’ @ ’localhost’
identified by ‘zabbix’;mysql> flush privileges;4.3 导入默认的 zabbix 数据库信息zcat /usr/share/doc/zabbix-server-mysql-4.0.32/create.sql.gz | mysql
zabbix -uzabbix -pzabbix5. 配置 zabbix5.1 修改 zabbix_server.conf 的配置文件(此处直接在 Final Shell 打
开文件修改)文件路径:/etc/zabbix/zabbix_server.conf修改内容:DBHost=localhostDBName=zabbix
DBUser=zabbix DBPassword=zabbix
5.2 修改配置文件 /etc/httpd/conf.d/zabbix.conf修改时区:php_value date.timezone Asia/shanghai
5.3 启动 zabbix-server 服务(开机自启): systemctl restart httpd zabbix-server systemctl enable httpd zabbix-server
(二)客户端配置
使用命令完成 Zabbix Agent 安装后,需执行以下操作:编辑配置文件:修改 Agent 配置文件(通常为 zabbix_agentd.conf),通过 Server和 ServerActive 参数指定 Zabbix Server 的 IP 地址或域名,确保 Agent能够正确建立通信连接。启动服务:保存配置后,通过系统服务管理工具(如 systemctl 或 service)启动 Zabbix Agent 服务,使配置生效。
(三)Zabbix 配置管理
完成 Zabbix 服务端与客户端安装后,需通过浏览器访问 Zabbix前端界面,完成主机创建、监控项配置、触发器设置及可视化图表搭建,以实现对目标设备的实时监控。
(1)创建与管理监控主机
通过 Zabbix 前端页面依次点击 Conf iguration⟶H sts $$ Createhost,支持两种创建方式:全新创建:手动输入主机名称、IP 地址(或DNS 域名)、所属主机群组等基础信息,关联 Zabbix Agent 代理程序或 SNMP 协议模板。克隆创建:在已有主机列表中点击 Clone 按钮,快速复制现有主机的监控模板与配置参数,仅需修改差异化信息(如IP 地址)即可完成新主机创建。
(2)配置监控项(Item)
监控项是数据采集的核心单元,用于从主机获取具体指标(如CPU 使用率、内存容量、网络流量等)。需根据设备类型选择对应协议模板,并设置数据采集频率(如默认每 60 秒采集一次)、数据存储周期等参数。
(3)设置触发器(Trigger)
监控项采集的数据设置阈值规则,当指标超出预设范围(如 CPU使用率连续 5 分钟超过 80% )时,触发器状态将切换为 PROBLEM,并通过邮件、短信等渠道发送告警通知。
配置步骤:1、在监控项详情页点击 Triggers $$ Create trigger;
定义触发表达式(如 {Host:system.cpu.util[,avg].las
);
配置恢复机制(如指标恢复正常后自动切换为 OK 状态)。
(4)创建可视化图表
除监控项内置的简单图形外 Zabbix 还支持创建复杂自定义图表、Ad-hoc 图表及聚合图形。
五、总结
随着空管事业信息化建设进程的加快,运维管理人员需监控的网络设备、业务系统及应用服务数量持续攀升。为实现对服务器、存储设备、网络设施、应用程序、服务进程及集群架构的全面监控,本文提出了基于 Zabbix 开源平台构建一体化网络监控系统的解决方案,通过该系统运维人员可实时掌握各设备运行状态,在故障发生时第一时间获取预警信息并快速响应处置,有效提升空管信息化基础设施的运维效率与故障处理时效性。
参考文献:
[1] 贾夫松 . 基于 Zabbix 的服务器监控平台的研究 [D] 济南 : 山东师范大学 ,2019
[2] 吴兆松,Zabhix 企业级分布式监控系统[M],北京: 机械工业出版社,2014
[3] 石宇婷 . 基于 Zabbix 平台的私有云监控系统设计与实现 [D].东华大学,2017