Zabbix6.0基于Proxy实现分布式监控工作原理
Zabbix 分布式实现 Proxy
Zabbix Proxy 工作原理
Zabbix Proxy 概述
zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控
数据,然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替zabbix server
收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix
server的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。
官方文档:
https://www.zabbix.com/documentation/6.0/zh/manual/distributed_monitoring
https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring
https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring
Zabbix Proxy 使用场景
- 监控远程区域设备,尤其是多机房和多个云环境时
- 监控网络不稳定区域,避免跨网段监控的告警不及时
- 当需要监控设备众多时,使用它来减轻 Zabbix Server 的压力
- 简化分布式监控的维护,无需各位创建 Zabbix Server,统一管理策略Zabbix Proxy 架构
Zabbix Proxy 架构

Zabbix Proxy 功能列表
官方文档:
https://www.zabbix.com/documentation/6.0/zh/manual/distributed_monitoring/proxies
https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring/proxies
https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring/proxies
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,
如下表:
功能 proxy支持状态
监控项(Items)
Zabbix agent checks Yes
Zabbix agent checks (active) Yes
Simple checks Yes
Trapper items Yes
SNMP checks Yes
SNMP traps Yes
IPMI checks Yes
JMX checks Yes
日志文件监控(Log file monitoring) Yes
内部检查(Internal checks) Yes
SSH checks Yes
Telnet checks Yes
外部检查(External checks) Yes
内置web监控(Built-in web monitoring) Yes
网络发现(Network discovery) Yes
自动发现(Low-level discovery) Yes
触发器计算(Calculating triggers) No
处理事件(Processing events) No
发送报警(Sending alerts) No
远程命令(Remote commands) No
Zabbix Server 和 Zabbix Proxy 区别
Zabbix Proxy 只执行数据收集,不运行触发器,无处理事件,也不发送告警,无Web管理界面
所以最终导致告警延时可能会比较长
zabbix server zabbix proxy
轻量级 否 是
图形化 有 无
独立工作 是,可实现数据采集,存储,分析,展示 是,可实现数据采集和存储
维护 容易 很容易,配置完成后基本无需管理
独立数据库
有独立数据库,保留指定时间内的所有数据
每个Proxy都有独立数据库,保留部分数据
告警通知 支持邮件,短信,微信等告警机制 不支持
Zabbix Proxy 的主动模式和被动模式
Zabbix Proxy 也分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样
Zabbix Proxy的模式 是从Zabbix Proxy 角度来说的
zabbix proxy在主动模式下要主动地向zabbix server周期性的申请获取zabbix agent的监控项信息,此模
式可以大幅降低Zabbix Server的压力,生产推荐使用
Zabbix Proxy在被动模式下要被动地等待zabbix server的连接,并接受zabbix server发送的监控项指
令,然后再由zabbix proxy向zabbix agent发起请求获取数据。
注意:
Zabbix Proxy 的主动模式和被动模式和Agent的主动被动模式没有关系
Zabbix Proxy 的主动模式要求ZabbixServer 需要有公网地址
Zabbix Proxy 的被动模式要求Zabbix Proxy 需要有公网地址
Zabbix Proxy 安装和配置
注意: Zabbix Proxy的大版本必须要和zabbix server版本相同,否则很可能会导致出现 zabbix server与
zabbix proxy不兼容问题
安装环境准备
注意:所有主机的主机名要唯一,否则被动模式可能会影响数据采集

https://www.zabbix.com/cn/download?zabbix=6.0&os_distribution=rocky_linux&os_version=9&components=proxy_no_apm&db=mysql&ws=
地址 角色 安装方法 系统
192.168.3.60 Zabbix Server,MySQL rockylinux9
192.168.3.64 Zabbix Proxy主动模式,MySQL 包安装 rockylinux9
192.168.3.65 Zabbix agent 主动模式,MySQL 包安装 rockylinux9
安装 Zabbix Proxy
二进制包安装
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpm
dnf clean all
Install Zabbix proxy
dnf install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
创建初始数据库
dnf install mysql mysql-server -y
systemctl start mysqld
mysql -uroot -p
create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix_proxy.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
Configure the database for Zabbix proxy
编辑配置文件 /etc/zabbix/zabbix_proxy.conf
DBPassword=password
主动模式配置
修改proxy配置文件
grep '^[^#]' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #主动模式为0,被动模式为1,默认为0即主动模式
Server=192.168.3.60 #指向Zabbix Server
Hostname=zabbix-proxy-active #此名称必须和后面Web管理页的agent代理程序名称相同
DBHost=localhost #MySQL服务器地址
DBName= zabbix_proxy #MySQL数据库名
DBUser=zabbix #连接MySQL的用户
DBPassword=123456 #连接MySQL的用户密码
Start Zabbix proxy process and make it start at system boot.
systemctl restart zabbix-proxy
systemctl enable zabbix-proxy
#Zabbix Proxy 监听10051/tcp端口
netstat -ntpl
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpm
dnf clean all
dnf install zabbix-agent2
dnf install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql
修改Zabbix Agent 配置文件为主动模式的 Zabbix Proxy
vim /etc/zabbix/zabbix_agent2.conf
grep '^[^#]' /etc/zabbix/zabbix_agent2.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.3.60 #(可选)指向Zabbix Server和Zabbix Proxy
ServerActive=192.168.3.64 #指向Zabbix Proxy(必选)
Hostname=192.168.3.65 #要标和Zabbix Server 添加主机的主机名称相同
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
tail -f /var/log/zabbix/zabbix_agent2.log
在 Zabbix Server 上添加代理 Proxies
注意:agent代理程序名称要和proxy 配置文件中Hostname指定的名称相同,否则会现 proxy "zabbixproxy-active" not found的日志提示




在Zabbix Server 上配置 Zabbix Agent 使用主动代理


验证主机状态
注意: 如果不成功,可以删除后再重新添加监控的主机或者重启动 proxy 服务
浙公网安备 33010602011771号