保姆级教程:在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至少需要2GB50GB可用磁盘空间已安装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 docker2. 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_pluginmysql_native_password character-set-serverutf8mb4 collation-serverutf8mb4_bin skip-host-cache skip-name-resolve [client] default-character-setutf8mb4启动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_PASSWORDYourStrongPassword \ mysql:8.0 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci客户端连接问题解决方案wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-client --nogpgcheck3. 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 zabbix4. 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 privacyZabbix中配置SNMPv3监控在主机配置中添加SNMP接口设置以下宏{$SNMP3_AUTHPASSPHRASE}: YourAuthPass{$SNMP3_PRIVPASSPHRASE}: YourPrivPass{$SNMP3_SECNAME}: zabbix_user选择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 system5. 中文显示与告警配置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);企业微信告警配置创建告警脚本/usr/lib/zabbix/alertscripts/wechat_alert.sh#!/bin/bash to$1 subject$2 message$3 WEBHOOK_URLhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyyour-key curl -s $WEBHOOK_URL \ -H Content-Type: application/json \ -d {\msgtype\: \text\,\text\: {\content\: \$subject\n$message\}}在Zabbix前端配置告警媒介类型创建告警动作并关联触发器6. 性能优化与维护随着监控项增加Zabbix性能会逐渐下降。以下是一些优化建议MySQL优化参数参数推荐值说明innodb_buffer_pool_size总内存的50-70%缓存池大小innodb_log_file_size512M-2G日志文件大小max_connections200-300最大连接数Zabbix服务器配置调整# /etc/zabbix/zabbix_server.conf StartPollers20 StartPollersUnreachable10 StartTrappers15 StartDiscoverers5 HistoryCacheSize256M TrendCacheSize128M ValueCacheSize1G定期维护命令# 清理旧数据 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