2 要求

硬件

内存

Zabbix 需要物理内存和磁盘内存。
所需磁盘 memory 的数量显然取决于被监控的 主机 和参数的数量。
如果您计划保留较长时间的监控参数历史记录,则应考虑至少几个千兆字节的空间,以便在数据库中存储历史数据。
每个 Zabbix 守护进程都需要与数据库服务器建立多个连接。
为连接分配的 memory 数量取决于数据库引擎的配置。

物理 memory 越多,数据库(以及因此 Zabbix)的运行速度就越快。

CPU

Zabbix 及其数据库可能会根据受监控参数的数量和所选的数据库引擎消耗大量的 CPU 资源。

其他硬件

Zabbix 中使用 SMS 通知支持需要一个串行通信端口和一个串行 GSM 调制解调器。
USB-to-serial 转换器也可以工作。

硬件配置示例

该表格提供了基于Linux/BSD/Unix平台的硬件配置示例。

这些是初始部署所需的规模和硬件配置参考。 每个Zabbix部署环境都具有独特性。 务必在预发布或开发环境中对Zabbix系统进行性能基准测试,以便在将Zabbix部署到生产环境之前充分了解实际需求。

部署规模 监控指标1 CPU/vCPU核心数 内存
(GiB)
数据库 Amazon EC22
小型 1 000 2 8 MySQL Server,
Percona Server,
mariadb Server,
PostgreSQL
m6i.large/m6g.large
中型 10 000 4 16 MySQL Server,
Percona Server,
mariadb Server,
PostgreSQL
m6i.xlarge/m6g.xlarge
大型 100 000 16 64 MySQL Server,
Percona Server,
mariadb Server,
PostgreSQL,
Oracle
m6i.4xlarge/m6g.4xlarge
超大规模 1 000 000 32 96 MySQL Server,
Percona Server,
mariadb Server,
PostgreSQL,
Oracle
m6i.8xlarge/m6g.8xlarge

1 1个指标 = 1个监控项 + 1个触发器 + 1个图形
2 示例采用Amazon通用型EC2实例(ARM64或x86_64架构),在生产环境部署前应通过Zabbix安装评估和测试选择适当的计算/内存/存储优化实例类型。

实际配置很大程度上取决于主动监控项数量和刷新频率(详见本页数据库规模章节)。 对于大规模部署,强烈建议run将数据库部署在独立服务器上。

支持平台

由于安全要求以及监控服务器的关键任务性质,UNIX 是唯一能够持续提供必要性能、容错能力和弹性的操作系统。
Zabbix 在市场领先的版本上运行。

以下平台已提供并测试了 Zabbix 组件:

平台 服务器 Agent Agent 2 备注
Linux x x x
Windows - x x Zabbix agent 支持所有自 Windows XP (64-位)/Server 2003 起的桌面和服务器版本。

Zabbix agent 2 支持所有自 Windows 10 (32-位)/Server 2016 起的桌面和服务器版本,因为它是仅使用 agent-2 编译的,以防止关键安全漏洞。从 Go 1.21 开始,minimum required Windows versions 被提升,使得 Windows 10/Server 2016 成为 Zabbix agent 2 的最低 version。
macOS x x -
IBM AIX x x - Zabbix agent 在版本低于 6.1 TL07 / 7.1 TL01 的 AIX 平台上无法运行。
FreeBSD x x -
OpenBSD x x -
Solaris x x -
NetBSD x x -
HP-UX x x -

Zabbix server/agent 可能在其他类 Unix 操作系统上也能运行。

如果使用加密编译,Zabbix 会禁用核心转储(core dumps),并且如果系统不允许禁用核心转储,则 Zabbix 不会启动。

所需软件

Zabbix 基于现代 Web 服务器、主流数据库引擎和 PHP 脚本语言构建。

第三方外部配套软件

如果标注为必需,则所需的软件/库是严格必要的。
可选项用于支持某些特定功能。

