3.1 安装环境概述
Zabbix-Server服务器运行的环境为Linux(UNIX)+PHP+DataBase, PHP可以与Nginx或Apache组合使用,DataBase可以选择MySQL、Oracle、PostgreSQL等。本章所采用的软件环境由CentOS 7(64位)、httpd、PHP和MariaDB组成。
3.1.1 硬件环境需求
1.硬件配置需求
对于最小化的安装环境,官方推荐的硬件配置如表3-1所示。
表3-1 硬件配置
上述最小化安装环境中推荐的硬件配置,在实际生产环境中并不能很好地满足需求,需要适当提高硬件配置。具体的服务器硬件配置要求,与监控的机器数量和数据量等关系密切。一般来说,磁盘I/O出现瓶颈的概率更大一些。而选用物理服务器,通常性能会更好。对于大中型规模的环境来说,建议采用物理机来搭建监控环境,硬盘选用SAS/SSD/PCI-E SSD,如果是SAS硬盘,则建议做RAID 10,以保证其读/写性能和物理安全。当然,在实际环境中,也可以采用同等性能的虚拟机、云主机来搭建Zabbix监控环境。在整个Zabbix监控系统的搭建、维护中,磁盘I/O性能、数据库性能是系统良好运行的关键因素。
2.磁盘容量需求
Zabbix-Server所需的磁盘容量取决于监控数据的更新频率、每次更新的数据大小、监控数据存储的历史周期、监控数据删除的策略以及数据库本身日志的大小等的综合因素。衡量数据库写入的一个关键指标是NVPS(New Values Per Second),如图3-1所示,即每秒需要Zabbix-Server处理的数据量。
图3-1 关键指标NVPS
(1)历史数据所需的空间大小
NVPS值是指每秒处理的平均数据量,通过这个值可以计算出数据存储所需的空间大小。原理为,每条数据都占用大约50B的存储空间,因此NVPS × 每条数据的平均大小 = 历史数据所需的空间大小。历史数据所需的空间大小的计算公式为:
历史数据所需的空间大小=天数×每秒处理的数据量×1天24小时×1小时3600s×50B
例如,有60000个监控项,监控指标数据更新周期为60s,每秒需要处理的数据量为60000/60=1000(条),历史数据保存90天,则计算方法为:
(90×24×3600)×1000×50=388800000000(B),约362GB
(2)趋势数据所需的空间大小
按照统计抽样得出的结论,在MySQL中每一个监控项的趋势数据大约为128B。趋势数据所需的空间大小的计算公式为:
趋势数据所需的空间大小=监控项×每天24小时×一年365天×128B
假设有60000个监控项,保存一年的趋势数据,其需要的空间大小为:
60000×24×365×128=67276800000(B),约67GB
(3)事件数据所需的空间大小
每个事件都占用130B空间,假设保存事件数据一年,则需要的空间大小为:
1×24×3600×365×130=4099680000(B),约4GB
因此,60000个监控项,更新数据周期为60s,历史数据保存90天,趋势数据保存一年,总共需要的空间大小为:
362+67+4=433(GB)
在真实生产环境中所需的磁盘空间会更多,因为数据库本身有日志文件,每个监控项数据的大小与理论值又会有偏差,因此磁盘总容量可能会超过500GB,故需提供的磁盘空间大小要大于500GB。
(4)计算公式总结
磁盘空间的计算方法如表3-2所示。
表3-2 磁盘空间的计算方法
可以看到,由于监控项数量、取值间隔周期、历史数据保留周期、趋势数据保留周期等因素的不同,将会使磁盘空间的使用量不同。
3.1.2 软件环境需求
1.操作系统版本需求
由于Zabbix核心组件是用C语言写的,所以理论上其可以支持Linux、UNIX、Windows等常见的操作系统,如表3-3所示,但Zabbix-Server和Zabbix-Porxy均不支持Windows系统(底层的实现依赖Linux系统的一些特性)。在Zabbix 3.0版本以后,对其支持最好的CentOS版本为7.0以上版本,7.0以下版本的安装和配置均比较麻烦,因此不再推荐使用。Zabbix-Agent可以支持主流的操作系统,如果不支持,则需要读者自行移植或编译到对应的操作系统。
表3-3 Zabbix支持的操作系统
注意:如果仅仅检测网络服务FTP、SSH、HTTP、DNS、LDAP,则无须安装任何客户端,即可支持获取监控数据。
2.数据库版本需求
数据库版本要求如表3-4所示。
表3-4 数据库版本要求
3.Zabbix-Web所需的软件环境
Zabbix-Web前端所需的软件环境如表3-5所示。
表3-5 Zabbix-Web前端所需的软件环境
如果读者使用编译的方式来安装PHP,则请确保以上参数是开启的。
4.支持的浏览器
浏览器需要支持Cookies、JavaScript,常见的浏览器都可以支持。
5.Zabbix-Server所需的软件环境
Zabbix-Server所需的软件环境如表3-6所示。
表3-6 Zabbix-Server所需的软件环境
6.时间同步需求
Zabbix-Server对时间的精准要求比较高,时间对数据的计算等都有影响,因此必须设置NTP自动同步时间。
shell# yum install ntp -y shell# systemctl enable ntpd shell# systemctl start ntpd
当然,也可以使用crontab进行同步,但在实际的生产环境中不推荐定时任务的同步,而是推荐上面的NTP同步方式。如下所示,使用crontab进行时间同步。
*/30 * * * * /usr/sbin/ntpdate pool.ntp.org
3.1.3 网络环境需求
尽量将Zabbix-Server部署在核心业务所在的机房,要求到各分节点的网络稳定。另外,要考虑到网络流量、带宽等问题,并做好一定的安全策略。