目录
编辑 配置文件/etc/zabbix/zabbix_proxy.conf
添加主机:选择agent代理程序,选择proxy的选项点击更新以添加
Zabbix-proxy是Zabbix监控系统中的一个重要组成部分,它在大型或分布式网络环境中扮演着关键角色。以下是关于Zabbix-proxy的详细介绍:
1. 定义和主要功能
- 定义:Zabbix-proxy是一个数据收集器,用于代替Zabbix Server收集性能和可用性数据,然后将这些数据汇报给Zabbix Server。
- 主要功能:
- 分担服务器压力:通过收集并转发数据,Zabbix-proxy能够显著减轻Zabbix Server的工作负载,提高监控系统的整体性能和稳定性。
- 提高监控效率:在低带宽、高延迟的网络环境下,Zabbix-proxy能够有效地避免数据传输的瓶颈,提高监控效率。
- 跨网络或防火墙监控:Zabbix-proxy有助于解决跨网络或防火墙等限制的监控问题,使监控系统更加灵活和可靠。
2. 使用场景
- 监控远程区域设备:当需要监控位于远程区域的设备时,可以在这些区域部署Zabbix-proxy,以收集并转发监控数据。
- 监控本地网络不稳定区域:对于本地网络中可能存在的不稳定区域,Zabbix-proxy可以作为一个数据缓冲区,确保在网络不稳定时仍能够收集和转发数据。
- 大型环境监控:在大型环境中,使用Zabbix-proxy可以显著减轻Zabbix Server的压力,提高监控系统的可扩展性和性能。
3. 工作原理
- 数据收集:Zabbix-proxy负责收集被监控设备的性能和可用性数据。
- 数据缓存:收集到的数据首先会被缓存在Zabbix-proxy的本地存储中。
- 数据转发:在一定时间间隔后,Zabbix-proxy会将缓存的数据转发给Zabbix Server进行进一步的处理和存储。
4. 配置
- 部署位置:Zabbix-proxy通常部署在局域网内的节点上,以便与被监控设备直接通信。
- 配置要求:Zabbix-proxy需要配置与Zabbix Server的通信参数、数据缓存策略等。
- 数据库:为了防止数据库被破坏,通常情况下Zabbix-proxy的数据库与Zabbix Server的数据库是分开的。
5. 注意事项
- 数据流向:由于Zabbix-proxy仅负责数据采集和转发,不具备数据处理和存储的能力,因此需要确保Zabbix Server能够正常接收和处理来自Zabbix-proxy的数据。
- 网络要求:在部署Zabbix-proxy时,需要考虑网络带宽和稳定性,以确保数据能够顺利传输。
综上所述,Zabbix-proxy是Zabbix监控系统中不可或缺的一部分,它在大型或分布式网络环境中发挥着重要作用,通过分担服务器压力、提高监控效率以及解决跨网络或防火墙等限制的监控问题,使得监控系统更加灵活、可靠和高效。
部署
安装yum源
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm
dnf clean all
安装proxy
dnf install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
创建初始数据库
安装数据库设置数据库密码
yum -y install mariadb-server mariadb
systemctl start mariadb&&systemctl enable mariadb
mysqladmin -u root password "123456"
mysql -uroot -p
mysql> create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy
导入数据库架构后禁用log_bin_trust_function_creators选项。
mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
编辑配置文件
vim /etc/zabbix/zabbix_proxy.conf
DBPassword=password
启动服务
systemctl restart zabbix-proxy
systemctl enable zabbix-proxy
编辑 配置文件/etc/zabbix/zabbix_proxy.conf
vim /etc/zabbix/zabbix_proxy.conf
Server=172.18.40.101
###zabbix-server的IP地址
Hostname=172.18.40.103
###zabbix-proxy的IP地址
systemctl restart zabbix-proxy
###重启zabbix-proxy
ss -lnt
###查看端口监听proxy的端口是10051
在服务端页面添加proxy
点击管理-proxy-创建proxy-填写proxy的IP地址,点击更新
添加成功:
新添加一个主机172.18.40.120,给172.18.40.120安装agent,并且使用172.18.40.103proxy进行代理收集数据
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-7.0-1.el7.noarch.rpm
yum clean all
yum install zabbix-agent2 zabbix-agent2-plugin-*
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
编辑agent配置文件指定server为proxy
vim /etc/zabbix/zabbix_agent2.conf
Server=172.18.40.103
###指定server为proxy的IP地址
Hostname=172.18.40.120
###主机名写agent的IP地址
systemctl restart zabbix-agent2
###重启zabbix-agent
###放开proxy对agent的10050端口的访问。
数据采集-主机-创建主机
添加主机:选择agent代理程序,选择proxy的选项点击更新以添加
如下图添加成功:
到此新建proxy成功。172.18.40.120的数据就是经过172.18.30.103代理收集。
当zabbix-server监控主机过多,导致zabbix-server压力过大时使用proxy可以减轻zabbix-server的压力。
使用场景:
- 监控远程区域设备:当需要监控位于远程区域的设备时,可以在这些区域部署Zabbix-proxy,以收集并转发监控数据。
- 监控本地网络不稳定区域:对于本地网络中可能存在的不稳定区域,Zabbix-proxy可以作为一个数据缓冲区,确保在网络不稳定时仍能够收集和转发数据。
- 大型环境监控:在大型环境中,使用Zabbix-proxy可以显著减轻Zabbix Server的压力,提高监控系统的可扩展性和性能。
proxy与agent的主动被动关系
本片文章采用方法1。
方法1(proxy对agent索要数据):
配置文件中 Server=填写proxy的IP地址
对zabbix-proxy开放本地的10050端口,proxy收集agent数据需要访问agent的10050端口
方法2(agent自己推数据到proxy):
让agent主动提交数据到proxy,需要让proxy对zabbix-agent开放10051端口的访问,
agent的配置文件中 ServerActive=填写proxy的IP地址,web界面添加主机时模板选择 Linux by Zabbix agent active