《Zabbix Proxy分布式监控实战:从安装到配置全解析》
注意:实验所需的zabbix服务器的搭建可参考博客
zabbix 的docker安装_docker安装zabbix-CSDN博客
1.1 实验介绍
1.1.1 实验目的
本实验旨在搭建一个基于Zabbix的监控系统,通过安装和配置Zabbix Proxy、MySQL数据库以及Zabbix Agent,实现分布式监控环境的部署。实验的主要目标是:
-
安装并配置Zabbix Proxy与MySQL数据库的集成。
-
配置Zabbix Server与Proxy的通信。
-
部署Zabbix Agent并验证其与Zabbix Proxy的连接。
-
通过Zabbix Web界面管理监控主机和代理。
1.1.2 实验环境
-
操作系统:CentOS 7(或其他RHEL 7兼容系统)
-
软件组件:
-
Zabbix Proxy 5.2.6(MySQL版)
-
MySQL 8.0
-
Zabbix Agent 5.2.6
-
-
工具:Navicat(用于远程管理MySQL)、Docker(可选,用于Zabbix Server端)
1.1.2 实验步骤概述
-
Zabbix Proxy安装:
-
解决MySQL密钥问题,安装Zabbix Proxy的MySQL版本。
-
更新数据源并验证安装。
-
-
MySQL安装与配置:
-
卸载旧版本MySQL/MariaDB,安装MySQL 8.0。
-
配置远程访问、修改密码认证方式(
mysql_native_password
)。 -
创建Zabbix Proxy所需的数据库并导入表结构。
-
-
Zabbix Proxy配置:
-
修改配置文件(
zabbix_proxy.conf
),指定Zabbix Server IP、数据库连接等参数。 -
启动服务并验证运行状态。
-
-
Zabbix Server端配置:
-
调整Zabbix Server配置文件(
zabbix_server.conf
),启用代理轮询。 -
在Web界面添加代理程序。
-
-
Zabbix Agent部署:
-
在客户端安装Agent,修改配置文件指向Zabbix Proxy或Server。
-
通过Web界面添加主机并测试监控数据采集。
-
1.2 环境安装
1.2.1 zabbix-proxy安装
先解决mysql秘钥问题
sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# 导入到 RPM 数据库sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
安装(可能会有一点报错但是只要安装成功就没太大问题)
yum install -y https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-proxy-mysql-5.2.6-1.el7.x86_64.rpm
更新数据源
sudo yum clean all
sudo yum makecache
1.2.2 mysql安装
卸载旧版本
# 查看已安装的 MariaDB/MySQL 包
sudo rpm -qa | grep mariadb
sudo rpm -qa | grep mysql# 卸载相关包(根据实际查询结果替换包名)
sudo yum remove mariadb-libs-* mysql-*
显示以下结果为卸载干净
添加 MySQL 8.0 Yum 仓库
sudo yum install -y wget
wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
安装仓库 RPM 包:
sudo rpm -ivh mysql80-community-release-el7-6.noarch.rpm
验证仓库是否添加成功:
yum repolist enabled | grep "mysql.*-community.*"
安装 MySQL 服务:
出现异常
禁用秘钥
sudo yum install mysql-community-server --nogpgcheck
用后再次安装
sudo yum install -y mysql-community-server
验证版本
mysqld --version
启动 MySQL 服务
获取临时 root 密码
sudo grep 'temporary password' /var/log/mysqld.log:?AH6vdA>et:
运行安全配置向导
sudo mysql_secure_installation新密码:Passw@rd123
配置远程访问(可选)
mysql -u root -p
Passw@rd123
use mysql;
select host,user from user;创建远程登陆用户
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Passw@rd123';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Passw@rd123';
Navicat进行远程登陆
修改mysql密码认证
避免后续出现:connection to database 'zabbix_proxy' failed: [2059] Authentication plugin 'caching_sha2_password' 的错误
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Passw@rd123';ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Passw@rd123';FLUSH PRIVILEGES;
重启
sudo systemctl restart mysqld
1.2.3 配置文件
创建数据库(可以命令创建也可以在navicat里面直接添加数据库)
create database zabbix_proxy character set utf8 collate utf8_bin;
查看数据库是否创建成功
show databases;
导入sql文件
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uroot -pPassw@rd123 zabbix_proxy
查看已导入的zabbix_proxy里的表 ,一共170张
远程查看导入的表,也是一共170张
如果导入时报错
可能是因为刚开始的安装时落下了某个依赖,可以重新执行安装命令
yum install -y https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-proxy-mysql-5.2.6-1.el7.x86_64.rpm
配置代理服务文件/etc/zabbix/zabbix_proxy.conf
vim /etc/zabbix/zabbix_proxy.confServer=10.1.1.92 #zabbix服务器的ip
Hostname=nanji_server
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=root
DBPassword=Passw@rd123
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
重启并查看
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service
ps -ef | grep zabbix
如果如下启动失败,可查看日志
日志默认一般的存放位置
配置服务器端10.1.1.92
vi /etc/zabbix/zabbix_server.conf
LogType=console
DBHost=zabbix-mysql
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
User=zabbix
JavaGateway=zabbix-java-gateway
JavaGatewayPort=10052
StartJavaPollers=20
StartProxyPollers=5
1.2.4 配置web
创建代理程序
配置客户端
停止客户端的容器,并删除全部停止的容器,最后清空/opt目录
安装agent服务
# 下载 RPM 包
wget https://mirrors.aliyun.com/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-agent-5.2.6-1.el7.x86_64.rpm# 安装(自动解决依赖)
yum localinstall zabbix-agent-5.2.6-1.el7.x86_64.rpm
修改conf文件
cd /etc/zabbix/
ls
vi zabbix_agentd.conf
主机名:Zabbix server
重启并查看
systemctl start zabbix-agent
systemctl enable zabbix-agent
ps -ef |grep zabbix
1.2.5 web端测试
创建主机,勾选代理
如果想要快一点刷新状态,可去服务端重启mysql
docker compose restart zabbix-server-mysql
查看代理
1.3 实验结论
1.3.1 成果总结
-
Zabbix Proxy与MySQL成功集成:
-
通过解决MySQL密钥问题和依赖冲突,完成了Zabbix Proxy的安装。
-
数据库
zabbix_proxy
的170张表结构成功导入,验证了Proxy与MySQL的兼容性。
-
-
分布式监控架构实现:
-
Zabbix Proxy作为中间层,减轻了Server的负载,并通过配置文件正确连接到Server(IP:
10.1.1.92
)。 -
代理程序在Web界面中显示为“已启用”,表明通信正常。
-
-
客户端监控部署:
-
Zabbix Agent安装后,通过配置文件和Web界面绑定到代理,实现了主机的快速注册和监控。
-
通过重启服务端MySQL容器加速状态刷新,验证了监控数据的实时性。
-
1.3.2 问题与解决
-
MySQL安装异常:因GPG密钥检查失败,通过
--nogpgcheck
参数绕过并完成安装。 -
数据库认证错误:将默认的
caching_sha2_password
改为mysql_native_password
,解决了Zabbix Proxy连接MySQL的兼容性问题。 -
表导入失败:重新安装
zabbix-proxy-mysql
依赖后成功导入SQL文件。
1.3.3 实验意义
本实验验证了Zabbix分布式监控方案的可行性,通过Proxy分担Server压力,适合大规模网络环境。同时,熟悉了MySQL 8.0与Zabbix组件的配置要点,为后续复杂监控场景(如多机房、云环境)奠定了基础。
相关文章:

