天天看点

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,如需转载请自行联系原作者