内存
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 脚本语言构建。
如果声明为必需,则相应的软件/库是严格必需的。 可选软件用于支持某些特定功能。
软件 | 必需状态 | 支持的版本 | 备注 |
---|---|---|---|
MySQL/Percona | One of | 8.0.30-9.0.X | 如果使用 MySQL(或 Percona)作为 Zabbix 后端数据库,则为必需。需要 InnoDB 引擎。 新增支持的 MySQL 版本: - 自 Zabbix 7.0.1 起支持 8.4.X; - 自 Zabbix 7.0.2 起支持 9.0.X。 我们建议使用 C API (libmysqlclient) 库来构建 server/proxy。 |
mariadb | 10.5.00-11.5.X | 需要 InnoDB 引擎。 推荐的 version 是 11.4。 我们建议使用 MariaDB Connector/C 库来构建 server/proxy。 新增支持的 mariadb 版本: - 自 Zabbix 7.0.1 起支持 11.4.X; - 自 Zabbix 7.0.4 起支持 11.5.X。 另请参阅:mysqlmariadb可能的死锁 和 使用 mariadb 10.5.1–10.5.9 访问 UI 元素。 |
|
Oracle | 19c - 21c | 如果使用 Oracle 作为 Zabbix 后端数据库,则为必需。 自 Zabbix 7.0 起,对 Oracle DB 的支持已被弃用。 |
|
PostgreSQL | 13.0-17.X | 如果使用 PostgreSQL 作为 Zabbix 后端数据库,则为必需。 根据安装规模,可能需要增加 PostgreSQL 的 work_mem 配置属性(默认值为 4MB),以确保数据库在特定操作中使用的 memory 数量足够,且 query 执行不会耗时过长。 新增支持的 PostgreSQL 版本: - 自 Zabbix 7.0.6 起支持 17.X。 |
|
TimescaleDB for PostgreSQL | 2.13.0-2.21.X | 如果使用 TimescaleDB 作为 PostgreSQL 数据库扩展,则为必需。请确保安装支持压缩的 TimescaleDB 社区版。 注意 PostgreSQL 15 自 TimescaleDB 2.10 起得到支持。 您还可以参考 Timescale documentation 了解有关 PostgreSQL 和 TimescaleDB version 兼容性的详细信息。 新增支持的 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。 |
|
SQLite | Optional | 3.3.5-3.34.X | 仅支持与 Zabbix proxies 一起使用。如果使用 SQLite 作为 Zabbix 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 | qlist 和 qsize ,作为 q applets 的一部分,是 Gentoo Linux 上 system.sw.packages 插件所必需的。 |
尽管 Zabbix 可以与操作系统中提供的数据库一起工作,但为了获得最佳体验,我们建议从官方数据库开发者仓库安装数据库。
Zabbix前端界面支持的最小屏幕宽度为1200像素。
若标注为必需,相关软件/库则为严格必需项。可选软件/库用于支持某些特定功能。
软件 | 必需状态 | 支持版本 | 备注 |
---|---|---|---|
PHP | Yes | 8.0.0 - 8.4.X | 增加了对以下PHP版本的支持: - 自Zabbix 7.0.10起支持8.4.X版本。 |
Apache | One of | 2.4或更高版本 | |
nginx | 1.20或更高版本 | ||
MySQL | One of | 参见第三方外部配套软件 | |
PostgreSQL | |||
Oracle | |||
PHP扩展 | |||
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或更高版本 | 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 | No | php-ldap;用于LDAP认证。 | |
openssl | php-openssl;用于SAML认证。 | ||
gettext | php-gettext (--with-gettext);用于翻译支持。 | ||
curl | php-curl;用于Duo Universal Prompt multi-factor authentication选项。 |
随Zabbix提供的第三方前端库:
库 | 必需状态 | 最低版本 | 备注 |
---|---|---|---|
jQuery JavaScript Library | Yes | 3.6.0 | 简化跨浏览器开发过程的JavaScript库。 |
jQuery UI | 1.12.1 | 基于Top版本jQuery构建的一组用户界面交互、效果、小部件和主题。 | |
SAML PHP Toolkit | 4.0.0 | 一个PHP工具包,为Zabbix添加SAML 2.0认证支持,以便登录Zabbix。 | |
Symfony Yaml Component | 5.1.0 | 为YAML格式的export和import Zabbix配置元素添加支持。 |
Zabbix也可能在Apache、MySQL、Oracle和PostgreSQL的早期版本上运行。
对于默认的DejaVu字体以外的字体,可能需要PHP函数imagerotate。 如果缺少该函数,在显示图表时这些字体可能渲染不正确。 只有在PHP使用捆绑的GD编译时才提供该函数,在Debian及其他发行版中通常并非如此。
用于编写和调试Zabbix前端代码的第三方库:
库 | 必需状态 | 最低版本 | 描述 |
---|---|---|---|
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 访问权限。
如果声明为强制性,则必需的软件/库是严格必要的。 可选组件用于支持某些特定功能。
要求 | 强制状态 | 描述 |
---|---|---|
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 | 文本编码/格式转换所必需 conversion(可能是 libc 的一部分)。在 Linux 上是 Zabbix server 的必需组件。 | |
libz | 支持压缩所必需的。 | |
libm | 数学库。仅由 Zabbix server 需要。 | |
libmysqlclient | One of | 若使用 MySQL 则为必需。 |
libmariadb | 如果使用 mariadb,则为必需。 | |
libclntsh | 如果使用 Oracle,则为必需;libclntsh version 必须等于或高于所使用的 Oracle 数据库的 version。 | |
libpq5 | 若使用 PostgreSQL 则为必需;libpq5 version 的版本必须匹配或高于所使用的 PostgreSQL 数据库的 version 版本。 | |
libsqlite3 | 如果使用 SQLite,则为必需。仅对 Zabbix proxy 为必需。 | |
libOpenIPMI | No | 支持 IPMI 所需。仅在使用 Zabbix server 时需要。 |
libssh2 或 libssh | 用于 概述,必需。版本 1.0 或更高(libssh2);0.9.0 或更高(libssh)。 | |
libcurl | 必需用于网页监控、VMware监控、SMTP认证、web.page.* Zabbix agent items、HTTP agent 监控项 以及 Elasticsearch(如果使用)。需要版本 7.19.1 或更高版本(推荐使用 7.28.0 或更高版本)。Libcurl version 的要求: - SMTP认证:version 7.20.0 或更高版本 - Elasticsearch:version 7.28.0 或更高版本 为了使用升级的cURL功能,请重启 Zabbix server/proxy 和 agent(用于 web.page.* 监控项)。 |
|
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 或 libopenssl | 使用 编译带加密支持的zabbix 时必需。 最低版本:libgnutls - 3.1.18,libopenssl - 1.0.1 |
|
libldap | 支持LDAP所需。 | |
fping | 用于 icmp-ping-检测 的必要工具。 | |
c-ares | 如果 Zabbix 使用 --with-ares 选项配置,则为必需。否则将使用 libevent。自 Zabbix 7.0.11 起支持;最低版本:1.16.0 |
要求 | 必须状态 | 描述 |
---|---|---|
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 | 在日志 监控项、file 内容、file 正则表达式和 regmatch 监控项 中用于文本编码/格式转换为 UTF-8(可能是 libc 的一部分)。不需在 Windows 上使用。version | |
libgnutls 或 libopenssl | No | 若使用 编译带加密支持的zabbix 则为必需。 最低版本:libgnutls - 3.1.18,libopenssl - 1.0.1 在 Microsoft Windows 上需要 OpenSSL 1.1.1 或更高版本。 |
libldap | 如果使用 LDAP 则为必需。Windows 上不支持。 | |
libcurl | 扩展支持 web.page.* Zabbix agent items 需要此库。没有 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 或更高版本。 |
需求 | 必须状态 | 描述 |
---|---|---|
Go | Yes | 从源代码构建 Zabbix agent 2 及其插件时需要。 支持 Go 1.23 或更高版本。安装说明请参见 go.dev。 Zabbix agent 2 及其插件使用的 Go 库在 Zabbix Git 仓库中列出(仓库中标记为 indirect 的库是其他必需库的依赖项):- Zabbix agent 2 - Plugin support - PostgreSQL - MongoDB - MSSQL - Ember+ - Example plugin |
libpcre/libpcre2 | One of | 支持 Perl Compatible Regular Expression(PCRE)时需要 PCRE/PCRE2 库。 根据 GNU/Linux 发行版的不同,名称可能不同,例如 'libpcre3' 或 'libpcre1'。支持 PCRE v8.x 和 PCRE2 v10.x。 日志监控需要。Windows 上也需要。 |
libopenssl | No | 使用加密时需要。 UNIX 平台上需要 OpenSSL 1.0.1 或更高版本。 OpenSSL 库必须启用 PSK 支持。不支持 LibreSSL。 在 Microsoft Windows 系统上需要 OpenSSL 1.1.1 或更高版本。 |
使用 Zabbix 网络服务生成预定报告时,支持最新稳定版的 Google Chrome version。
用于构建网络服务的所需 Go version 应与用于 Zabbix agent 2 的版本一致。
如果您从源代码仓库或归档文件获取了 Zabbix,则必要依赖项已经包含在源代码树中。
如果您从发行版的软件包获取了 Zabbix,则必要的依赖项已经由打包系统提供。
在上述两种情况下,软件已经可以使用,无需额外下载。
然而,如果您希望提供自己的依赖版本(例如,如果您正在为某个 Linux 发行版准备软件包),以下是 Java gateway 已知可正常工作的库版本列表:
Zabbix 也可能与这些库的其他版本兼容。
以下表格列出了当前与 Java gateway 一起捆绑在原始代码中的 JAR 文件:
库 | 必须状态 | 最低版本 | 注释 |
---|---|---|---|
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 |
可以使用 Oracle Java 或开源的 OpenJDK(version 1.6 或更高版本)来构建 Java gateway。 Zabbix 提供的软件包是使用 OpenJDK 编译的。 以下表格列出了不同发行版用于构建 Zabbix 软件包的 OpenJDK 软件包:
发行版 | OpenJDK 软件包 |
---|---|
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 server 每秒平均接收到的新值数量。 例如,如果我们有 监控项 个监控项,刷新率为 60 秒,则每秒的值数量计算为 监控项/60 = 50。
这意味着每秒向 Zabbix 数据库中添加 50 个新值。
Zabbix 会将值保留固定的时间段,通常为几周或几个月。 每个新值都需要一定量的磁盘空间用于数据和索引。
因此,如果我们希望保留 30 天的历史数据,并且每秒接收 50 个值,则总值数量大约为 (30*24*3600)* 50 = 129,600,000,或约 1.3 亿个值。
根据所使用的数据库引擎、接收值的类型(浮点数、整数、字符串、日志文件等),存储单个值所需的磁盘空间可能从 40 字节到数百字节不等。 通常情况下,对于数值型 监控项2,每个值大约需要 90 字节。 在我们的案例中,这意味着 1.3 亿个值将需要 130M * 90 字节 = 10.9GB 的磁盘空间。
文本/日志 监控项值 的大小无法精确预测,但您可预计每个值大约需要 500 字节。
Zabbix 会在表 trends 中为每个 监控项 保留每小时的 max/min/avg/count 值集。 这些数据用于趋势分析和长期图表。 每小时的时间段无法自定义。
根据数据库类型的不同,Zabbix 数据库每个总计大约需要 90 字节。 假设我们希望保留 5 年的趋势数据。 3000 个 监控项 的值将需要 3000*24*365* 90 = 2.2GB 每年,或 5 年需要 11GB。
每个 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 configuration | 固定大小。通常为 10MB 或更少。 |
History | 天数*(监控项/刷新间隔)*24*3600*字节数 监控项 : 监控项 的数量 天数 : 要保留的历史天数 刷新间隔 : 监控项 的平均刷新率 字节数 : 存储单个值所需的字节数,取决于数据库引擎,通常约为 90 字节。 |
Trends | 天数*(监控项/3600)*24*3600*字节数 监控项 : 监控项 的数量 天数 : 要保留的历史天数 字节数 : 存储单个趋势所需的字节数,取决于数据库引擎,通常约为 90 字节。 |
Events | 天数*事件数*24*3600*字节数 事件数 : 每秒的事件数量。最坏情况下每秒一个(1)事件。 天数 : 要保留的历史天数 字节数 : 存储单个趋势所需的字节数,取决于数据库引擎,通常约为 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 连接不需要显式的防火墙设置。