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