Software Mandatory status Supported versions Comments
MySQL/Percona One of 8.0.30-9.6.X 如果将 MySQL(或 Percona)用作 Zabbix 后端数据库,则为必需。需要 InnoDB 引擎。

新增对以下 MySQL 版本的支持:
- 自 Zabbix 7.0.1 起支持 8.4.X;
- 自 Zabbix 7.0.2 起支持 9.0.X;
- 自 Zabbix 7.0.22 起支持 9.5.X;
- 自 Zabbix 7.0.25 起支持 9.6.X。

建议在构建服务器/proxy 时使用 C API (libmysqlclient) 库。
MariaDB 10.5.00-12.2.X 需要 InnoDB 引擎。

推荐版本为 11.4。

建议在构建服务器/proxy 时使用 MariaDB Connector/C 库。

新增对以下 MariaDB 版本的支持:
- 自 Zabbix 7.0.1 起支持 11.4.X;
- 自 Zabbix 7.0.4 起支持 11.5.X;
- 自 Zabbix 7.0.19 起支持 12.0.X;
- 自 Zabbix 7.0.25 起支持 12.2.X。

另请参见:MariaDB 可能出现的死锁使用 MariaDB 10.5.1-10.5.9 访问 UI 元素
Oracle 19c - 21c 如果将 Oracle 用作 Zabbix 后端数据库,则为必需。
自 Zabbix 7.0 起,Oracle DB 支持已弃用
PostgreSQL 13.0-18.X 如果将 PostgreSQL 用作 Zabbix 后端数据库,则为必需。
根据安装规模,可能需要增加 PostgreSQL work_mem 配置属性(默认值为 4MB),以确保数据库在执行特定操作时使用的内存足够,并且查询执行不会耗时过长。

新增对以下 PostgreSQL 版本的支持:
- 自 Zabbix 7.0.6 起支持 17.X;
- 自 Zabbix 7.0.20 起支持 18.X。
TimescaleDB for PostgreSQL 2.13.0-2.26.X 如果将 TimescaleDB 作为 PostgreSQL 数据库扩展使用,则为必需。请确保安装支持压缩功能的 TimescaleDB Community Edition。

请注意,自 TimescaleDB 2.10 起支持 PostgreSQL 15。
有关 PostgreSQL 与 TimescaleDB 版本兼容性的详细信息,也可参考 TimescaleDB 文档

新增对以下 TimescaleDB 版本的支持:
- 自 Zabbix 7.0.1 起支持 2.15.X;
- 自 Zabbix 7.0.4 起支持 2.16.X;
- 自 Zabbix 7.0.6 起支持 2.17.X;
- 自 Zabbix 7.0.10 起支持 2.18.X;
- 自 Zabbix 7.0.13 起支持 2.19.X;
- 自 Zabbix 7.0.17 起支持 2.20.X;
- 自 Zabbix 7.0.18 起支持 2.21.X;
- 自 Zabbix 7.0.20 起支持 2.22.X;
- 自 Zabbix 7.0.22 起支持 2.23.X;
- 自 Zabbix 7.0.23 起支持 2.24.X;
- 自 Zabbix 7.0.24 起支持 2.25.X;
- 自 Zabbix 7.0.25 起支持 2.26.X。
SQLite Optional 3.3.5-3.53.X SQLite 仅支持 Zabbix proxy。若将 SQLite 用作 Zabbix proxy 数据库,则为必需。

对以下 SQLite 版本的支持:
- 自 Zabbix 7.0.25 起支持 3.53.X。
Elasticsearch 7.X Elasticsearch 仅支持 Zabbix 服务器,且仅用于存储历史数据。当前对 Elasticsearch 的支持处于实验阶段。另请参见 server/proxy 所需软件。
smartmontools 7.1 or later Zabbix agent 2 需要。
who 用户计数插件需要。
dpkg system.sw.packages 插件需要。
pkgtool system.sw.packages 插件需要。
rpm system.sw.packages 插件需要。
pacman system.sw.packages 插件需要。
q applets 在 Gentoo Linux 上,system.sw.packages 插件需要 qlistqsize,它们是 q applets 的一部分。

