《Zabbix Proxy分布式监控实战:从安装到配置全解析》

注意:实验所需的zabbix服务器的搭建可参考博客

zabbix 的docker安装_docker安装zabbix-CSDN博客

1.1 实验介绍

1.1.1 实验目的

本实验旨在搭建一个基于Zabbix的监控系统,通过安装和配置Zabbix Proxy、MySQL数据库以及Zabbix Agent,实现分布式监控环境的部署。实验的主要目标是:

  1. 安装并配置Zabbix Proxy与MySQL数据库的集成。

  2. 配置Zabbix Server与Proxy的通信。

  3. 部署Zabbix Agent并验证其与Zabbix Proxy的连接。

  4. 通过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 实验步骤概述
  1. Zabbix Proxy安装

    • 解决MySQL密钥问题,安装Zabbix Proxy的MySQL版本。

    • 更新数据源并验证安装。

  2. MySQL安装与配置

    • 卸载旧版本MySQL/MariaDB,安装MySQL 8.0。

    • 配置远程访问、修改密码认证方式(mysql_native_password)。

    • 创建Zabbix Proxy所需的数据库并导入表结构。

  3. Zabbix Proxy配置

    • 修改配置文件(zabbix_proxy.conf),指定Zabbix Server IP、数据库连接等参数。

    • 启动服务并验证运行状态。

  4. Zabbix Server端配置

    • 调整Zabbix Server配置文件(zabbix_server.conf),启用代理轮询。

    • 在Web界面添加代理程序。

  5. 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.conf

Server=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 成果总结
  1. Zabbix Proxy与MySQL成功集成

    • 通过解决MySQL密钥问题和依赖冲突,完成了Zabbix Proxy的安装。

    • 数据库zabbix_proxy的170张表结构成功导入,验证了Proxy与MySQL的兼容性。

  2. 分布式监控架构实现

    • Zabbix Proxy作为中间层,减轻了Server的负载,并通过配置文件正确连接到Server(IP: 10.1.1.92)。

    • 代理程序在Web界面中显示为"已启用",表明通信正常。

  3. 客户端监控部署

    • 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组件的配置要点,为后续复杂监控场景(如多机房、云环境)奠定了基础。

相关推荐
不做菜鸟的网工1 天前
Zabbix收集H3C交换机实时配置命令 「SNMP TRAP」
zabbix
初次攀爬者1 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
爱可生开源社区1 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1771 天前
《从零搭建NestJS项目》
数据库·typescript
肖祥1 天前
docker安装zabbix7.4
zabbix
西岸行者2 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip