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