尽管 Zabbix 可以与操作系统中可用的数据库配合工作,但为了获得最佳体验,我们建议使用从官方数据库开发者仓库安装的数据库。

前端

Zabbix 前端支持的最小屏幕宽度为 1200px。

如果标注为必需,则该软件/库是严格必需的。 可选项用于支持某些特定功能。

Software Mandatory status Supported versions Comments
PHP Yes 8.0.0 - 8.5.X Added support for PHP versions:
- 8.4.X since Zabbix 7.0.10;
- 8.5.X since Zabbix 7.0.25.
Apache One of 2.4 or later
Nginx 1.20 or later
MySQL One of See Third-party external surrounding software
PostgreSQL
Oracle
PHP extensions
mysqli Yes 如果使用 MySQL 作为 Zabbix 后端数据库,则为必需。
pgsql 如果使用 PostgreSQL 作为 Zabbix 后端数据库,则为必需。
oci8 如果使用 Oracle 作为 Zabbix 后端数据库,则为必需。
bcmath php-bcmath (--enable-bcmath)
mbstring php-mbstring (--enable-mbstring)
sockets php-net-socket (--enable-sockets);用户脚本支持所必需。
gd 2.0.28 or later php-gd(如果发行版将其作为单独的软件包提供);PHP GD 扩展必须支持 PNG 图像(--with-png-dir)、JPEG 图像(--with-jpeg-dir)和 FreeType 2(--with-freetype-dir)。对于某些前端语言,可能需要 2.3.0 或更高版本,以避免可能出现的图形中的文本重叠
libxml 2.6.15 or later php-xml(如果发行版将其作为单独的软件包提供)
xmlwriter php-xmlwriter(如果发行版将其作为单独的软件包提供)
xmlreader php-xmlreader(如果发行版将其作为单独的软件包提供)
ctype php-ctype (--enable-ctype)
session php-session(如果发行版将其作为单独的软件包提供)
ldap No php-ldap;LDAP 身份验证所必需。
openssl php-openssl;SAML 身份验证所必需。
gettext php-gettext (--with-gettext);翻译所必需。
cURL php-curl;Duo Universal Prompt MFA 所必需。

Zabbix 随附的第三方前端库:

Library Mandatory status Supplied version Comments
jQuery JavaScript Library Yes 3.6.0 简化跨浏览器开发过程的 JavaScript 库。
jQuery UI 1.12.1 基于 jQuery 构建的一组用户界面交互、效果、组件和主题。
SAML PHP Toolkit 4.3.1 一个 PHP 工具包,添加了 SAML 2.0 身份验证支持,以便登录 Zabbix。

随附版本历史:
- 自 Zabbix 7.0.0 起为 4.0.0;
- 自 Zabbix 7.0.24 起为 4.3.1(推荐)。
Duo Universal PHP library 1.1.2 一个 PHP 库,为 Zabbix 添加 Duo Universal Prompt 多因素身份验证支持。

随附版本历史:
- 自 Zabbix 7.0.0 起为 1.0.2;
- 自 Zabbix 7.0.23 起为 1.1.0;
- 自 Zabbix 7.0.26 起为 1.1.2(推荐)。
Symfony Yaml Component 5.1.0 添加对以 YAML 格式导出和导入 Zabbix 配置元素的支持。

Zabbix 也可能在较早版本的 Apache、MySQL、Oracle 和 PostgreSQL 上运行。

对于除默认 DejaVu 之外的其他字体,可能需要 PHP 函数 imagerotate。 如果缺少该函数,在显示图形时,这些字体可能会渲染不正确。 只有在 PHP 使用内置 GD 编译时,该函数才可用,而 Debian 和其他发行版并非如此。

