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

相关推荐
懒惰的bit10 分钟前
STM32F103C8T6 学习笔记摘要(一)
笔记·stm32·学习
李元豪19 分钟前
强化学习所有所有算法对比【智鹿ai学习记录】
人工智能·学习·算法
来两个炸鸡腿30 分钟前
【Datawhale组队学习202506】零基础学爬虫 02 数据解析与提取
爬虫·python·学习
橡木树的叶子1 小时前
正点原子STM32cubeide学习——TFTLCD(MCU 屏)实验
ide·stm32·单片机·嵌入式硬件·学习
ldinvicible2 小时前
基于ARM ubuntu如何进行交叉编译
arm开发·数据库·ubuntu
Edingbrugh.南空2 小时前
Kafka性能压测报告撰写
分布式·kafka
lisanmengmeng2 小时前
rabbitMQ 高可用
linux·分布式·rabbitmq
魔镜魔镜_谁是世界上最漂亮的小仙女2 小时前
SQL-查询
java·数据库·后端
llwszx2 小时前
分布式锁的四种实现方式:从原理到实践
java·分布式·spring·分布式锁
憶巷3 小时前
TC、TM、RM如何协同解决分布式事务难题
分布式