保姆级教程:在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监控:
- 在主机配置中添加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 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');
企业微信告警配置:
- 创建告警脚本
/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\"}}"
- 在Zabbix前端配置告警媒介类型
- 创建告警动作并关联触发器
6. 性能优化与维护
随着监控项增加,Zabbix性能会逐渐下降。以下是一些优化建议:
MySQL优化参数:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| innodb_buffer_pool_size | 总内存的50-70% | 缓存池大小 |
| innodb_log_file_size | 512M-2G | 日志文件大小 |
| max_connections | 200-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
更多推荐
所有评论(0)