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

保姆级教程:在CentOS 7上用Docker搞定Zabbix 5.0 + MySQL 8.0,监控H3C交换机不掉坑

保姆级教程:在CentOS 7上用Docker搞定Zabbix 5.0 + MySQL 8.0,监控H3C交换机不掉坑

老旧系统上部署新版本监控工具,往往伴随着各种兼容性问题。CentOS 7作为一款经典但已停止维护的操作系统,在企业环境中仍有大量应用。本文将手把手教你如何在这个"过时"的系统上,用Docker技术搭建Zabbix 5.0监控平台,完美兼容MySQL 8.0数据库,并实现对H3C交换机的稳定监控。

1. 环境准备与避坑指南

在CentOS 7上部署最新监控栈,首先要解决的就是系统兼容性问题。Zabbix 6.0官方已明确不支持CentOS 7,这也是我们选择5.0 LTS版本的原因。但即使是5.0版本,在安装过程中也会遇到各种"坑"。

系统基础配置要求

  • 最小4GB内存(Zabbix Server至少需要2GB)
  • 50GB可用磁盘空间
  • 已安装Docker和Docker Compose
  • 关闭SELinux和防火墙或配置适当规则

提示:生产环境建议使用SSD存储,特别是当监控设备数量较多时,I/O性能会成为瓶颈。

安装必要工具包:

yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io systemctl enable --now docker

2. MySQL 8.0容器化部署

MySQL 8.0默认使用caching_sha2_password认证插件,这会导致旧版客户端连接失败。我们需要在容器启动时进行特殊配置。

目录结构准备

mkdir -p /data/mysql/{conf,data,logs}

MySQL配置文件/data/mysql/conf/my.cnf

[mysqld] default_authentication_plugin=mysql_native_password character-set-server=utf8mb4 collation-server=utf8mb4_bin skip-host-cache skip-name-resolve [client] default-character-set=utf8mb4

启动MySQL容器:

docker run -d --name mysql \ -p 3306:3306 \ -v /data/mysql/conf:/etc/mysql/conf.d \ -v /data/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=YourStrongPassword \ mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

客户端连接问题解决方案

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-client --nogpgcheck

3. Zabbix 5.0组件安装与配置

由于CentOS 7的软件源限制,我们需要添加Zabbix官方仓库:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent

数据库初始化:

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'%' IDENTIFIED BY 'YourPassword'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%'; SET GLOBAL log_bin_trust_function_creators = 1;

导入初始数据:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

4. H3C交换机SNMP监控配置

H3C设备默认支持SNMP协议,但需要正确配置才能被Zabbix监控。

H3C交换机SNMPv3配置示例

snmp-agent snmp-agent sys-info version v3 snmp-agent group v3 zabbix_group privacy read-view iso snmp-agent usm-user v3 zabbix_user zabbix_group simple authentication-mode sha auth-pass YourAuthPass privacy-mode aes128 priv-pass YourPrivPass snmp-agent target-host trap address udp-domain 192.168.1.100 params securityname zabbix_user v3 privacy

Zabbix中配置SNMPv3监控

  1. 在主机配置中添加SNMP接口
  2. 设置以下宏:
    • {$SNMP3_AUTHPASSPHRASE}: YourAuthPass
    • {$SNMP3_PRIVPASSPHRASE}: YourPrivPass
    • {$SNMP3_SECNAME}: zabbix_user
  3. 选择H3C模板:Template Net H3C Devices SNMPv3

常见问题排查

# 测试SNMP连接 snmpwalk -v3 -l authPriv -u zabbix_user -a SHA -A YourAuthPass -x AES -X YourPrivPass 192.168.1.1 system

5. 中文显示与告警配置

Zabbix默认使用DejaVu字体,不支持中文显示。我们需要替换为中文字体:

# 从Windows复制simkai.ttf到服务器 cp simkai.ttf /usr/share/zabbix/assets/fonts/ chmod 644 /usr/share/zabbix/assets/fonts/simkai.ttf

修改Zabbix字体配置:

# /usr/share/zabbix/include/defines.inc.php define('ZBX_GRAPH_FONT_NAME', 'simkai');

企业微信告警配置

  1. 创建告警脚本/usr/lib/zabbix/alertscripts/wechat_alert.sh
