一、什么是zabbix-proxy
Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构, proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求,非常简便的实现了集中式、分布式监控。
我的理解就是: 本来server要向agent要数据,如果agent多的话server就忙不过来,所以才会引入proxy去给server帮忙,proxy会主动去找agent拿数据,然又主动将数据给server发过去,这样就极大的减轻server的负载压力
二、主机环境
主机 IP 角色
server1 172.25.19.1 zabbix - server
proxy 172.25.19.2 proxy
server3 172.25.19.3 zabbix - agent
三、zabbix proxy的配置
首先关闭proxy的agent(没有配置的可以不做此步骤
[root@proxy ~]# systemctl stop zabbix-agent
在三个主机中都添加proxy的解析
[root@proxy ~]# vim /etc/hosts
172.25.19.2 proxy
[root@server1 ~]# vim /etc/hosts
172.25.19.2 proxy
[root@server3 ~]# vim /etc/hosts
172.25.19.2 proxy
先在网页创建proxy
管理—>agent代理程序—>创建代理
在proxy(172.25.19.2)安装zabbix-proxy以及依赖性软件
[root@proxy ~]# yum install -y zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm
配置数据库
##安装数据库
[root@proxy ~]# yum install -y mariadb mariadb-server
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# 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
[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
[root@proxy zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | mysql zabbix_proxy ##导入数据库
查看数据库
编辑proxy的zabbix-proxy的配置文件
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
30 Server=172.25.19.1 表示proxy是作为172.25.19.1这台主机的代理
39 ServerPort=10051 代理主机的端口
49 Hostname=proxy #本地解析
173 DBName=zabbix_proxy # 数据库名称
188 DBUser=zabbix # 数据库用户
196 DBPassword=westos # 数据库密码
329 JavaGateway=172.25.19.1 #用的是172.25.19.1这台主机的JAVA环境
337 JavaGatewayPort=10052 #Java的端口
345 StartJavaPollers=5
[root@proxy zabbix]# systemctl start zabbix-proxy
[root@proxy zabbix]# netstat -antlp | grep proxy
cat /var/log/zabbix/zabbix-proxy.log 查看日志
四.配置客户端agent
[root@base3 bin]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.19.2 # 把客户端的server指向proxy
139 ServerActive=172.25.19.2
[root@base3 bin]# systemctl restart zabbix-agent
五. 查看日志,proxy代理成功
[root@proxy ~]# vim /var/log/zabbix/zabbix_proxy.log
[root@base3 bin]# vim /var/log/zabbix/zabbix_agentd.log
[root@base2 ~]# vim /var/log/zabbix/zabbix_server.log
如果发现没有代理成功,使用以下命令
zabbix_server -R config_cache_reload 刷新就可以了