用于编写和调试 Zabbix 前端代码的第三方库:

Library Mandatory status Minimum version Description
Composer No 2.4.1 PHP 的应用级包管理器,为管理 PHP 软件及其所需库的依赖关系提供标准格式。
PHPUnit 8.5.29 用于测试 Zabbix 前端的 PHP 单元测试框架。
SASS 3.4.22 一种预处理脚本语言,可被解释并编译为层叠样式表(CSS)。
客户端网页浏览器

必须启用 Cookies 和 JavaScript。

支持 Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari 和 Opera 的最新稳定版本。

IFrames 的同源策略已实现,这意味着 Zabbix 不能被放置在不同域的框架中。

但是,如果放置在框架中的页面与 Zabbix 前端位于同一域,则该页面将可以通过 JavaScript 访问 Zabbix 前端。 例如,将 http://secure-zabbix.com/cms/page.html 页面放置在 http://secure-zabbix.com/zabbix/ 的仪表板中后,该页面将拥有对 Zabbix 的完整 JS 访问权限。

Server/proxy

如果标注为必需,则所需的软件/库是严格必要的。
可选项用于支持某些特定功能。

Requirement Mandatory status Description
libpcre/libpcre2 One of PCRE/PCRE2 库是 Perl Compatible Regular Expression(PCRE)支持所必需的。
名称可能因 GNU/Linux 发行版而异,例如 'libpcre3' 或 'libpcre1'。支持 PCRE v8.x 和 PCRE2 v10.x。
libevent Yes 进程间通信所必需。版本 2.0.10 或更高(自 Zabbix 7.0.4 起;此前为 1.4)。
libevent-pthreads 进程间通信所必需。
libpthread 互斥锁和读写锁支持所必需(可能是 libc 的一部分)。
libresolv DNS 解析所必需(可能是 libc 的一部分)。
libiconv 文本编码/格式转换所必需(可能是 libc 的一部分)。Linux 上的 Zabbix 服务器必需。
libz 压缩支持所必需。
libm 数学库。仅 Zabbix 服务器需要。
libmysqlclient One of 如果使用 MySQL,则必需。
libmariadb 如果使用 MariaDB,则必需。
libclntsh 如果使用 Oracle,则必需;libclntsh 版本必须与所用 Oracle 数据库版本一致或更高。
libpq5 如果使用 PostgreSQL,则必需;libpq5 版本必须与所用 PostgreSQL 数据库版本一致或更高。
libsqlite3 如果使用 SQLite,则必需。仅 Zabbix proxy 需要。
libOpenIPMI No IPMI 支持所必需。仅 Zabbix 服务器需要。
libssh2 or libssh SSH 检查所必需。版本 1.0 或更高(libssh2);0.9.0 或更高(libssh)。
libcurl 以下功能所必需:
- Web 监控VMware 监控HTTP agent 监控项(上述所有功能均需 7.19.1 或更高版本);
- Zabbix agent web.page.* 监控项(7.19.1 或更高版本;另请参见 agent 要求);
- SMTP 认证(7.20.0 或更高版本);
- Elasticsearch(7.28.0 或更高版本)。
建议所有功能都使用 7.28.0 或更高版本。
要为 web.page.* 监控项使用升级后的 cURL 功能,请重启 Zabbix 服务器/proxy。
对于 SMTP 认证,请在运行时使用 libcurl-full 包。
libxml2 VMware 监控和 XML XPath 预处理所必需。
net-snmp SNMP 支持所必需。版本 5.3.0 或更高。
从 net-snmp 库 5.8 开始支持强加密协议(AES192/AES192C、AES256/AES256C);在基于 RHEL 8+ 的系统上,建议使用 net-snmp 5.8.15 或更高版本。
libunixodbc 数据库监控所必需。
libgnutls or libopenssl 使用加密时所必需。
最低版本:libgnutls - 3.1.18,libopenssl - 1.0.1
libldap LDAP 支持所必需。
fping ICMP ping 监控项所必需。
c-ares 如果 Zabbix 使用 --with-ares 选项配置,则异步 DNS 解析所必需。否则将使用 libevent
自 Zabbix 7.0.11 起支持;最低版本:1.16.0
Agent
Requirement Mandatory status Description
libpcre/libpcre2 One of PCRE/PCRE2 库是 Perl Compatible Regular Expression(PCRE)支持所必需的。
名称可能因 GNU/Linux 发行版而异,例如 'libpcre3' 或 'libpcre1'。支持 PCRE v8.x 和 PCRE2 v10.x。
日志监控需要此库。在 Windows 上也需要。
libpthread Yes 用于支持互斥锁和读写锁(可能是 libc 的一部分)。在 Windows 上不需要。
libresolv 用于 DNS 解析(可能是 libc 的一部分)。在 Windows 上不需要。
libiconv 用于将日志监控项、文件内容、文件正则和 regmatch 监控项中的文本编码/格式转换为 UTF-8(可能是 libc 的一部分)。在 Windows 上不需要。
libgnutls or libopenssl No 如果使用加密,则需要。
最低版本:libgnutls - 3.1.18,libopenssl - 1.0.1
在 Microsoft Windows 上需要 OpenSSL 1.1.1 或更高版本。
libldap 如果使用 LDAP,则需要。在 Windows 上不支持。
libcurl Zabbix agent web.page.* 监控项的扩展支持需要此库。
没有 libcurl 时,可用基本功能(例如,web.page.get[http://example.com\])。有了 libcurl,agent 还支持其他功能,例如带凭据的 HTTP URL(例如,http://user:[email protected])以及 HTTPS URL。
需要 7.19.1 或更高版本(建议 7.28.0 或更高版本)。
要使用升级后的 cURL 功能,请重启 Zabbix agent。
libmodbus 仅在使用 Modbus 监控时需要。
版本 3.0 或更高。
Agent 2
Requirement Mandatory status Description
Go Yes 需要从源代码构建 Zabbix agent 2 及其插件。
支持 Go 1.24.10 或更高版本。安装说明请参见 go.dev
Zabbix agent 2 及其插件使用的 Go 库列在 Zabbix Git 仓库中(仓库中标记为 indirect 的库是其他所需库的依赖项):
- Zabbix agent 2
- Plugin support
- PostgreSQL
- MongoDB
- MSSQL
- Ember+
- Example plugin
libpcre/libpcre2 One of PCRE/PCRE2 库是支持 Perl Compatible Regular Expression(PCRE)所必需的。
根据 GNU/Linux 发行版的不同,名称可能有所差异,例如 libpcre3libpcre1。支持 PCRE v8.x 和 PCRE2 v10.x。
日志监控需要此库。Windows 上也需要。
libopenssl No 使用加密功能时需要。
UNIX 平台需要 OpenSSL 1.0.1 或更高版本。
OpenSSL 库必须启用 PSK 支持。不支持 LibreSSL。
Microsoft Windows 系统需要 OpenSSL 1.1.1 或更高版本。
Web服务

使用 Zabbix 网络服务生成预定报告时,支持最新稳定版的 Google Chrome version。

用于构建网络服务的所需 Go version 应与用于 Zabbix agent 2 的版本一致。

Java 网关

如果您是从源代码仓库或归档包获取的 Zabbix,那么所需的依赖项已经包含在源代码树中。

如果您是从发行版的软件包获取的 Zabbix,那么所需的依赖项已经由打包系统提供。

在上述两种情况下,软件都已可直接使用,无需额外下载。

不过,如果您希望提供这些依赖项的自定义版本(例如,您正在为某个 Linux 发行版准备软件包),下面列出了 Java 网关已知可正常工作的库版本。 Zabbix 也可能与这些库的其他版本兼容。

下表列出了当前随原始代码中的 Java 网关一起打包的 JAR 文件:

Library Mandatory status Bundled version Comments
android-json Yes 4.3r1 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。这是从 Android SDK 中提取的、与 org.json 兼容的 Android 实现。
logback-classic 1.5.16
logback-core 1.5.16
slf4j-api 2.0.16

Java 网关可以使用 Oracle Java 或开源 OpenJDK(1.6 或更高版本)进行构建。 Zabbix 提供的软件包使用 OpenJDK 编译。 下表列出了各发行版用于构建 Zabbix 软件包的 OpenJDK 包:

Distribution OpenJDK package
AlmaLinux 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3)
AlmaLinux 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.332.b09-2; arm64: 1.8.0.382.b05-2)
Amazon Linux 2023 java-22-amazon-corretto-devel (amd64, arm64: 22.0.2+9-1)
CentOS Stream 9 java-11-openjdk-devel (amd64, arm64: 11.0.18.0.10-3)
CentOS Stream 8 java-1.8.0-openjdk-devel (amd64, arm64: 1.8.0.362.b08-3)
CentOS 7 java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1)
Debian 12 default-jdk-headless (amd64, arm64: 2:1.17-74)
Debian 11 default-jdk-headless (amd64: 2:1.11-72)
OpenSUSE Leap 15 java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1)
Oracle Linux 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4.0.1; arm64: 11.0.20.0.8-2.0.1)
Oracle Linux 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4.0.1); java-11-openjdk-devel (arm64: 11.0.20.0.8-3.0.1)
Oracle Linux 7 java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1)
Raspberry Pi OS 12 default-jdk-headless (arm64, armhf: 2:1.17-74)
Raspberry Pi OS 11 default-jdk-headless (arm64: 2:1.11-72; armhf: 2:1.11-72+b4)
RHEL 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3)
RHEL 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2)
RHEL 7 java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1)
Rocky Linux 9 java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3)
Rocky Linux 8 java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2)
SLES 15 java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1)
Ubuntu 24.04 default-jdk-headless (amd64, arm64: 2:1.21-75+exp1)
Ubuntu 22.04 default-jdk-headless (amd64, arm64: 2:1.11-72build2)
Ubuntu 20.04 default-jdk-headless (amd64, arm64: 2:1.11-72)

