要求
硬件
内存
Zabbix 同时需要物理内存和磁盘内存。 所需的磁盘内存大小显然取决于被监控的主机数量和参数数量。 如果您计划长期保留监控参数的历史记录,则应考虑至少准备几 GB 的空间,以便在数据库中存储这些历史记录。 每个 Zabbix 守护进程都需要与数据库服务器建立多个连接。 为连接分配的内存量取决于数据库引擎的配置。
物理内存越多,数据库(因此 Zabbix)的运行速度就越快。
CPU
Zabbix,尤其是 Zabbix 数据库,可能会根据监控参数的数量和所选数据库引擎而需要大量 CPU 资源。
其他硬件
在 Zabbix 中使用短信通知支持功能需要串行通信端口和串行 GSM 调制解调器。
USB 转串口转换器也可以使用。
硬件配置示例
下表提供了硬件配置示例,假设使用的是 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 |
m6i.4xlarge/m6g.4xlarge |
| 超大型 | 1 000 000 | 32 | 96 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.8xlarge/m6g.8xlarge |
1 1 个指标 = 1 个监控项 + 1 个触发器 + 1 个图形
2 这是使用 Amazon 通用型 EC2 实例的示例,采用 ARM64 或 x86_64 架构;在将 Zabbix 安装到生产环境之前,应在评估和测试阶段根据实际情况选择合适的实例类型,例如计算优化型、内存优化型或存储优化型实例。
实际配置在很大程度上取决于活动监控项的数量和刷新频率(详见本页的数据库大小部分)。 对于大型安装,强烈建议将数据库运行在独立的服务器上。
支持的平台
由于安全要求以及监控服务器的关键任务性质,只有 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 起的所有桌面版和服务器版,因为它仅使用受支持的 Go 版本进行编译,以防止严重的安全漏洞。自 Go 1.21 起,Windows 的最低要求版本已提高,因此 Windows 10/Server 2016 成为 Zabbix agent 2 的最低支持版本。 |
| 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 服务器/agent 也可能在其他类 Unix 操作系统上运行。
如果 Zabbix 在启用加密的情况下编译,则会禁用 core dump;如果系统不允许禁用 core dump,则 Zabbix 将无法启动。
所需软件
Zabbix 基于现代 Web 服务器、主流数据库引擎和 PHP 脚本语言构建。
第三方外部配套软件
如果标明为必需,则表示所需的软件/库是严格必要的。 可选项则用于支持某些特定功能。
| Software | Mandatory status | Supported versions | Comments |
|---|---|---|---|
| MySQL/Percona | 其中之一 | 8.4.0-9.5.X | 如果 MySQL(或 Percona)用作 Zabbix 后端数据库,则为必需。需要 InnoDB 引擎。 我们建议使用 C API (libmysqlclient) 库来构建服务器/proxy。 |
| MariaDB | 10.11.00-12.0.X | 需要 InnoDB 引擎。 推荐版本为 11.4。 我们建议使用 MariaDB Connector/C 库来构建服务器/proxy。 另请参见:MariaDB 可能出现的死锁问题 和 使用 MariaDB 10.5.1–10.5.9 时对 UI 元素的访问。 |
|
| PostgreSQL | 15.0-18.X | 如果 PostgreSQL 用作 Zabbix 后端数据库,则为必需。 根据安装规模,可能需要增大 PostgreSQL 的 work_mem 配置属性(默认值为 4MB),以便数据库在执行特定操作时使用足够的内存,并避免查询执行耗时过长。 |
|
| TimescaleDB for PostgreSQL | 2.20.X-2.25.X | 如果 TimescaleDB 用作 PostgreSQL 数据库扩展,则为必需。请确保安装支持压缩功能的 TimescaleDB Community Edition。 请注意,自 TimescaleDB 2.10 起支持 PostgreSQL 15。 您还可以参阅 TimescaleDB documentation,了解 PostgreSQL 与 TimescaleDB 版本兼容性的详细信息。 |
|
| SQLite | 可选 | 3.3.5-3.34.X | SQLite 仅受 Zabbix proxy 支持。如果 SQLite 用作 Zabbix proxy 数据库,则为必需。 |
| Elasticsearch | 7.X | Elasticsearch 仅受 Zabbix 服务器支持,且仅用于存储历史数据。目前对 Elasticsearch 的支持仍处于实验阶段。另请参见 服务器/proxy 的所需软件。 | |
| smartmontools | 7.1 或更高版本 | Zabbix agent 2 必需。 | |
| who | 用户数量插件必需。 | ||
| dpkg | system.sw.packages 插件必需。 | ||
| pkgtool | system.sw.packages 插件必需。 | ||
| rpm | system.sw.packages 插件必需。 | ||
| pacman | system.sw.packages 插件必需。 | ||
| q applets | 作为 q applets 一部分的 qlist 和 qsize,是 Gentoo Linux 上 system.sw.packages 插件所必需的。 |
尽管 Zabbix 可以使用操作系统中提供的数据库,但为了获得最佳体验,我们建议使用从数据库开发者官方仓库安装的数据库。
前端
Zabbix 前端支持的最小屏幕宽度为 1200px。
如果标明为必需,则表示所需软件/库是绝对必要的。 可选项则用于支持某些特定功能。
| Software | Mandatory status | Supported versions | Comments |
|---|---|---|---|
| PHP | 是 | 8.2.0 - 8.4.X | |
| Apache | 其中之一 | 2.4 或更高版本 | |
| Nginx | 1.20 或更高版本 | ||
| MySQL | 其中之一 | 请参见 第三方外部环境软件 | |
| PostgreSQL | |||
| PHP extensions | |||
| mysqli | 是 | 如果 MySQL 用作 Zabbix 后端数据库,则为必需。 | |
| pgsql | 如果 PostgreSQL 用作 Zabbix 后端数据库,则为必需。 | ||
| bcmath | php-bcmath (--enable-bcmath) | ||
| mbstring | php-mbstring (--enable-mbstring) | ||
| sockets | php-net-socket (--enable-sockets);用户脚本支持所必需。 | ||
| gd | 2.0.28 或更高版本 | php-gd(如果发行版提供方将其作为单独的软件包提供);PHP GD 扩展必须支持 PNG 图像(--with-png-dir)、JPEG 图像(--with-jpeg-dir)和 FreeType 2(--with-freetype-dir)。为避免某些前端语言在图形中可能出现的文本重叠问题,可能需要 2.3.0 或更高版本。 | |
| libxml | 2.6.15 或更高版本 | php-xml(如果发行版提供方将其作为单独的软件包提供) | |
| xmlwriter | php-xmlwriter(如果发行版提供方将其作为单独的软件包提供) | ||
| xmlreader | php-xmlreader(如果发行版提供方将其作为单独的软件包提供) | ||
| ctype | php-ctype (--enable-ctype) | ||
| session | php-session(如果发行版提供方将其作为单独的软件包提供) | ||
| ldap | 否 | php-ldap;LDAP 身份验证所必需。 | |
| openssl | php-openssl;SAML 身份验证所必需。 | ||
| gettext | php-gettext (--with-gettext);翻译所必需。 | ||
| cURL | 7.19.4 或更高版本 | php-curl;Duo Universal Prompt MFA 和 SMTP authentication 所必需。 | |
Zabbix 随附的第三方前端库:
| Library | Mandatory status | Supplied version | Comments |
|---|---|---|---|
| jQuery JavaScript Library | 是 | 3.6.0 | 简化跨浏览器开发过程的 JavaScript 库。 |
| jQuery UI | 1.12.1 | 构建于 jQuery 之上的一组用户界面交互、效果、小部件和主题。 | |
| SAML PHP Toolkit | 4.3.1 | 一个 PHP 工具包,增加了对 SAML 2.0 身份验证的支持,从而能够登录 Zabbix。 | |
| Symfony Yaml Component | 5.1.0 | 增加了以 YAML 格式导出和导入 Zabbix 配置元素的支持。 |
Zabbix 也可能在较早版本的 Apache、MySQL 和 PostgreSQL 上运行。
对于默认 DejaVu 之外的其他字体,可能需要 PHP 函数 imagerotate。 如果缺少该函数,这些字体在显示图形时可能无法正确渲染。 该函数仅在 PHP 使用捆绑的 GD 编译时可用,而 Debian 和其他发行版并非如此。
用于编写和调试 Zabbix 前端代码的第三方库:
| Library | Mandatory status | Minimum version | Description |
|---|---|---|---|
| Composer | 否 | 2.4.1 | PHP 的应用级包管理器,提供用于管理 PHP 软件依赖项和所需库的标准格式。 |
| PHPUnit | 8.5.29 | 用于测试 Zabbix 前端的 PHP 单元测试框架。 | |
| SASS | 3.4.22 | 一种预处理脚本语言,可被解释并编译为层叠样式表(CSS)。 |
客户端侧的 Web 浏览器
必须启用 Cookie 和 JavaScript。
支持 Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari 和 Opera 的最新稳定版本。
已实施 IFrame 的同源策略,这意味着不能将 Zabbix 放置在不同域名的框架中。
不过,如果放置在框架中的页面与 Zabbix 前端位于同一域名下,则该页面将能够通过 JavaScript 访问 Zabbix 前端。
例如,http://secure-zabbix.com/cms/page.html 这样的页面,如果被放置到 http://secure-zabbix.com/zabbix/ 上的仪表板中,将拥有对 Zabbix 的完整 JS 访问权限。
服务器/proxy
如果标明为必需,则所需软件/库是绝对必要的。
可选项则用于支持某些特定功能。
| Requirement | Mandatory status | Description |
|---|---|---|
| libpcre2 | 是 | 支持 Perl Compatible Regular Expression (PCRE) 需要 PCRE2 库。 支持 PCRE2 v10.x。 |
| libevent | 进程间通信所必需。版本 2.0.10 或更高。 | |
| libevent-pthreads | 进程间通信所必需。 | |
| libpthread | 支持互斥锁和读写锁所必需(可能是 libc 的一部分)。 | |
| libresolv | DNS 解析所必需(可能是 libc 的一部分)。 | |
| libiconv | 文本编码/格式转换所必需(可能是 libc 的一部分)。对于 Linux 上的 Zabbix 服务器为必需。 | |
| libz | 压缩支持所必需。 | |
| libm | 数学库。仅 Zabbix 服务器需要。 | |
| libmysqlclient | 其中之一 | 使用 MySQL 时必需。 |
| libmariadb | 使用 MariaDB 时必需。 | |
| libpq5 | 使用 PostgreSQL 时必需;libpq5 版本必须与所用 PostgreSQL 数据库版本一致或更高。 | |
| libsqlite3 | 使用 SQLite 时必需。仅 Zabbix proxy 需要。 | |
| libOpenIPMI | 否 | IPMI 支持所必需。仅 Zabbix 服务器需要。 |
| libssh2 or libssh | SSH checks 所必需。版本 1.8.0 或更高(libssh2);0.9.0 或更高(libssh)。 | |
| libcurl | 以下功能所必需: - Web monitoring、VMware monitoring 和 HTTP agent 监控项(以上全部功能均需 7.19.1 或更高版本); - Zabbix agent 的 web.page.* 监控项(需 7.19.1 或更高版本;另请参见 agent 要求); - SMTP authentication(Basic:7.20.0 或更高版本;OAuth:7.33 或更高版本;另请参见 前端 要求); - Elasticsearch(需 7.28.0 或更高版本)。 建议所有功能均使用 7.28.0 或更高版本。 要对 web.page.* 监控项使用升级后的 cURL 功能,请重启 Zabbix 服务器/proxy。对于 SMTP 身份验证,请在运行时使用 libcurl-full 软件包。 |
|
| libxml2 | VMware monitoring 和 XML XPath 预处理所必需。 | |
| net-snmp | SNMP 支持所必需。版本 5.3.0 或更高。 从 net-snmp 库 5.8 开始支持强加密协议(AES192/AES192C、AES256/AES256C);在基于 RHEL 8+ 的系统上,建议使用 net-snmp 5.8.15 或更高版本。 |
|
| libunixodbc | database monitoring 所必需。 | |
| libgnutls or libopenssl | 使用加密时必需。 最低版本:libgnutls - 3.1.18,libopenssl - 1.0.1 |
|
| libldap | LDAP 支持所必需。 | |
| fping | ICMP ping 监控项 所必需。 | |
| c-ares | 如果 Zabbix 使用 --with-ares 选项进行配置,则异步 DNS 解析所必需。否则将使用 libevent。最低版本:1.16.0。DNS 查询缓存(默认启用查询缓存)需要 c-ares 1.26.0 或更高版本。 |
Agent
| 要求 | 是否必需 | 描述 |
|---|---|---|
| libpcre2 | 是 | Perl Compatible Regular Expression (PCRE) 支持需要 PCRE2 库。 支持 PCRE2 v10.x。 日志监控需要此库。在 Windows 上也需要。 |
| libpthread | 需要用于互斥锁和读写锁支持(可能是 libc 的一部分)。在 Windows 上不需要。 | |
| libresolv | 需要用于 DNS 解析(可能是 libc 的一部分)。在 Windows 上不需要。 | |
| libiconv | 在日志监控项、文件内容、文件正则表达式和 regmatch 监控项中进行文本编码/格式转换为 UTF-8 时需要此库(可能是 libc 的一部分)。在 Windows 上不需要。 | |
| libgnutls 或 libopenssl | 否 | 如果使用加密,则需要此库。 最低版本: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
| 要求 | 是否必需 | 描述 |
|---|---|---|
| Go | 是 | 从源代码构建 Zabbix agent 2 及其插件所必需。 支持 Go 1.24.10 或更高版本。安装说明请参见 go.dev。 Zabbix agent 2 及其插件使用的 Go 库列在 Zabbix Git 仓库中(仓库中标记为 indirect 的库是其他必需库的依赖项):- Zabbix agent 2 - 插件支持 - PostgreSQL - MongoDB - MSSQL - Ember+ - NVIDIA GPU - 示例插件 |
| libpcre2 | 是 | Perl Compatible Regular Expression (PCRE) 支持所需的 PCRE2 库。 支持 PCRE2 v10.x。 日志监控所必需。在 Windows 上也必需。 |
| libopenssl | 否 | 使用加密时必需。 在 UNIX 平台上需要 OpenSSL 1.0.1 或更高版本。 OpenSSL 库必须启用 PSK 支持。不支持 LibreSSL。 在 Microsoft Windows 系统上需要 OpenSSL 1.1.1 或更高版本。 |
Web 服务
支持使用最新稳定版本的 Google Chrome 通过 Zabbix Web 服务生成计划报表。
构建 Web 服务所需的 Go 版本与 Zabbix agent 2 使用的版本一致。
Java 网关
如果您是从源代码仓库或归档文件获取 Zabbix,则所需的依赖项已包含在源代码树中。
如果您是从发行版的软件包获取 Zabbix,则所需的依赖项已由打包系统提供。
在上述两种情况下,软件都已可直接使用,无需额外下载。
但是,如果您希望提供这些依赖项的自定义版本(例如,您正在为某个 Linux 发行版准备软件包),下面列出了已知可与 Java 网关配合使用的库版本。 Zabbix 也可能适用于这些库的其他版本。
下表列出了当前在原始代码中随 Java 网关捆绑提供的 JAR 文件:
| Library | Mandatory status | Bundled version | Comments |
|---|---|---|---|
| android-json | 是 | 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 | 按需 |
| Zabbix agent 2 | 10050 | TCP | 按需 |
| Zabbix 服务器 | 10051 | TCP | 按需 |
| Zabbix proxy | 10051 | TCP | 按需 |
| Zabbix Java 网关 | 10052 | TCP | 按需 |
| Zabbix Web 服务 | 10053 | TCP | 按需 |
| Zabbix 前端 | 80 | HTTP | 按需 |
| 443 | HTTPS | 按需 | |
| Zabbix trapper | 10051 | TCP | 按需 |
应在防火墙中开放这些端口号,以启用 Zabbix 通信。 出站 TCP 连接通常不需要显式的防火墙设置。
数据库大小
Zabbix 配置数据需要固定数量的磁盘空间,并且增长不大。
Zabbix 数据库大小主要取决于以下变量,这些变量定义了存储的历史数据量:
- 每秒处理的值数量
这是 Zabbix 服务器每秒接收的新值的平均数量。
例如,如果我们有 3000 个监控项用于监控,刷新间隔为 60 秒,则每秒值的数量计算为 3000/60 = 50。
这意味着每秒都会向 Zabbix 数据库中添加 50 个新值。
- 历史数据的 housekeeper 设置
Zabbix 会将值保留固定的一段时间,通常为数周或数月。
每个新值都需要一定的磁盘空间来存储数据和索引。
因此,如果我们希望保留 30 天的历史数据,并且每秒接收 50 个值,则值的总数大约为 (30*24*3600)* 50 = 129.600.000,即大约 1.3 亿个值。
根据所使用的数据库引擎、接收值的类型(浮点数、整数、字符串、日志文件等),保存单个值所需的磁盘空间可能从 40 字节到数百字节不等。
对于数值型监控项,通常每个值约为 90 字节2。
在我们的示例中,这意味着 1.3 亿个值将需要 130M * 90 字节 = 10.9GB 的磁盘空间。
文本/日志监控项值的大小无法精确预测,但可以预计每个值大约为 500 字节。
- 趋势数据的 housekeeper 设置
Zabbix 会在表 trends 中为每个监控项保留一组 1 小时的最大值/最小值/平均值/计数值。
这些数据用于趋势分析和长期图形。
1 小时周期无法自定义。
根据数据库类型不同,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(用于 active proxy/agents) |
| Active Proxy | 10051 |
| Passive Proxy | 10051 |
| Agent2 | 10050 |
| Trapper | |
| JavaGateway | 10052 |
| WebService | 10053 |
应在防火墙中开放这些端口号,以启用与 Zabbix 的外部通信。 出站 TCP 连接通常不需要显式的防火墙设置。