天天看點

zabbix分布式部署proxy實戰

   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>&amp;&amp; </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>&amp;&amp; </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,如需轉載請自行聯系原作者