默认端口号

以下列出的每个组件的开放端口适用于默认配置:

Zabbix组件 端口号 协议 连接类型
Zabbix agent 10050 TCP on demand
Zabbix agent 2 10050 TCP on demand
Zabbix server 10051 TCP on demand
Zabbix proxy 10051 TCP on demand
Zabbix Java gateway 10052 TCP on demand
Zabbix web service 10053 TCP on demand
Zabbix前端 80 HTTP on demand
443 HTTPS on demand
Zabbix trapper 10051 TCP on demand

应开放防火墙中的端口号以启用Zabbix通信。 通常,传出的TCP连接不需要显式的防火墙设置。

数据库大小

Zabbix 配置数据需要固定的磁盘空间,而且增长不会太多。

Zabbix 数据库大小主要取决于以下变量,这些变量定义了已存储历史数据的数量:

  • 每秒处理的值数量

这是 Zabbix 服务器每秒接收的新值的平均数量。 例如,如果有 3000 个用于监控的监控项,刷新间隔为 60 秒,则每秒值数量计算为 3000/60 = 50

这意味着每秒会向 Zabbix 数据库中新增 50 个值。

  • 用于历史数据的 housekeeper 设置

Zabbix 会保留固定时间段内的值,通常是数周或数月。 每个新值都需要一定的磁盘空间来存储数据和索引。

