一.什么是Zabbix proxy分布式监控?
Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构, proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求,非常简便的实现了集中式、分布式监控
zabbix proxy仅仅需要一条tcp连接到zabbix server,所以防火墙上仅仅需要加上一条规则即可。zabbix proxy数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server.这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定。zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
二.proxy的相关配置
1.实验环境
172.25.254.1 zabbix server server1
172.25.254.2 zabbix proxy server2
172.25.254.3 zabbix agent server3
2.在三个主机中都添加proxy的解析
vim /etc/hosts
172.25.254.2 proxy
3.在zabbix的网页页面内创建 zabbix proxy
管理—>agent代理程序—>创建代理
4.在proxy(172.25.254.2)安装zabbix-proxy以及依赖性软件
yum install -y zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm
5.配置数据库
zabbix proxy和zabbix server 上的数据库内容其实是差不多的,因此两个数据库必须是分开的。zabbix proxy用来缓存相应的agent的发来的监控信息,并进行缓存。在配置文件中设置了proxy向server推的时间的间隔,每一段时间间隔内,proxy就给serverv推送缓存的信息。zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
yum install -y mariadb mariadb-server ##安装proxy的数据库
systemctl start mariadb
mysql
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; ## 创建代理需要的数据库zabbix_proxy
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos'; ##数据库授权
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
zcat schema.sql.gz | mysql zabbix_proxy ##导入数据库
6.查看数据库
7.编辑proxy的zabbix-proxy的配置文件
vim /etc/zabbix/zabbix_proxy.conf
30 Server=172.25.254.1 ##proxy端的ip
39 ServerPort=10051 ##proxy的主机名
49 Hostname=proxy ##解析的名字
173 DBName=zabbix_proxy ##数据库名称
188 DBUser=zabbix ##数据库用户
196 DBPassword=westos ##数据库密码
329 JavaGateway=172.25.254.1
337 JavaGatewayPort=10052
345 StartJavaPollers=5
8.打开服务,查看端口10051是否开启,并查看相应日志看是否接收正常
systemctl start zabbix-proxy
netstat -antlp | grep :10051
cat /var/log/zabbix/zabbix_proxy.log ##查看proxy端的日志,是否接受成功(received) proxy上查看
3038:20190310:151052.719 received configuration data from server at "172.25.19.1", datalen 3511
cat /var/log/zabbix/zabbix_server.log ##查看server端的日志,是否发送成功(sending) server上查看
1263:20190310:151053.526 sending configuration data to proxy "proxy" at "172.25.19.2", datalen 3511
9.在agent端重新指向IP到proxy 刚开始设置的是server端的IP
vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.254.2
139 ServerActive=172.25.254.2
10.浏览器添加proxy
点击server3主机:添加agent代理接口,并由agent代理程序监测
添加好之后,再次刷新网页,状态可能是灰色
再次刷新页面,zabbix proxy配置完成。