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 硬件配置
2.磁盤容量需求
Zabbix-Server所需的磁盤容量取決于監控數據的更新頻率、每次更新的數據大小、監控數據存儲的歷史周期、監控數據刪除的策略以及數據庫本身日志的大小等的綜合因素。衡量數據庫寫入的一個關鍵指標是NVPS(New Values Per Second),如圖3-1所示,即每秒需要Zabbix-Server處理的數據量。
(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支持的操作系統
2.數據庫版本需求
數據庫版本要求如表3-4所示。
表3-4 數據庫版本要求
Zabbix-Web前端所需的軟件環境如表3-5所示。
表3-5 Zabbix-Web前端所需的軟件環境
4.支持的瀏覽器
瀏覽器需要支持Cookies、JavaScript,常見的瀏覽器都可以支持。
5.Zabbix-Server所需的軟件環境
Zabbix-Server所需的軟件環境如表3-6所示。
表3-6 Zabbix-Server所需的軟件環境
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部署在核心業務所在的機房,要求到各分節點的網絡穩定。另外,要考慮到網絡流量、帶寬等問題,并做好一定的安全策略。