分布式监控,主要用在与机房分布在多个城市,在各地机房部署zabbix proxy服务器,由zabbix proxy服务器收集各个机房的agent数据,然后将这些数据主动或被动发送到zabbix Server。
Zabbix提供了两种分布式解决方案:
使用代理(proxy):zabbix-proxy负载收集数据,并把数据发送到zabbixserver,数据在本地缓存一段时间,但不会保存在本地
使用节点(node):完整的zabbixserver,把自己监控到的数据信息发送给主节点一份。也就是通过主节点可以查看子节点的监控数据。
Server-proxy-client架构图:
Server-node-client架构图:
Master-Proxy相比Master-Node的优点有以下:
(1)Proxy压力小,数据库只存储一定时间数据
(2)Master压力变小,数据不是源源不断获取,减小IO压力
(3)架构更清晰,易维护
配置node2节点作为proxy服务器监控node3。
安装mysql
[root@node2 ~]# yum -y install mysql-server [root@node2 ~]# service mysqld start
创建数据库
mysql> CREATE DATABASE zabbix_proxy CHARACTER SET utf8; mysql> GRANT ALL ON zabbix_proxy.* TO zbxuser@‘172.16.%.%‘ IDENTIFIED BY ‘zbxpass‘; mysql> FLUSH PRIVILEGES;
导入数据库
[root@node2 zabbix-2.4.5]# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.5/create/schema.sql
导入完成登录到zabbix_proxy数据库使用show tables命令就可以看到一堆表。
安装zabbix-proxy
[root@node2 zabbix-2.4.5]# yum -y --nogpgcheck localinstall zabbix-proxy-2.4.5-1.el6.x86_64.rpm zabbix-proxy-mysql-2.4.5-1.el6.x86_64.rpm
修改配置文件
[root@node2 ~]# vim /etc/zabbix/zabbix_proxy.conf Server=172.16.4.100 #指明zabbix服务器地址 Hostname=node2 #指定主机名 DBHost=172.16.4.101 #指明数据库服务器地址 DBName=zabbix_proxy #指明数据库服务器名称 DBUser=zbxuser #指明数据库用户名 DBPassword=zbxpass #指明数据库密码 DBSocket=/tmp/mysql.sock #数据库sock接口 ConfigFrequency=600 #指定多长时间从zabbix服务器拉取一次配置 DataSenderFrequency=1 #指定多长时间向zabbix服务器送一次数据
配置完成启动服务
[root@node2 ~]# service zabbix-proxy start [root@node2 ~]# netstat -lnt | grep 10051 tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN tcp 0 0 :::10051 :::* LISTEN
由于node3节点,以前做过设置,所以只需要将主服务器的地址修改为proxy服务器,修改完成之后,就会将数据发送给proxy
[root@node3 ~]# vim /etc/zabbix/zabbix_agentd.conf Server=172.16.4.101 #指定zabbix服务器地址为proxy服务器
在管理 -->系统代理程式 中点击创建代理即可添加代理服务器
设置代理名称和模式,设置完成代理主机就创建好了
创建监控主机时,勾选使用node2监控即可
设置完成主机的显示名称会出现node2:node3
本文出自 “梅花香自苦寒来” 博客,请务必保留此出处http://ximenfeibing.blog.51cto.com/8809812/1671048
原文地址:http://ximenfeibing.blog.51cto.com/8809812/1671048