《Zabbix Proxy分布式监控实战:从安装到配置全解析》
注意:实验所需的zabbix服务器的搭建可参考博客 zabbix 的docker安装_docker安装zabbix-CSDN博客 1.1 实验介绍 1.1.1 实验目的 本实验旨在搭建一个基于Zabbix的监控系统,通过安装和配置Zabbix Proxy、MySQL数据库以及Zabbix Agent,实现分…...

华为配置篇-RSTP/MSTP实验
MSTP 一、简介二、常用命令总结三、实验 一、简介 RSTP(快速生成树协议) RSTP(Rapid Spanning Tree Protocol)是 STP 的改进版本,基于 IEEE 802.1w 标准,核心目标是解决传统 STP 收敛速度慢的问…...

git如何将本地 dev 分支与远程 dev 分支同步
要让本地 dev 分支与远程 dev 分支完全同步(丢弃本地多余的提交记录),可以按照以下步骤操作: 1. 获取远程最新状态 git fetch origin dev # 拉取远程 dev 分支的最新提交,但不会修改本地代码 IDEA中点击fetc…...
使用Python和OpenCV实现实时人脸检测与识别
前言 在计算机视觉领域,人脸检测与识别是两个非常重要的任务。人脸检测是指在图像中定位人脸的位置,而人脸识别则是进一步识别出人脸的身份。随着深度学习的发展,这些任务的准确性和效率都有了显著提升。OpenCV是一个开源的计算机视觉库&…...

Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制
目录 一、Input类 1. 鼠标输入 2. 键盘输入 3. 默认轴输入 (1) 基础参数 (2)按键绑定参数 (3)输入响应参数 (4)输入类型与设备参数 (5)不同类型轴的参…...

