Zabbix proxy 是一個監控代理伺服器,可以實作集中或者分布式的監控。通過proxy代理可以實作多節點,跨區域,成百上千伺服器的監控。proxy代理主要适用于下面情況。
1)zabbix監控的主機太多,一台Server支撐不住的情況。
2)伺服器在同一個地區不同的機房,通過proxy很容易實作資料的傳輸和中轉。
3)伺服器在多個省或者在國外,通過proxy實作分布式部署和監控。
proxy可以部署為主動(Active)模式或被動(passive)模式,通常為了減輕Server端的壓力,proxy部署為主動(Active)模式。當proxy部署為主動模式(Active)時,Zabbix Server的負載最小。
架構圖:
<a href="http://s3.51cto.com/wyfs02/M01/41/30/wKiom1PRrxbw9Cu0AAD4O3BdeuQ671.jpg" target="_blank"></a>
架構圖說明:
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:
1
2
3
4
5
6
7
8
9
<code>yum </code><code>install</code> <code>net-snmp</code>
<code>yum </code><code>install</code> <code>net-snmp-devel</code>
<code>groupadd -g 5000 zabbix</code>
<code>useradd</code> <code>zabbix -u 5000 -g zabbix -s </code><code>/sbin/nologin</code>
<code>tar</code> <code>-zxvf zabbix-2.2.1.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>zabbix-2.2.1</code>
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/zabbix</code> <code>--sysconfdir=</code><code>/etc/zabbix</code> <code>--with-mysql=</code><code>/usr/local/mysql/bin/mysql_config</code>
<code>--with-net-snmp --</code><code>enable</code><code>-proxy --</code><code>enable</code><code>-agent --with-libcurl</code>
<code>make</code> <code>&& </code><code>make</code> <code>install</code>
建立資料庫,并導入proxy資料庫表結構:
<code>mysql -uroot -p -S </code><code>/data/mysql/3306/mysql</code><code>.sock </code>
<code>create database shproxy01 character </code><code>set</code> <code>utf8;</code>
<code>grant all privileges on shproxy01.* to zabbix@</code><code>'192.168.3.242'</code> <code>identified by </code><code>'^shproxy01$'</code><code>;</code>
<code>cat</code> <code>database</code><code>/mysql/schema</code><code>.sql |mysql -uroot -p shproxy01 -S </code><code>/data/mysql/3306/mysql</code><code>.sock</code>
安裝fping,zabbix通過fping檢測主機的存活,預設安裝在/usr/local/sbin/下面:
<code>tar</code> <code>-zxvf fping-3.8.</code><code>tar</code><code>.gz </code>
<code>.</code><code>/configure</code>
<code>make</code> <code>&& </code><code>make</code> <code>install</code>
<code>#給zabbix加上強制位setuid,以root使用者身份建構ICMP包。</code>
<code>chmod</code> <code>u+s </code><code>/usr/local/sbin/fping</code>
根據proxy監控的主機數量優化zabbxi_proxy配置檔案(我的proxy監控了将近400台伺服器):
<a href="http://s3.51cto.com/wyfs02/M01/41/32/wKiom1PRsjCRlGX4AAIyu-dV6C8781.jpg" target="_blank"></a>
在zabbix server前端添加proxy代理:
<a href="http://s3.51cto.com/wyfs02/M00/41/33/wKioL1PRtWTCIMRWAAJ8PA_xm2Q827.jpg" target="_blank"></a>
總結:
1)proxy 對CPU,記憶體的要求都比較少,我是HP的伺服器4G記憶體監控将近400台伺服器。
2)Zabbix 2.0 對時間很敏感,要求proxy和server 時鐘保持同步,否則proxy queue隊列會居高不下。
3)proxy ProxyOfflineBuffer我設定了2小時,當zabbix server或者zabbix DB故障的時候在2小時之内恢複故障監控資料不會丢失。
本文轉自 sfzhang 51CTO部落格,原文連結:http://blog.51cto.com/sfzhang88/1529967,如需轉載請自行聯系原作者