Zabbix proxy 是一個監控代理服務器,可以實現集中或者分佈式的監控。通過proxy代理可以實現多節點,跨區域,成百上千服務器的監控。proxy代理主要適用於下面情況。
1)zabbix監控的主機太多,一臺Server支撐不住的情況。
2)服務器在同一個地區不同的機房,通過proxy很容易實現數據的傳輸和中轉。
3)服務器在多個省或者在國外,通過proxy實現分佈式部署和監控。
proxy可以部署爲主動(Active)模式或被動(passive)模式,通常爲了減輕Server端的壓力,proxy部署爲主動(Active)模式。當proxy部署爲主動模式(Active)時,Zabbix Server的負載最小。
架構圖:
架構圖說明:
1)Zabbix Server:負責把數據寫入到數據庫,然後通過Apache|Nginx+php在WEB前端顯示。
2)Zabbix Proxy:幫助server採集被監控端的數據,並把採集到的數據主動傳送給Server,proxy數據庫僅做中轉。
3)Database:所有的配置信息都存儲在數據庫裏面,proxy數據庫數據會定期彙總到Server數據庫庫裏面。
4)Zabbix Agent:agent的作用就是獲取host數據,然後將收集到的數據發送給server(主動模式),或者是server主動來拿取數據(被動模式)。
5)Email:通過Qmail|postfix的SMTP負責報警郵件的發送(故障郵件和故障恢復郵件)。
6)SMS:通過SMS發送短消息給負責的用戶。
安裝配置proxy:
yum install net-snmp yum install net-snmp-devel groupadd -g 5000 zabbix useradd zabbix -u 5000 -g zabbix -s /sbin/nologin tar -zxvf zabbix-2.2.1.tar.gz cd zabbix-2.2.1 ./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --enable-proxy --enable-agent --with-libcurl make && make install
創建數據庫,並導入proxy數據庫表結構:
mysql -uroot -p -S /data/mysql/3306/mysql.sock create database shproxy01 character set utf8; grant all privileges on shproxy01.* to zabbix@'192.168.3.242' identified by '^shproxy01$'; cat database/mysql/schema.sql |mysql -uroot -p shproxy01 -S /data/mysql/3306/mysql.sock
安裝fping,zabbix通過fping檢測主機的存活,默認安裝在/usr/local/sbin/下面:
tar -zxvf fping-3.8.tar.gz ./configure make && make install #給zabbix加上強制位setuid,以root用戶身份構建ICMP包。 chmod u+s /usr/local/sbin/fping
根據proxy監控的主機數量優化zabbxi_proxy配置文件(我的proxy監控了將近400臺服務器):
在zabbix server前端添加proxy代理:
總結:
1)proxy 對CPU,內存的要求都比較少,我是HP的服務器4G內存監控將近400臺服務器。
2)Zabbix 2.0 對時間很敏感,要求proxy和server 時鐘保持同步,否則proxy queue隊列會居高不下。
3)proxy ProxyOfflineBuffer我設置了2小時,當zabbix server或者zabbix DB故障的時候在2小時之內恢復故障監控數據不會丟失。