硬件
内存和磁盘
每个 Zabbix 守护程序进程都需要与数据库服务器建立多个连接。 为连接分配的内存量取决于数据库引擎的配置。
您拥有的物理内存越多,数据库(以及 Zabbix )的工作速度就越快!
CPU
Zabbix,尤其是 Zabbix 数据库可能需要大量 CPU 资源,该具体取决于被监控参数的数量和所选的数据库引擎。
其他硬件
如果需要启用短信(SMS)通知功能,需要串行通讯口(serial communication port)和串行GSM调制解调器(serial GSM modem)。USB转串行转接器也同样可以工作。
硬件资源配置参考
下表提供了几个硬件配置参考:
实际上,Zabbix 环境的配置非常依赖于监控项(主动)和更新间隔。 如果是进行大规模部署,强烈建议将数据库独立部署。
受支持的平台
由于服务器操作的安全性要求和任务关键性,UNIX 是唯一能够始终如一地提供必要性能、容错和弹性的操作系统。 Zabbix以市场主流的操作系统版本运行。
经测试,Zabbix 可以运行在下列平台:
Linux
IBM AIX
FreeBSD
OpenBSD
HP-UX
Mac OS X
Solaris
Windows:自 XP 以来的所有桌面和服务器版本(仅限 Zabbix agent)
Zabbix 可以在其他类 Unix 操作系统上运行。
软件
Zabbix 是基于先进 Apache Web 服务器、领先的数据库引擎和 PHP 脚本语言构建的。
数据库管理系统
数据库 | 版本 | 备注 |
---|---|---|
MySQL | 5.0.3 - 8.0.x | 使用 MySQL 作为 Zabbix 后端数据库。需要InnoDB引擎。 MariaDB 同样支持。 |
Oracle | 10g or later | 使用 Oracle 作为 Zabbix 后端数据库。 |
PostgreSQL | 8.1 or later | 使用 PostgreSQL 作为 Zabbix 后端数据库。 建议使用 PostgreSQL 8.3 以上的版本, 以 。 |
IBM DB2 | 9.7 or later | 使用 DB2 作为 Zabbix 后端数据库。 |
SQLite | 3.3.5 or later | 只有 Zabbix proxy 支持 SQLite ,可以使用 SQLite 作为 Zabbix proxy 数据库。 |
值得注意的是,对于 IBM DB2 的支持是实验性的!
前端
Zabbix 前端需要使用下列软件:
Zabbix 也许可以在以前的Apache、MySQL、Oracle 和 PostgreSQL 版本上运行。
值得注意的是,如果需要使用默认 DejaVu 以外的字体, 可能会需要 PHP 的 imagerotate 函数。如果缺少,则在 Zabbix 前端查看图形时显示异常。该函数只有在使用捆绑的 GD 库编译 PHP 时才可用。在 Debian 和某些发行版本中,这个问题不存在。
客户端浏览器
浏览器必须启用 Cookies 和 Java Script 。
支持最新版本的 Google、Mozilla Firefox、Microsoft Internet Explorer 和 Opero。其他浏览器(Apple Safari、Konqueror)也许会支持。
值得注意的,为了执行 IFrame 的“同源政策”,意味着 Zabbix 不能放在不同域的 frames 中。
但是,如果放置在 frames 中的页面和 Zabbix 前端位于同一个域中,则置于 Zabbix frames 中的页面将可以访问 Zabbix 前端(通过JavaScript)。像 这样的页面,如果置于 http://secure-zabbix.com/zabbix/
的聚合图形或仪表盘上,将拥有对 Zabbix 的完整 JS 访问权限。
Server
在 Server 中,强制性的要求总是不可避免的。而特定功能的支持则需要可选的要求。
Mandatory requirements are needed always. Optional requirements are needed for the support of the specific function.
需求 | 需求状态 | 描述 |
---|---|---|
libpcre | 强制的 | (PCRE) 支持需要 PCRE 库。 命名可能会因 GNU/Linux 发行版而不同,例如 ‘libpcre3’ 或 ‘libpcre1’。 值得注意的是,您需要准确的 PCRE (v8.x) ;而不使用 PCRE2 (v10.x) 库。 |
libevent | 批量指标支持和 IPMI 监控是必需的。需要 1.4 版本或更高。 值得注意的是,对于 Zabbix proxy,此需求是可选的;但它对于支持 IPMI 监控是必需的。 | |
libpthread | 支持互斥锁和读写锁所需的。 | |
zlib | 支持压缩所需的。 | |
OpenIPMI | 可选的 | 支持IPMI 所需的。 |
libssh2 | 支持 SSH 所需的。需要 1.0 版本或更高。 | |
fping | 支持 ICMP ping 监控项 所需的。 | |
libcurl | Web 监控、VMware 监控和 SMTP 认证所需的。对于 SMTP 认证,需要 7.20.0 版本或更高。同时亦是 Elasticsearch 所需的。 | |
libiksemel | 支持 Jabber 所需的。 | |
libxml2 | 支持 VMware monitoring 所需的。 | |
net-snmp | Required for 支持 SNMP 所需的。 |
Java gateway
如果从源码存储库或归档中获取 Zabbix,则在源代码树中已包含必需的依赖关系。
如果从发行包中获取 Zabbix ,则封装系统里已提供了必要的依赖关系。
在上述两种情况下,即可准备部署软件了,而不需要下载额外的依赖包。
但是,如果您希望提供这些依赖关系的版本(例如,如果您正在为某些 Linux 发行版准备软件包),则下面是 Java gateway 已知可以使用的库的版本列表。 Zabbix 也许可以与这些库的其他版本一起使用。
下表列出了原始代码中当前与 Java gateway 捆绑在一起的 JAR 文件:
库 | 许可 | 网站 | 备注 |
---|---|---|---|
logback-core-0.9.27.jar | EPL 1.0, LGPL 2.1 | 0.9.27、1.0.13 和 1.1.1 测试通过。 | |
logback-classic-0.9.27.jar | EPL 1.0, LGPL 2.1 | http://logback.qos.ch/ | 0.9.27、1.0.13 和 1.1.1 测试通过。 |
slf4j-api-1.6.1.jar | MIT License | 1.6.1、1.6.6 和 1.7.6 测试通过 | |
android-json-4.3_r3.1.jar | Apache License 2.0 | https://android.googlesource.com/platform/libcore/+/master/json | 2.3.3_r1.1 和 4.3_r3.1 测试通过。关于创建 JAR 文件,详见 src/zabbix_java/lib/README 说明。 |
Java gateway 使用 Java 1.6 及更高版本编译和运行。 如需要对 Java gateway 预编译版本进行编译,建议使用Java 1.6进行编译,直到最新版本。
数据库容量
Zabbix 配置文件数据需要固定数量的磁盘空间,且增长不大。
- 每秒处理值的数量
这是 Zabbix server 每秒接收的新值的平均数。 例如,如果有3000个监控项用于监控,取值间隔为60秒,则这个值的数量计算为 3000/60 = 50 。
这意味着每秒有 50 个新值被添加到 Zabbix 数据库中。
- 关于历史数据的管家设置
Zabbix 将接收到的值保存一段固定的时间,通常为几周或几个月。 每个新值都需要一定量的磁盘空间用于数据和索引。
所以,如果我们每秒收到 50 个值,且希望保留 30 天的历史数据,值的总数将大约在 (30*24*3600)* 50 = 129.600.000,即大约 130M 个值。
根据所使用的数据库引擎,接收值的类型(浮点数、整数、字符串、日志文件等),单个值的磁盘空间可能在 40 字节到数百字节之间变化。 通常,数值类型的每个值大约为 90 个字节。
在上面的例子中,这意味着 130M 个值需要占用 130M * 90 bytes = 10.9GB 磁盘空间。
文本和日志类型的监控项值的大小是无法确定的,但可以以每个值大约 500 字节来计算。
- 趋势数据的管家设置
Zabbix 为表 trends 中的每个项目保留1小时的最大值 / 最小值 / 平均值 / 统计值。 该数据用于趋势图形和历史数据图形。 这一个小时的时间段是无法自定义。
Zabbix数据库,根据数据库类型,每个值总共需要大约90个字节。
假设我们希望将趋势数据保持5年。 3000 个监控项的值每年需要占用 3000*24*365* 90 = 2.2GB 空间,或者5年需要占用 11GB 空间。
每个 Zabbix 事件需要大约 170 个字节的磁盘空间。 很难估计 Zabbix 每天生成的事件数量。 在最坏的情况下,假设 Zabbix 每秒生成一个事件。
这意味着如果想要保留3年的事件,这将需要占用 3*365*24*3600* 170 = 15GB 的空间。
下表包含可用于计算 Zabbix 系统所需磁盘空间的公式:
根据使用 MySQL 后端数据库的实际统计数据中收集到的平均值,例如监控项为数值类型的值约 90 个字节,事件约 170 个字节。
因此,所需要的磁盘总空间按下列方法计算:
配置文件数据+ 历史数据+ 趋势数据+ 事件数据
在安装 Zabbix 后不会立即使用磁盘空间。 数据库大小取决于管家设置,在某些时间点增长或停止增长。
时间同步
在运行 Zabbix 的服务器上拥有精确的系统日期非常重要。 是最受欢迎的守护进程,它将主机的时间与其他服务器的时间同步。 对于所有运行 Zabbix 组件的系统,强烈建议这些系统的时间保持同步。