QT:获取软件界面窗口的尺寸大小2025.5.8
在Windows系统中,获取软件界面窗口的尺寸大小可以通过多种方法实现,以下是基于不同场景的详细解决方案: 方法1:使用Windows API获取窗口尺寸 适用于获取外部应用程序窗口的尺寸(如记事本、计算器等)。 步…...

【ML-Agents】ML-Agents示例项目导入unity报错解决
最近在跑ML-Agents的示例代码,无奈往unity中导入项目后,就出现报错。本文简要描述了各个报错的解决方法。 文章目录 一、error CS0234: The type or namespace name InputSystem does not exist in the namespace UnityEngine (are you missing an assem…...
【网络安全】SQL注入
如果文章不足还请各位师傅批评指正! 想象一下,你经营着一家咖啡店,顾客可以通过店内的点单系统下单。这个系统会根据顾客的输入,向后厨发送指令,比如“为顾客A准备一杯拿铁”。 然而,如果有个不怀好意的顾客…...

Transformer Decoder-Only 参数量计算
Transformer 的 Decoder-Only 架构(如 GPT 系列模型)是当前大语言模型的主流架构,其参数量主要由以下几个部分组成: 嵌入层(Embedding Layer)自注意力层(Self-Attention Layers)前馈…...

uni-app 中的条件编译与跨端兼容
uni-app 为了实现一套代码编译到多个平台(包括小程序,App,H5 等),引入了条件编译机制。 通过条件编译,我们可以针对不同的平台编写特定的代码,从而实现跨端兼容。 一、条件编译的作用 平台差异…...
<C#>log4net 的配置文件配置项详细介绍
log4net 是一个功能强大的日志记录工具,通过配置文件可以灵活地控制日志的输出方式、格式、级别等。以下是对 log4net 配置文件常见配置项的详细介绍: 根元素 <log4net> 这是 log4net 配置文件的根元素,所有配置项都要包含在该元素内…...
excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理
excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理 excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理 在 C# 中,Excel 日期被表示为一个数字,这是因为 Excel 内部将日期存储为…...

Unity接入SDK之修改Unity启动页面
原理就是在Android Studio新建Activity继承UnityPlayerActivity,然后再Unity中修改启动页面。 一,Android Studio篇 首先新建一个项目, 新建完成之后基于新建的项目新建一个module,选择为Android Library类型 新建的Library再目…...

yarn workspace使用指南
作用 Yarn workspace 是 Yarn 包管理工具中的一个功能,主要用于管理多包项目(monorepo)。它的主要作用如下: 支持多包结构:允许在一个仓库中管理多个独立的包或项目。项目间依赖管理:方便地在不同包之间添…...
[学习]RTKLib详解:datum.c、download.c与lambda.c
RTKLib详解: datum.c、download.c 与 lambda.c 本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。 [学习] RTKlib详解:功能、工具与源码结构解析 [学习]RTKLib详解ÿ…...

VUE el-select下拉框动态设置禁用,删除后恢复可选择
场景:点击新增添加按钮,列表table会新增一条包含下拉菜单的数据,如果其中任何一个下拉框选择了某个值,那么新增的下拉菜单的选项中该值是禁用状态,只能选择其他未被选中过的值。点击删除按钮后,已禁用的选项…...

FPGA----基于ALINX提供的debian实现TCF
引言:接上问,我们使用自制的image.ub和boot.bin以及ALINX提供的debian8根文件系统,构建了petalinux,但是经测试,该文件系统无法启用TCF服务,即无法与Xilinx SDK建立连接,那么我们应该如何解决? FPGA----基于ZYNQ 7020实现定制化的EPICS通信系统-CSDN博客文章浏览阅读4…...

木马查杀篇—Opcode提取
【前言】 介绍Opcode的提取方法,并探讨多种机器学习算法在Webshell检测中的应用,理解如何在实际项目中应用Opcode进行高效的Webshell检测。 Ⅰ 基本概念 Opcode:计算机指令的一部分,也叫字节码,一个php文件可以抽取出…...
1.7 方向导数
(底层逻辑演进脉络)从"单车道"到"全路网"的导数进化史: 一、偏导数奠基(1.6核心) 诞生背景:多元函数分析需求 当变量间存在耦合关系时(如房价面积单价装修成本)…...
设计模式系列(01):总览与引导
设计模式系列(01):总览与引导 本文为设计模式系列第1篇,定位为总览和引导,系统梳理设计模式的核心思想、分类、UML、设计原则、典型场景、学习建议与常见误区,适合系统学习与团队协作。 目录 1. 前言2. 设计模式简介3. UML与设计模式4. 术语解释5. UML工具与PlantUML6. 面…...

国产化Excel处理控件Spire.XLS系列教程:如何通过 C# 删除 Excel 工作表中的筛选器
在 Excel 文件中,筛选器(Filter)是一个常用的数据处理工具,可以帮助用户快速按条件筛选数据行。但在数据整理完成、导出、共享或打印之前,往往需要 删除 Excel 工作表中的筛选器,移除列标题中的下拉筛选按钮…...
第二篇 客户端脚本安全
同源策略 限制了来自不同的"dociment"或脚本,对当前"dociment"读取或设置一些属性。 不同源:host(域名或ip),子域名,端口,协议。 对于当前页面来说,页面的源…...

[sklearn] 特征工程
一.字典数据抽取 def dictvec():"""字典数据抽取:return: None"""# 实例化# sparse改为True,输出的是每个不为零位置的坐标,稀疏矩阵可以节省存储空间dict DictVectorizer(sparseFalse) #矩阵中存在大量的0,sparse存储只…...

CI/CD与DevOps流程流程简述(提供思路)
一 CI/CD流程详解:代码集成、测试与发布部署 引言 在软件开发的世界里,CI/CD(持续集成/持续交付)就像是一套精密的流水线,确保代码从开发到上线的整个过程高效、稳定。我作为一名资深的软件工程师,接下来…...

S7-1500——零基础入门1、工业编程基本概念
工业编程基本概念 一,数制与基本数据类型二,数字量信号三,模拟量信号一,数制与基本数据类型 本节主要内容 类别内容主题数制与基本数据类型数制讲解十进制、十六进制、二进制及其进位规则;基数、位权概念数据类型介绍PLC 使用的数据类型:未序列数据类型(bit、byte、wor…...

六、快速启动框架:SpringBoot3实战
六、快速启动框架:SpringBoot3实战 目录 一、SpringBoot3介绍 1.1 SpringBoot3简介1.2 系统要求1.3 快速入门1.4 入门总结 二、SpringBoot3配置文件 2.1 统一配置管理概述2.2 属性配置文件使用2.3 YAML配置文件使用2.4 批量配置文件注入2.5 多环境配置和使用 三、…...

万兴PDF-PDFelement v11.4.13.3417
万兴PDF专家(Wondershare PDFelement)是一款国产PDF文档全方位解决方案.万兴PDF编辑器软件万兴PDF中文版,专注于PDF的创建,编辑,转换,签名,压缩,合并,比较等功能.万兴PDF专业版PDF编辑软件,以简约风格及强大的功能在国外名声大噪,除了传统功能外,还提供OCR扫描,表格识别,创建笔…...
LSP里氏替换原则
LSP强调子类必须能够替换父类。即子类应该具有与父类相同的行为和功能,而不仅仅是继承父类的属性和方法。LSP是对继承机制的约束规范、是指导接口与实现的设计原则。 LSP关键点 前置条件不能强化:子类方法的参数类型必须与父类相同或者更为宽松。后置条…...

机器学习-无量纲化与特征降维(一)
一.无量纲化-预处理 无量纲,即没有单位的数据 无量纲化包括"归一化"和"标准化",这样做有什么用呢?假设用欧式距离计算一个公司员工之间的差距,有身高(m)、体重(kg&#x…...

C语言复习--柔性数组
柔性数组是C99中提出的一个概念.结构体中的最后⼀个元素允许是未知大小的数组,这就叫做柔性数组成员。 格式大概如下 struct S { int a; char b; int arr[];//柔性数组 }; 也可以写成 struct S { int a; char b; int arr[0];//柔性数组 }; …...