每天充电半小时之zabbix(8)

安装要求

硬件

内存和磁盘

Zabbix同时需要物理内存和磁盘空间。刚开始使用Zabbix,建议128MB物理内存和256MB可用磁盘空间。然而, 具体需要的内存大小和磁盘空间要根据主机数量和监控参数而定。每个Zabbix的守护进程需要与数据库服务器建立多个连接。分配给连接的内存数量,取决于数据库引擎的配置。

CPU

根据监控参数及选择的数据库引擎,Zabbix,特别是Zabbix数据库,可能需要大量的CPU资源,

其他硬件

如果需要启用短信(SMS)通知功能,需要串行通讯口(serial communication port)和串行GSM调制解调器(serial GSM modem)。

下表是几个硬件配置的示例:

监控规模 平台 CPU/内存 数据库 监控主机数量
小型 CentOS 虚拟应用 MySQL InnoDB 100
中型 CentOS 2 CPU cores/2GB MySQL InnoDB 500
大型 RedHat Enterprise Linux 4 CPU cores/8GB RAID10 MySQL InnoDB or PostgreSQL >1000
巨大型 RedHat Enterprise Linux 8 CPU cores/16GB 快速RAID10 MySQL InnoDB or PostgreSQL >10000

具体的配置依赖于Active Item数量和轮询频率。如需要进行大规模监控,建议将数据库进行独立部署。

支持平台

由于监控服务器的安全要求及关键任务的特性,UNIX是唯一可以持续提供必要性能、容错性和扩展性的操作系统。Zabbix可以运行在市场上的主流版本。

经测试,Zabbix可运行在下列平台:

  • Linux

  • IBM AIX

  • FreeBSD

  • NetBSD

  • OpenBSD

  • HP-UX

  • Mac OS X

  • Solaris

  • Windows: Windows 2000以后的所有桌面和服务器版本 (只可运行Zabbix agent)

软件

Zabbix基于先进的Apache Web服务器、领先的数据库引擎和PHP脚本语言进行构建。

数据库管理系统

软件 版本 备注
MySQL 5.0.3或以上 使用MySQL作为Zabbix后端数据库。需要InnoDB引擎。
Oracle 10g或以上 使用Oracle作为Zabbix后端数据库。
PostgreSQL 8.1或以上 使用PostgreSQL作为Zabbix后端数据库。
SQLite 3.3.5或以上 使用SQLite作为Zabbix后端数据库。
IBM DB2 9.7或以上 使用IBM DB2作为Zabbix后端数据库。(仅供测试)

前端

Zabbix前端需要使用下列软件:

软件 版本 备注
Apache 1.3.12或以上  
PHP 5.4.0或以上  
PHP扩展包:
gd 2.0或以上 PHP GD扩展包必须支持PNG图片 (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir).
bcmath   php-bcmath (--enable-bcmath)
ctype   php-ctype (--enable-ctype)
libXML 2.6.15或以上 php-xml or php5-dom,由分发者提供单独的部署包。
xmlreader   php-xmlreader,由分发者提供单独的部署包。
xmlwriter   php-xmlwriter,由分发者提供单独的部署包。
session   php-session,由分发者提供单独的部署包。
sockets   php-net-socket (--enable-sockets). 用户脚本支持所需要的组件。
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后端数据库所需要的组件。
sqlite3   使用SQLite作为Zabbix后端数据库所需要的组件。

客户端浏览器

必须启用Cookies和Java Script功能。
支持最新版本的Google Chrome,Mozilla Firefox,Microsoft Internet Explorer和Opera。其他浏览器(如Apple Safari, Konqueror)可能也支持Zabbix。

服务器

要求 描述
OpenIPMI 支持IPMI功能所需要的组件。
libssh2 支持SSH功能所需要的组件。需要1.0或以上版本。
fping 支持ICMP ping功能所需要的组件。
libcurl 支持WEB监控,VMware监控及SMTP认证所需要的组件。对于SMTP认证,需要7.20.0或以上版本。
libiksemel 支持Jabber功能所需要的组件。
libxml2 支持VMware监控所需要的组件。
net-snmp 支持SNMP监控所需要的组件。


