(7)Zabbix分布式监控proxy实现
分布式监控概述分布式监控,主要用在与机房分布在多个城市,在各地机房部署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)架构更清晰,易维护
示例:proxy实现配置node2节点作为proxy服务器监控node3。
Node2节点配置proxy安装mysql
1
2
# yum -y install mysql-server
# service mysqld start
创建数据库
1
2
3
mysql> CREATE DATABASE zabbix_proxy CHARACTER SET utf8;
mysql> GRANT ALL ON zabbix_proxy.* TO zbxuser@'172.16.%.%' IDENTIFIED BY 'zbxpass';
mysql> FLUSH PRIVILEGES;
导入数据库
1
# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.5/create/schema.sql
导入完成登录到zabbix_proxy数据库使用show tables命令就可以看到一堆表。
安装zabbix-proxy
1
# 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
修改配置文件
1
2
3
4
5
6
7
8
9
10
# 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服务器送一次数据
配置完成启动服务
1
2
3
4
# service zabbix-proxy start
# netstat -lnt | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
tcp 0 0 :::10051 :::* LISTEN
node3设置由于node3节点,以前做过设置,所以只需要将主服务器的地址修改为proxy服务器,修改完成之后,就会将数据发送给proxy
1
2
# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.4.101 #指定zabbix服务器地址为proxy服务器
zabbix服务器添加代理在管理 -->系统代理程式 中点击创建代理即可添加代理服务器
设置代理名称和模式,设置完成代理主机就创建好了
创建监控主机时,勾选使用node2监控即可
设置完成主机的显示名称会出现node2:node3
页:
[1]