Zabbix
定义
Zabbix 是一套以 Server-Client 架构 组织的开源分布式监控软件,官方将其定位为面向企业、可监控网络中大量参数的平台,监控范围涵盖服务器、虚拟机、应用、服务、数据库、网站与云环境的状态和完整性。它提供了基于邮件等媒介的通知机制,可以为几乎任意事件配置告警,并依据历史数据生成报表和可视化图表,供容量规划使用[3]。
所有报表、统计与配置参数均通过基于 Web 的前端访问,管理员可以在任意地点查看网络和主机的运行状况[4]。软件本身免费分发,其源代码按自由软件许可公开,同时由原厂及各地合作伙伴提供商业支持服务。
原理
Zabbix 由若干软件组件协作完成监控。服务端是核心,负责接收代理上报的可用性、完整性与统计数据,并集中保存全部配置、统计与操作数据;数据库用于存放配置信息和采集到的历史数据;Web 前端提供图形化操作界面;代理部署在被监控主机上,采集本地资源和应用的数据后上报给服务端[5]。代理为可选组件,常用于节点较多时分担单台服务端的负载[5]。
其数据逻辑呈链式结构:先登记一台主机,再为主机定义监控项,然后为监控项建立触发器,最后为触发器配置动作。触发器是一段逻辑表达式,用于判断收到的数据是否越过阈值;数据越界时触发器从正常变为问题状态,动作随之执行,例如发送邮件通知[6]。若没有代理,Zabbix 也可通过 SNMP、TCP、ICMP 以及 IPMI、SSH 等方式对目标进行检查[7]。
采集方式分为轮询与捕获两类,也即主动与被动两种模式:被动模式下由服务端发起请求取得数据,主动模式下由代理向服务端索取监控项清单并主动提交采集结果[8]。Zabbix 还对外提供基于 JSON-RPC 的应用程序接口,可用于创建、更新和获取主机、监控项、图形等对象[9]。
flowchart LR
A[被监控主机 / Agent] -->|主动上报或响应轮询| B[Zabbix Server]
A2[网络设备 / SNMP 等] --> B
C[Proxy 可选] --> B
B --> D[(数据库)]
B --> E[触发器判定]
E --> F[动作与告警通知]
D --> G[Web 前端与图表]
发展历程
Zabbix 的源头可追溯到 1998 年。当时身为系统管理员的 Alexei Vladishev 为了减少重复性的检查工作,写了一套自动化脚本,随后逐步扩展为完整的监控工具,最初仅在公司内部使用[10]。2001 年 4 月 7 日,Zabbix 1.0 Alpha 1 以 GPLv2 许可公开源代码;2004 年 3 月 23 日,首个稳定版 1.0 发布[1]。据创始人自述,其所在银行为拉脱维亚里加的机构,2001 年起软件向所有人开放,名称则是在检索确认未被占用后选定的[10]。
此后版本按约两年一个主版本的节奏推进:1.1 于 2006 年 2 月 6 日发布,1.4 于 2007 年 3 月 29 日发布,1.6 于 2008 年 9 月 11 日发布,1.8 于 2009 年 12 月 7 日发布,2.0 于 2012 年 5 月 21 日发布,2.2 于 2013 年 11 月 12 日发布,2.4 于 2014 年 9 月 11 日发布[11]。2.0 版本引入了低级别发现和更完整的安全控制,并重新设计了前端界面[12]。
2024 年 6 月 4 日,Zabbix 7.0.0 LTS 发布,许可证由 GPLv2 改为 AGPLv3[13]。该版本增加了基于浏览器的合成监控、代理负载均衡、异步轮询进程,以及 Web 界面的多因素认证等功能[14]。版本节奏上,长期支持版约每 1.5 年发布一次,标准版约每 6 个月发布一次[15]。
应用
Zabbix 的典型用途包括对 IT 服务的高层监控、对服务器和应用的集中监控、对支持 SNMP 的设备的监控,以及对进程负载、网络活动、磁盘读写、内存占用和操作系统参数等性能指标的监控,并可将数据可视化呈现[16]。它既适用于只有几台服务器的小型组织,也适用于拥有大量服务器的大型机构。
在部署形态上,简单场景可采用服务端直接对接代理的两层结构;节点规模较大时则加入代理层,由代理先汇总数据再回传服务端,形成分布式监控[17]。除代理外,监控目标也可以通过模板批量绑定监控项和触发器,以减少重复配置工作[18]。由于可以在本地或云端运行,它被用于从智能家居到多租户企业的不同规模环境[19]。
局限
Zabbix 的链式数据模型虽然灵活,但也意味着配置工作量较大:要得到一条告警,必须依次建立主机、监控项、触发器和动作,步骤较多,需借助模板才能简化[5]。安装过程涉及数据库、PHP 运行环境和 Web 服务器等多个前置组件,部署较为繁琐[20]。
其前端长期以 PHP 实现,图形渲染能力有限,界面改版后部分老用户的使用习惯也受到影响[12]。创始人曾指出,前后端分别使用不同语言导致同一功能存在两套实现、开发周期变长,PHP 编写的接口性能明显低于用 C 编译的实现[21]。此外,采用集中式单服务端结构时,被动模式下的每次检查都要建立连接,监控项增多后会给服务端带来压力[8]。
7.0 版本将许可证改为 AGPLv3,修改后通过网络向他人提供服务的版本也须公开源代码,这对希望基于 Zabbix 提供闭源托管服务的提供方构成额外约束[22]。同时该版本将 Oracle 列为不推荐使用的后端数据库[14]。
参见
-
Prometheus —— 另一套广泛使用的开源监控与告警系统,常与 Zabbix 在同一场景中被比较和选型。
-
SNMP —— 用于监控交换机、路由器等网络设备的协议,是 Zabbix 采集数据的重要方式之一。
-
Nagios —— 较早出现的开源主机与服务监控工具,与 Zabbix 功能定位相近。
-
Grafana —— 常用的数据可视化平台,可与监控系统配合展示时序指标。
-
AGPLv3 —— Zabbix 自 7.0 版起采用的自由软件许可证。
参考资料
- Zabbix [引用日期2026-10-29]
- Zabbix [引用日期2026-10-29]
- zabbix-1:7.0.4-2.fc41.src | RPM Info [引用日期2026-10-29]
- sysutils/zabbix50-server - The NetBSD Packages Collection [引用日期2026-10-29]
- Source of overview.md - documentation [引用日期2026-10-29]
- Zabbix supporta sia il polling sia il trapping [引用日期2026-10-29]
- Zabbix - Reading on Wikiwand [引用日期2026-10-29]
- Zabbix监控基础架构 [引用日期2026-10-29]
- zabbix [引用日期2026-10-29]
- latinoware2011 [引用日期2026-10-29]
- Zabbix [引用日期2026-10-29]
- zabbix的发展史 [引用日期2026-10-29]
- Nový Zabbix 7.0 LTS: HA podpora Zabbix proxy [引用日期2026-10-29]
- Zabbix 7.0.0リリース [引用日期2026-10-29]
- Zabbix 最新情報セミナー [引用日期2026-10-29]
- 软件包:zabbix-server-mysql(1:7.0.9+dfsg-1~bpo12+1) [引用日期2026-10-29]
- zabbix监控架构原理 [引用日期2026-10-29]
- 社区首页 >专栏 >五分钟了解Zabbix [引用日期2026-10-29]
- Zabbix 7.0.0 发布,这些新特性很Nice! [引用日期2026-10-29]
- zabbix [引用日期2026-10-29]