数据库容量

Zabbix配置数据需要使用固定的磁盘空间,而且这个空间不会过多增长。

Zabbix数据库容量主要依赖于下列这些参数,这些参数也决定了存储历史数据所需要的空间:

  • 每秒处理值的数量(Number of processed values per second)

这个参数是指每秒种Zabbix server收到的新值数量的平均数。比如,如果我们有3000个监控项(item),监控周期是60s,经计算所得,每秒处理值的数量为3000/60 = 50.

这意味着每秒钟有50个新值写入Zabbix数据库。

  • 历史(History)数据的回收清理设置(Housekeeper)

Zabbix会在一个固定周期内保存收到的值。正常情况下保留数周或者数月。每一个新收到的值会占用一定数量的磁盘空间以存放数据和索引。

所以,如果我们每秒钟收到50个值,且希望保留30天的历史数据,值的总数将大约在 (30*24*3600)* 50 = 129,600,000,即大约130M个值。

根据所使用的数据库引擎,以及收到值的类型【浮点(floats),整型(integers),字符串(strings),日志文件(log files)等】,单个值的磁盘使用量从40字节到数百个字节不等。一般而言,数值型(Numeric)的监控项占用大约90字节。 按之前的例子, 这意味着130M个值需要占用 130M * 90 bytes = 10.9GB 的磁盘空间。

文本(text)/日志(log)类型的监控项值的大小无法准确地预测,可以按每个值大约500字节来计算。

  • 趋势(Trends)数据的回收清理设置(Housekeeper)

Zabbix为trends表中的每个监控项的值,保留一组数据:一个小时的最大值/最小值/平均值/数量。这些数据用于趋势图表和历史图表的展现。用户无法自定义这一小时的保留周期。

根据数据库的类型,Zabbix数据库需要为每组值总共占用约90字节的空间。 如果你需要保留趋势数据5年,那么3000个监控项值,每年需要 3000*24*365* 90 = 2.2GB 的空间 , 即5年需要 11GB 的空间。

  • 事件(Events)数据的回收清理设置(Housekeeper)

每个Zabbix事件需要大约170字节的磁盘空间。很难估计Zabbix每天生成的事件数量。最糟糕的情况下,假设Zabbix每秒会生成一个事件。

这意味着,如果我们需要保留3年的事件,需要3*365*24*3600* 170 = 15GB的磁盘空间。

下表列出了用于计算Zabbix系统所需磁盘空间的计算公式:

范围 所需磁盘空间的计算公式 (单位:字节)
Zabbix配置文件 固定大小。一般10MB或更少。
历史(History) days*(items/refresh rate)*24*3600*bytes
items : 监控项数量
days : 保留历史数据的天数
refresh rate : 监控项平均轮询时间
bytes : 保留单个值所需要占用的字节数,依赖于数据库引擎,一般大约90字节。
趋势(Trends) days*(items/3600)*24*3600*bytes
items : 监控项数量
days : 保留趋势数据的天数
bytes : 保留单个趋势数据所需要占用的字节数,依赖于数据库引擎,一般大约90字节。
事件(Events) days*events*24*3600*bytes
events : 每秒事件数。最糟糕的情况下,每秒一(1)个事件。
days : 保留事件数据的天数
bytes : 保留单个事件所需要占用的字节数,依赖于数据库引擎,一般大约90字节。

根据现实环境中使用的MySQL后端数据库的统计,数值型(Numeric)监控项的值平均占用约90个字节,事件(Events)平均占用约170个字节。

因此,所需要的磁盘总空间按下列方法计算:
配置(Configuration) + 历史(History) + 趋势(Trends) + 事件(Events)
安装完Zabbix,磁盘空间不会立即被分配。数据库大小根据回收清理(housekeeper)设置,在某些时间点增长或停止增长。

时钟同步

对于Zabbix稳定运行而言,服务获得精确的系统时间是非常重要的。ntpd 是一个最流行的用于同步主机和其他服务器之间的时间的后台程序。对于所有运行Zabbix组件的系统,强烈建议这些系统的时间保持同步。

猜你喜欢

转载自blog.csdn.net/weixin_40042382/article/details/81586489