硬件
内存和磁盘
Zabbix 运行需要物理内存和磁盘空间。如果刚接触 Zabbix,128 MB 的物理内存和 256 MB 的可用磁盘空间可能是一个很好的起点。 然而,所需的内存和磁盘空间显然取决于被监控的主机数量和配置参数。 如果您计划调整参数以保留较长的历史数据,那么您应该考虑至少有几 GB 磁盘空间,以便有足够的磁盘空间将历史数据存储在数据库中。
每个 Zabbix 守护程序进程都需要与数据库服务器建立多个连接。 为连接分配的内存量取决于数据库引擎的配置。
提示:您拥有的物理内存越多,数据库(以及 Zabbix )的工作速度就越快!
CPU
Zabbix,尤其是 Zabbix 数据库可能需要大量 CPU 资源,该具体取决于被监控参数的数量和所选的数据库引擎。
其他硬件
如果需要启用短信(SMS)通知功能,需要串行通讯口(serial communication port)和串行GSM调制解调器(serial GSM modem)。USB转串行转接器也同样可以工作。
硬件资源配置参考
下表提供了几个硬件配置参考:
规模平 | CPU | 内存数据库 | 受控制的主机数量 | |
小型C | ntOS V | rtual Appliance M | SQL InnoDB 1 | 0 |
中型C | ntOS 2 | CPU cores/2GB M | SQL InnoDB 5 | 0 |
大型R | dHat Enterprise Linux 4 | CPU cores/8GB R | ID10 MySQLInnoDB或PostgreSQL&g | ;1000 |
极大型Re | Hat Enterprise Linux 8 | PU cores/16GB Fa | t RAID10 MySQL InnoDB或PostgreSQL> | 10000 |
提示:实际上,Zabbix 环境的配置非常依赖于监控项(主动)和更新间隔。 如果是进行大规模部署,强烈建议将数据库独立部署。
受支持的平台
由于服务器操作的安全性要求和任务关键性,UNIX 是唯一能够始终如一地提供必要性能、容错和弹性的操作系统。 Zabbix以市场主流的操作系统版本运行。
经测试,Zabbix 可以运行在下列平台:
- Linux
- IBM AIX
- FreeBSD
- NetBSD
- OpenBSD
- HP-UX
- Mac OS X
- Solaris
- Windows:自 XP 以来的所有桌面和服务器版本(仅限 Zabbix agent)
提示:Zabbix 可以在其他类 Unix 操作系统上运行。
注意: 如果使用加密编译,Zabbix将禁用核心转储(Core dumps),如果系统不允许禁用核心转储,则 Zabbix 不会启动。
软件
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后端数据。建议使用PostgreSQL8.3以上的版本,以提供更好的VACUUM性能。 |
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/cms/page.html
这样的页面,如果置于 http://secure-zabbix.com/zabbix/
的聚合图形或仪表盘上,将拥有对 Zabbix 的完整 JS 访问权限。
服务器
强制性要求总是需要的。支持特定功能需要可选需求。
Java 网关
如果从源码存储库或归档中获取 Zabbix,则在源代码树中已包含必需的依赖关系。
如果从发行包中获取 Zabbix ,则封装系统里已提供了必要的依赖关系。
在上述两种情况下,即可准备部署软件了,而不需要下载额外的依赖包。
但是,如果您希望提供这些依赖关系的版本(例如,如果您正在为某些 Linux 发行版准备软件包),则下面是 Java gateway 已知可以使用的库的版本列表。 Zabbix 也许可以与这些库的其他版本一起使用。
下表列出了原始代码中当前与 Java gateway 捆绑在一起的 JAR 文件:
库 | 可网站 | 备注 | |
logback-core-0.9.27.jar | EPL 1.0, LGPL 2.1 | Logback Home | 0.9.27、1.0.13 和 1.1.1 测试通过。 |
logback-classic-0.9.27.jar | EPL 1.0, LGPL 2.1 | Logback Home | 0.9.27、1.0.13 和 1.1.1 测试通过。 |
slf4j-api-1.6.1.jar | MIT License | SLF4J | 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 数据库大小主要取决于这些变量,这些变量决定了存储的历史数据量:
- 每秒处理值的数量
这是 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 的服务器上拥有精确的系统日期非常重要。 ntpd 是最受欢迎的守护进程,它将主机的时间与其他服务器的时间同步。 对于所有运行 Zabbix 组件的系统,强烈建议这些系统的时间保持同步。
如果时间未同步,Zabbix将在建立数据连接之后,根据得到的客户端和服务器的时间戳,并通过客户端和服务器的时间差对获得值的时间戳进行调整,将获得值的时间戳转化为 Zabbix server 的时间。 为了尽可能简化并且避免可能的并发问题出现,网络延迟将会被忽略。因此,通过主动连接(active agent, active proxy, sender)获得的时间戳数据将包含网络延迟,通过被动连接(passive proxy)获得的数据已经减去了网络延迟。所有其他监控类型都在服务器时间里完成,并且不会调整其时间戳。
本文转载自Zabbix官方文档:https://www.zabbix.com/documentation/5.2/zh/manual/installation/requirements