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 架构

image

 

 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不兼容问题
安装环境准备
注意:所有主机的主机名要唯一,否则被动模式可能会影响数据采集

image

 

 

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的日志提示

f4df7d4f6bfb58278f203db19ea23c25

 

ce9ba8e8c2300b648a2f98017ae4e4a7

 

e07d15ab170093aa7eec6af917410d33

 

 

6dd70b04dc702d9b2fbc399c95a9f15b

 

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

bbed429b7e9e35948c004477615b4d83

 

29c6bde78291dd79914886f376b980ba

 

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

 

 

 
posted @ 2026-11-06 23:21  minger_lcm  阅读(3)  评论(0)    收藏  举报