因此,如果我们希望保留 30 天的历史数据,并且每秒接收 50 个值,那么总值数量大约为 (30*24*3600)* 50 = 129.600.000,约为 130M 个值。

根据所使用的数据库引擎、接收值的类型(浮点数、整数、字符串、日志文件等),保存单个值所需的磁盘空间可能从 40 字节到数百字节不等。 通常,数值型监控项每个值大约需要 90 字节2。 在我们的示例中,这意味着 130M 个值将需要 130M * 90 字节 = 10.9GB 的磁盘空间。

文本/日志监控项值的大小无法精确预测,但通常可以按每个值约 500 字节估算。

  • 用于趋势数据的 housekeeper 设置

Zabbix 会在 trends 表中为每个监控项保留 1 小时的 max/min/avg/count 值集合。 这些数据用于趋势分析和长期图表。 这一小时的周期无法自定义。

Zabbix 数据库根据数据库类型,每个总计大约需要 90 字节。 假设我们希望保留 5 年的趋势数据。 3000 个监控项的值每年将需要 3000*24*365* 90 = 2.2GB,5 年则为 11GB

  • 用于事件的 housekeeper 设置

每个 Zabbix 事件大约需要 250 字节的磁盘空间1。 很难估算 Zabbix 每天生成的事件数量。 在最坏情况下,可以假设 Zabbix 每秒生成一个事件。

