本实验是在Zabbix分布式监控实战(1)——认识zabbix,搭建Zabbix监控平台实验基础上进行的,已经配置好了zabbix-server和zabbix-agent主机。
zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力。对于多机房大集群情况下,肯定不是一台zabbix server服务器来进行信息的收集等工作,所以就要用到代理了。zabbix proxy可以非常简便的实现了集中式、分布式监控。
zabbix-server 处于外网,zabbix-agent 处于各个地方的内网,所有内网都是互通的。其中有一台内网服务器既可以和内网通信,也可以和外网进行通信。
zabbix proxy仅仅需要一条tcp连接到zabbix server,所以zabbix server主机的防火墙上仅仅需要加上一条规则即可。zabbix proxy数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。
zabbix proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server。这个时间由zabbix proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定。
zabbix proxy 使用场景:
监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
简化 zabbix 的维护
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
主机名 | ip | 服务 | 版本 |
---|---|---|---|
server1 | 172.25.1.1 | zabbix-server,zabbix-web,mariadb-server | rhel7.3 |
server2 | 172.25.1.2 | zabbix-agent | rhel7.3 |
server3 | 172.25.1.3 | zabbix-proxy | rhel7.3 |
在server3上:
步骤一:停掉之前配置的zabbix-agent
systemctl stop zabbix-agent.service
在web界面上删除server3的监控主机
步骤二:修改主机名为proxy,方便后续配置
hostnamectl set-hostname proxy
添加本地解析
步骤三:安装zabbix-proxy,及数据库mariadb
yum install zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm -y
yum install mariadb-server -y
systemctl start mariadb.service
systemctl enable mariadb.service
systemctl status mariadb.service
mysql_secure_installation
mysql -uroot -predhat
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'redhat';
MariaDB [(none)]> show databases;
步骤七:将zabbix-proxy自生成的数据库文件导入数据库
zcat /usr/share/doc/zabbix-proxy-mysql-4.0.5/schema.sql.gz | mysql -uzabbix -p zabbix-proxy #这里的密码是数据库的登陆密码
vim /etc/zabbix/zabbix_proxy.conf
30 Server=172.25.1.1
39 ServerPort=10051
49 Hostname=proxy
173 DBName=zabbix_proxy
188 DBUser=zabbix
196 DBPassword=zabbix
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
cat /var/log/zabbix/zabbix_proxy.log #可以接受到data来自172.25.1.1
在server2上:
vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.1.3
139 ServerActive=172.25.1.3
systemctl restart zabbix-agent.service
cat /var/log/zabbix/zabbix_agentd.log
cat /var/log/zabbix/zabbix_proxy.log #可以在日志中查看到server2的信息
在web界面查看主机:
此时可以查看到server2上的agent服务已经被检测到。
但是JMX没启用,这是因为我们的代理配置文件的没有设置这个监控,给proxy设置监控java应用的模块。
在server3上:
vim /etc/zabbix/zabbix_proxy.conf
329 JavaGateway=172.25.1.1
337 JavaGatewayPort=10052
345 StartJavaPollers=5
systemctl restart zabbix-proxy.service