当前位置: 首页 > news >正文

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

http://www.xdnf.cn/news/337879.html

相关文章:

  • uniapp|获取当前用户定位、与系统设定位置计算相隔米数、实现打卡签到(可自定义设定位置、位置有效范围米数)
  • 【本地搭建npm私服】使用Verdaccio
  • K8s中的containerPort与port、targetPort、nodePort的关系:
  • ping_test_parallel.sh 并行网络扫描脚本
  • 《零基础学机器学习》学习大纲
  • ruoyi-flowable-plus 前端框架启动报错修复
  • openwrt之UCI 增删改查(add/get/set /add_list...)
  • c++进阶——红黑树的实现
  • 使用Jmeter对AI模型服务进行压力测试
  • CSS3 过渡与动画
  • 体绘制中的传输函数(transfer func)介绍
  • JDBC:java与数据库连接,Maven,MyBatis
  • 3D医学影像开发<五>:利用Hessian矩阵增强影像并设置固定阈值进行血管模型自动分割
  • 认识不同格式的点云数据 -PCD点云数据 文本点云数据
  • 【前端】webstorm运行程序浏览器报network error
  • PyTorch 版本、torchvision 版本和 Python 版本的对应关系
  • iptables 访问控制列表使用记录
  • 在UI原型设计中,低、高保真原型图有什么区别?
  • 用NVivo革新企业创新:洞悉市场情绪,引领金融未来
  • 使用thymeleaf模版导出swagger3的word格式接口文档
  • 【每天学习一点点】使用Python的pathlib模块分割文件路径
  • HBuilderX安卓真机运行安装失败解决汇总
  • Git实战经验分享:深入掌握git commit --amend的进阶技巧
  • zookeeper实现分布式获取全局唯一自增ID的案例。
  • 论文速读《DARE:基于扩散模型的自主机器人探索新范式》
  • 【Linux网络】网络命令
  • 基于LSTM与SHAP可解释性分析的神经网络回归预测模型【MATLAB】
  • 基于vueflow可拖拽元素的示例(基于官网示例的单文件示例)
  • 深入解析 C# 常用数据结构:特点、区别与优缺点分析
  • C/C++内存分布