对于每个已恢复的事件,都会创建一条 event_recovery 记录。 通常大多数事件都会恢复,因此可以假设每个事件对应一条 event_recovery 记录。 这意味着每个事件还会额外占用 80 字节。

此外,事件还可以包含标签,每条标签记录大约需要 100 字节的磁盘空间1。 每个事件的标签数量(#tags)取决于配置。 因此,每个事件还需要额外的 #tags * 100 字节磁盘空间。

这意味着,如果我们希望保留 3 年的事件数据,则需要 3*365*24*3600* (250+80+#tags*100) = \~30GB+#tags*100B 的磁盘空间2

1 如果事件名称、标签和值包含非 ASCII 字符,则会占用更多空间。
2 这些大小估算基于 MySQL,其他数据库可能会有所不同。

下表包含可用于计算 Zabbix 系统所需磁盘空间的公式:

参数 所需磁盘空间公式(字节)
Zabbix 配置 固定大小。通常为 10MB 或更少。
历史数据 days*(items/refresh rate)*24*3600*bytes
items : 监控项数量
days : 保留历史数据的天数
refresh rate : 监控项的平均刷新间隔
bytes : 保存单个值所需的字节数,取决于数据库引擎,通常约为 \~90 字节。
趋势数据 days*(items/3600)*24*3600*bytes
items : 监控项数量
days : 保留历史数据的天数
bytes : 保存单个趋势值所需的字节数,取决于数据库引擎,通常约为 \~90 字节。
事件 days*events*24*3600*bytes
events : 每秒事件数。在最坏情况下为每秒一个(1)事件。
days : 保留历史数据的天数
bytes : 保存单个事件所需的字节数,取决于数据库引擎,通常约为 \~330 + 每个事件的平均标签数 * 100 字节。

因此,总所需磁盘空间可按以下公式计算:

配置 + 历史数据 + 趋势数据 + 事件

磁盘空间不会在安装 Zabbix 后立即被占用。 数据库大小会逐渐增长,然后在某个时间点停止增长,这取决于 housekeeper 设置。

时间同步

运行Zabbix的服务器上必须拥有精确的系统时间。 ntpd 是最常用的守护进程,用于将 主机 的时间与其他机器的时间进行同步。 强烈建议在运行Zabbix组件的所有系统上保持系统时间同步。

网络要求

以下列出的开放端口适用于各组件的默认配置。

端口 组件
前端 80 上的 http,443 上的 https
服务器 10051(用于主动 proxy/agents)
主动 Proxy 10051
被动 Proxy 10051
Agent2 10050
Trapper
JavaGateway 10052
WebService 10053

应 在防火墙中打开端口号以启用与 Zabbix 的外部通信。 通常,传出的 TCP 连接不需要显式的防火墙设置。