要求
硬件
记忆
Zabbix需要物理内存和磁盘内存。128 MB的物理内存和256 MB的可用磁盘空间可能是一个很好的起点。但是,所需的磁盘内存量显然取决于正在监视的主机和参数的数量。如果您计划保留受监视参数的长历史,那么您应该考虑至少几千兆字节,以便有足够的空间将历史记录存储在数据库中。每个Zabbix守护程序进程都需要与数据库服务器建立多个连接。为连接分配的内存量取决于数据库引擎的配置。
您拥有的物理内存越多,数据库(以及Zabbix)的工作速度就越快!
中央处理器
Zabbix,尤其是Zabbix数据库可能需要大量CPU资源,具体取决于受监视参数的数量和所选的数据库引擎。
其他硬件
在Zabbix中使用SMS通知支持需要串行通信端口和串行GSM调制解调器。USB转串口转换器也可以工作。
硬件配置示例
该表提供了几个硬件配置示例:
名称 | 平台 | CPU /内存 | 数据库 | 受监控的主机 |
---|---|---|---|---|
小 | CentOS | 虚拟设备 | MySQL InnoDB | 100 |
介质 | CentOS | 2个CPU核心/ 2GB | MySQL InnoDB | 500 |
大 | RedHat Enterprise Linux | 4个CPU核心/ 8GB | RAID10 MySQL InnoDB或PostgreSQL | > 1000 |
很大 | RedHat Enterprise Linux | 8个CPU核心/ 16GB | 快速RAID10 MySQL InnoDB或PostgreSQL | > 10000 |
实际配置非常依赖于活动项目数和刷新率。强烈建议在单独的框中运行数据库以进行大型安装。
支持的平台
由于监视服务器的安全性要求和任务关键性,UNIX是唯一能够始终如一地提供必要性能,容错和弹性的操作系统。Zabbix以市场领先的版本运营。
Zabbix在以下平台上进行了测试:
-
Linux
-
IBM AIX
-
FreeBSD
-
NetBSD
-
OpenBSD系统
-
HP-UX
-
Mac OS X.
-
Solaris
-
Windows:自XP以来的所有桌面和服务器版本(仅限Zabbix代理)
Zabbix也可以在其他类Unix操作系统上运行。
如果使用加密编译,Zabbix将禁用核心转储,如果系统不允许禁用核心转储,则Zabbix不会启动。
软件
Zabbix是围绕现代Apache Web服务器,领先的数据库引擎和PHP脚本语言构建的。
数据库管理系统
软件 | 版 | 评论 |
---|---|---|
MySQL | 5.0.3 - 8.0.x | 如果MySQL用作Zabbix后端数据库,则是必需的。InnoDB引擎是必需的。 MariaDB也与Zabbix合作。 |
Oracle | 10g或更高 | 如果将Oracle用作Zabbix后端数据库,则为必需。 |
PostgreSQL | 8.1或更高版本 | 如果将PostgreSQL用作Zabbix后端数据库,则必需。 建议至少使用PostgreSQL 8.3,它引入了更好的VACUUM性能。 |
TimescaleDB | 1.0或更高版本, OSS(免费)版本 | 如果TimescaleDB用作Zabbix后端数据库,则为必需。 |
IBM DB2 | 9.7或更高版本 | 如果将IBM DB2用作Zabbix后端数据库,则为必需。 |
SQLite | 3.3.5或更高版本 | 只有Zabbix代理支持SQLite。如果SQLite用作Zabbix代理数据库,则为必需。 |
IBM DB2和TimescaleDB支持是实验性的!
前端
运行Zabbix前端需要以下软件:
软件 | 版 | 评论 |
---|---|---|
Apache | 1.3.12或更高版本 | |
PHP | 5.4.0或更高版本 | |
PHP扩展: | ||
gd | 2.0.28或更高版本 | PHP GD扩展必须支持PNG图像( - with-png-dir),JPEG( - with-jpeg-dir)图像和FreeType 2(-- with-freetype-dir)。 |
bcmath | php-bcmath(--enable-bcmath) | |
ctype | php-ctype(-- enable-ctype) | |
libxml | 2.6.15或更高版本 | php-xml或php5-dom,如果由经销商作为单独的包提供。 |
xmlreader | php-xmlreader,如果由经销商提供为单独的包。 | |
xmlwriter | php-xmlwriter,如果由经销商提供为单独的包。 | |
session | php-session,如果由经销商作为单独的包提供。 | |
sockets | php-net-socket(-- enable-socket)。用户脚本支持需要。 | |
mbstring | php-mbstring(--enable-mbstring) | |
gettext | php-gettext(-- with-gettext)。翻译工作需要。 | |
ldap | PHP-LDAP。仅在前端中使用LDAP身份验证时才需要。 | |
ibm_db2 | 如果将IBM DB2用作Zabbix后端数据库,则为必需。 | |
mysqli | 如果MySQL用作Zabbix后端数据库,则是必需的。 | |
oci8 | 如果将Oracle用作Zabbix后端数据库,则为必需。 | |
pgSQL | 如果将PostgreSQL用作Zabbix后端数据库,则必需。 |
Zabbix也可以在以前的Apache,MySQL,Oracle和PostgreSQL版本上运行。
对于除默认DejaVu之外的其他字体,可能需要PHP函数imagerotate。如果缺少,则在显示图形时可能会错误地呈现这些字体。只有在使用捆绑的GD编译PHP时才能使用此函数,而在Debian和其他发行版中则不是这种情况。
客户端的Web浏览器
必须启用Cookie和Java Script。
支持最新版本的Google Chrome,Mozilla Firefox,Microsoft Internet Explorer和Opera。其他浏览器(Apple Safari,Konqueror)也可以与Zabbix一起使用。
实现了IFrame的相同原始策略,这意味着Zabbix不能放在不同域的帧中。
但是,如果放置在框架中的页面和Zabbix前端位于同一个域中,则置于Zabbix框架中的页面将可以访问Zabbix前端(通过JavaScript)。一个页面一样http://secure-zabbix.com/cms/page.html
,如果放置到屏幕上的仪表盘或http://secure-zabbix.com/zabbix/
将有充分的JS访问的zabbix。
服务器
始终需要强制性要求。支持特定功能需要可选要求。
需求 | 状态 | 描述 |
---|---|---|
libpcre | 强制性 | Perl兼容正则表达式(PCRE)支持需要PCRE库。 命名可能因GNU / Linux发行版而异,例如'libpcre3'或'libpcre1'。请注意,您需要完全PCRE(v8.x); 未使用PCRE2(v10.x)库。 |
libevent | 批量指标支持和IPMI监控所必需的。版本1.4或更高版本。 请注意,对于Zabbix代理,此要求是可选的; 它是IPMI监控支持所必需的。 | |
libpthread | 对于互斥锁和读写锁支持是必需的。 | |
zlib | 压缩支持需要。 | |
OpenIPMI | 可选的 | IPMI支持需要。 |
libssh2 | SSH支持需要。版本1.0或更高版本。 | |
fping | ICMP ping项必需。 | |
libcurl | Web监控,VMware监控,SMTP身份验证,web.page.* Zabbix代理项,HTTP代理项和Elasticsearch(如果使用)所必需的。建议使用7.28.0或更高版本。Libcurl版本要求: - SMTP身份验证:版本7.20.0或更高 版本 - Elasticsearch:版本7.28.0或更高版本 | |
libiksemel | Jabber支持需要。 | |
libxml2 | VMware监视和XML XPath预处理所必需的。 | |
net-snmp | SNMP支持需要。 |
Java网关
如果从源存储库或存档中获取Zabbix,则源树中已包含必需的依赖项。
如果您从分发包中获得Zabbix,那么包装系统已经提供了必要的依赖关系。
在上述两种情况下,该软件都可以使用,无需额外下载。
但是,如果您希望提供这些依赖项的版本(例如,如果您正在为某些Linux发行版准备软件包),则下面是Java网关已知可以使用的库版本列表。Zabbix也可以与这些库的其他版本一起使用。
下表列出了原始代码中当前与Java网关捆绑在一起的JAR文件:
图书馆 | 执照 | 网站 | 评论 |
---|---|---|---|
logback-core-0.9.27.jar | EPL 1.0,LGPL 2.1 | http://logback.qos.ch/ | 测试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许可证 | http://www.slf4j.org/ | 测试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网关使用Java 1.6及更高版本编译和运行。建议那些为其他人提供网关预编译版本的人使用Java 1.6进行编译,以便它可以在所有版本的Java上运行,直到最新版本。
数据库大小
Zabbix配置数据需要固定数量的磁盘空间,并且不会增长太多。
Zabbix数据库大小主要取决于这些变量,它们定义了存储的历史数据量:
-
每秒处理的值数
这是Zabbix服务器每秒接收的新值的平均数。例如,如果我们有3000个项目用于监视,刷新率为60秒,则每秒的值数量计算为3000/60 = 50。
这意味着每秒向Zabbix数据库添加50个新值。
-
管家设置历史
Zabbix将值保持一段固定的时间,通常为几周或几个月。每个新值都需要一定量的磁盘空间用于数据和索引。
因此,如果我们想要保留30天的历史记录并且我们每秒收到50个值,则值的总数将在(30 * 24 * 3600)* 50 = 129.600.000或大约130M的值附近。
根据所使用的数据库引擎,接收值的类型(浮点数,整数,字符串,日志文件等),用于保持单个值的磁盘空间可能在40字节到数百字节之间变化。通常,对于数字项2,每个值大约为90个字节。在我们的例子中,这意味着130M的值将需要130M * 90字节= 10.9GB的磁盘空间。
文本/日志项值的大小无法准确预测,但每个值可能需要大约500个字节。
-
管家设置趋势
Zabbix为表格趋势中的每个项目保留1小时最大/最小/平均/计数值集。该数据用于趋势和长周期图。一小时的时间段无法定制。
Zabbix数据库,根据数据库类型,每个总共需要大约90个字节。假设我们希望将趋势数据保持5年。3000项的值将需要3000 * 24 * 365 * 90 = 2.2GB每年或11GB为5年。
-
管家设置事件
每个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 *(项目/刷新率)* 24 * 3600 * bytes 项目:项目 天数:保持历史 刷新率的天数:项目平均刷新率 字节:保持单个值所需的字节数,取决于数据库引擎,通常~90个字节。 |
趋势 | days *(items / 3600)* 24 * 3600 * bytes 项目:项目 天数:保持历史 字节数天数:保持单个趋势所需的字节数,取决于数据库引擎,通常为~90字节。 |
活动 | days * events * 24 * 3600 * bytes events:每秒事件数。在最坏的情况下每秒一(1)个事件。 days:保留历史 字节的天数:保持单个趋势所需的字节数,取决于数据库引擎,通常~330 +每个事件的平均标签数* 100字节。 |
因此,所需的总磁盘空间可以计算为:
配置+历史记录+趋势+事件
Zabbix安装后不会立即使用磁盘空间。数据库大小将增长然后它将在某个时刻停止增长,这取决于管家设置。
时间同步
在运行Zabbix的服务器上拥有精确的系统日期非常重要。ntpd是最受欢迎的守护进程,它将主机的时间与其他计算机的时间同步。强烈建议在运行Zabbix组件的所有系统上维护同步系统日期。