#!/bin/bash to=$1 subject=$2 message=$3 WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-key" curl -s "$WEBHOOK_URL" \ -H "Content-Type: application/json" \ -d "{\"msgtype\": \"text\",\"text\": {\"content\": \"$subject\n$message\"}}"
  1. 在Zabbix前端配置告警媒介类型
  2. 创建告警动作并关联触发器

6. 性能优化与维护

随着监控项增加,Zabbix性能会逐渐下降。以下是一些优化建议:

MySQL优化参数

参数推荐值说明
innodb_buffer_pool_size总内存的50-70%缓存池大小
innodb_log_file_size512M-2G日志文件大小
max_connections200-300最大连接数

Zabbix服务器配置调整

# /etc/zabbix/zabbix_server.conf StartPollers=20 StartPollersUnreachable=10 StartTrappers=15 StartDiscoverers=5 HistoryCacheSize=256M TrendCacheSize=128M ValueCacheSize=1G

定期维护命令:

# 清理旧数据 mysql -uroot -p zabbix -e "DELETE FROM history WHERE clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));" mysql -uroot -p zabbix -e "OPTIMIZE TABLE history;" # 监控项无效时清空缓存 systemctl restart zabbix-server
http://www.jsqmd.com/news/856208/

相关文章:

  • 音视频开发避坑:YUV420P图像处理时Stride不对齐,你的内存拷贝为啥总出错?
  • Arm架构扩展详解:从A-profile到性能优化实践
  • 深入STM32WLE5的LoRa核心:对比SX126x裸驱与LoRaWAN协议栈,哪个更适合你的项目?
  • CANN-ops-nn和ops-transformer-昇腾NPU两个算子仓库怎么分工
  • 别再死记硬背PLL原理了!用这个Python小脚本,5分钟直观理解锁相环的捕获与锁定过程
  • 内网环境救星:保姆级教程,用zypper的--download-only参数搞定SUSE离线包全家桶
  • 基于STM32的智能空调控制器设计:从红外遥控到物联网升级
  • LabVIEW项目移植必看:两种驱动文件存放位置的保姆级对比与实战选择
  • 别再只懂write了!聊聊Linux文件写入后,sync、fsync、fdatasync到底该用哪个?
  • 用MCP41010数字电位器搞定你的第一个SPI外设(附51单片机完整代码)
  • Proteus仿真STC89C52:除了点亮LED,你的电路图真的画对了吗?(附原理分析)
  • 别再只会用vi了!openEuler 20.03 LTS下保姆级安装vim教程(附yum源配置)
  • 告别丢包!手把手教你用Vivado/PLL调优RTL8211的RXC时钟相位(FPGA千兆以太网篇)
  • MySQL 8.0字符集避坑指南:为什么你的emoji存不进数据库?从utf8到utf8mb4的完整升级方案
  • 强化学习回报归一化:ARN方法原理与SFC分区实践
  • Linux驱动开发:深入理解pinctrl与GPIO子系统协同工作原理
  • 别再只用Modbus了!手把手教你用S7-200的PPI协议实现两台PLC数据互传
  • 2026年热门的定制纸箱包装/纸箱包装公司对比推荐 - 行业平台推荐
  • UniApp地图开发避坑指南:在nvue页面里搞定iconfont、动态缩放和点聚合的完整流程
  • 机器视觉光源控制器:从恒流驱动到高速同步的选型与实战指南
  • 2026年口碑好的太阳能浇水花箱/太阳能供电花箱厂家选择推荐 - 品牌宣传支持者
  • 从游戏UI到工业HMI:聊聊Qt自定义控件(仪表盘、雷达、摇杆)的设计思路复用
  • Windows看图一片白?可能是TIFF在‘捣鬼’!教你用PyTorch和ISP模型正确还原图像色彩
  • APK Installer:在Windows上轻松安装Android应用的完整指南
  • 工程技巧 用缓存把 Agent 延迟打下来 结果缓存 语义缓存 计划缓存
  • SAP BOM管理进阶:群组BOM(Group BOM)的深度应用与工厂分配避坑指南
  • STM32F407 DAC输出三角波,再用ADC采样回传,一个定时器+DMA全搞定
  • 从数据到应用:ENVI处理后的GF-1影像在农业监测与变化检测中的实战解析
  • 手把手教你为Android Codec2框架添加一个自定义软解码器(以HEVC为例)
  • Halcon深度学习工具DLT V22.06保姆级安装教程(附大恒图像官网下载与中文设置)