1. 环境准备与系统优化在CentOS8上部署Zabbix 6.0 LTS之前合理的系统配置能避免80%的后续问题。我遇到过不少案例都是因为基础环境没做好导致监控系统运行不稳定。下面这些步骤都是经过生产环境验证的黄金配置方案。1.1 使用国内镜像源加速部署国内用户最头疼的就是软件包下载速度问题。实测用默认源安装Zabbix组件可能需要2小时以上换成阿里云镜像后缩短到15分钟。具体操作时要注意几个细节# 备份原有源配置重要系统升级时可能需要还原 sudo mkdir /etc/yum.repos.d/backup sudo mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup/ # 获取阿里云CentOS8镜像源 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo # 特别处理epel源很多依赖包在这里 sudo dnf install -y epel-release sudo sed -i s|^#baseurl|baseurl|g /etc/yum.repos.d/epel* sudo sed -i s|^metalink|#metalink|g /etc/yum.repos.d/epel* sudo sed -i s|//download\.fedoraproject\.org/pub|//mirrors.aliyun.com|g /etc/yum.repos.d/epel*更新缓存时如果遇到package conflicts错误可以试试这个万能解法sudo dnf clean all sudo rm -rf /var/cache/dnf sudo dnf -y update --allowerasing --skip-broken1.2 安全策略精细化配置完全关闭防火墙和SELinux是新手常见错误在生产环境应该采用白名单策略# 防火墙放行必要端口Zabbix Server默认10051Web80/443 sudo firewall-cmd --permanent --add-port80/tcp sudo firewall-cmd --permanent --add-port10050-10051/tcp sudo firewall-cmd --reload # SELinux策略调整比完全关闭更安全 sudo setsebool -P httpd_can_network_connect_db on sudo setsebool -P httpd_can_connect_zabbix on建议创建专门的审计规则监控关键目录# 监控Zabbix配置目录变更 sudo auditctl -w /etc/zabbix/ -p wa -k zabbix_config2. LAMP环境深度优化Zabbix官方推荐使用Nginx但实测Apache在中小规模监控场景下更稳定。下面这套配置方案支撑过500节点的监控系统。2.1 数据库选型与调优MariaDB 10.3的性能比MySQL社区版更适合Zabbix关键配置参数[mysqld] innodb_buffer_pool_size 1G # 建议物理内存的50% innodb_log_file_size 256M max_connections 200 character-set-server utf8mb4 collation-server utf8mb4_bin transaction-isolation READ-COMMITTED初始化时建议创建独立的表空间CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER zabbixlocalhost IDENTIFIED BY ComplexPssw0rd; GRANT ALL PRIVILEGES ON zabbix.* TO zabbixlocalhost; ALTER DATABASE zabbix DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;2.2 PHP性能调优Zabbix 6.0对PHP7.4有硬性要求这些参数直接影响页面加载速度memory_limit 256M post_max_size 32M upload_max_filesize 16M max_execution_time 300 max_input_time 300 date.timezone Asia/Shanghai opcache.enable1 opcache.memory_consumption128 opcache.interned_strings_buffer8 opcache.max_accelerated_files4000 opcache.revalidate_freq603. Zabbix Server生产级部署3.1 使用清华源加速安装官方源在国内访问不稳定推荐使用清华镜像源# 替换默认源 sudo rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm sudo sed -i s|repo.zabbix.com|mirrors.tuna.tsinghua.edu.cn/zabbix|g /etc/yum.repos.d/zabbix* # 安装核心组件推荐使用Agent2 sudo dnf install -y zabbix-server-mysql zabbix-web-mysql \ zabbix-apache-conf zabbix-sql-scripts \ zabbix-selinux-policy zabbix-agent23.2 数据库初始化技巧导入初始数据时容易卡死这个命令加了超时和重试机制for i in {1..3}; do zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -pComplexPssw0rd zabbix --connect-timeout30 break sleep 10 done关键配置文件/etc/zabbix/zabbix_server.conf的优化项DBHostlocalhost DBNamezabbix DBUserzabbix DBPasswordComplexPssw0rd DBSocket/var/lib/mysql/mysql.sock StartPollers20 StartPollersUnreachable10 StartTrappers15 StartPingers10 CacheSize256M HistoryCacheSize128M TrendCacheSize128M ValueCacheSize256M Timeout30 LogSlowQueries30004. 安全加固与监控自保护4.1 网络层防护修改默认端口能减少90%的自动化攻击# 修改Agent2端口 sudo sed -i s/# ListenPort10050/ListenPort21050/g /etc/zabbix/zabbix_agent2.conf # Server端同步修改 sudo sed -i s/# NodeAddress/NodeAddress0.0.0.0:21051/g /etc/zabbix/zabbix_server.conf4.2 证书加密通信自签名证书配置步骤# 生成CA证书 openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/zabbix/zabbix_ca.key \ -out /etc/zabbix/zabbix_ca.crt \ -subj /CNZabbix CA/OMy Company # 生成服务器证书 openssl req -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/zabbix/zabbix_server.key \ -out /etc/zabbix/zabbix_server.csr \ -subj /CNzabbix-server/OMy Company # 用CA签名 openssl x509 -req -in /etc/zabbix/zabbix_server.csr \ -CA /etc/zabbix/zabbix_ca.crt \ -CAkey /etc/zabbix/zabbix_ca.key \ -CAcreateserial \ -out /etc/zabbix/zabbix_server.crt在Agent2配置中启用加密TLSConnectpsk TLSAcceptpsk TLSPSKIdentityMyPSK TLSPSKFile/etc/zabbix/zabbix_agent2.psk5. 高可用方案实施5.1 数据库主从复制主库配置[mysqld] server-id 1 log_bin /var/log/mysql/mysql-bin.log binlog_format ROW binlog_row_image FULL expire_logs_days 7 sync_binlog 1从库配置CHANGE MASTER TO MASTER_HOSTmaster_ip, MASTER_USERrepl, MASTER_PASSWORDReplPssw0rd, MASTER_PORT3306, MASTER_AUTO_POSITION1; START SLAVE;5.2 Zabbix Server集群前端负载均衡配置示例Nginxupstream zabbix { server 192.168.1.101:80; server 192.168.1.102:80; keepalive 16; } server { listen 80; location / { proxy_pass http://zabbix; proxy_set_header Host $host; } }6. 性能监控与调优6.1 基础监控项配置这些是必须监控的关键指标系统级CPU负载、内存使用、磁盘IOPS、网络带宽数据库级连接数、查询缓存命中率、慢查询数量Zabbix自身队列积压、缓存利用率、Housekeeper执行时间6.2 自动化维护脚本定期清理历史数据的脚本#!/bin/bash # 保留30天历史数据 mysql -uzabbix -pComplexPssw0rd zabbix EOF DELETE FROM history WHERE clock UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)); DELETE FROM history_uint WHERE clock UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)); OPTIMIZE TABLE history, history_uint; EOF7. 故障排查指南7.1 日志分析技巧关键日志路径/var/log/zabbix/zabbix_server.log/var/log/httpd/error_log/var/log/mariadb/mariadb.log常见错误速查database is down检查DBPassword配置项和MySQL socket路径frontend access denied确认SELinux上下文chcon -R -t httpd_sys_content_t /usr/share/zabbixagent unreachable验证防火墙规则和Agent进程状态7.2 性能瓶颈定位使用这个命令实时监控Server状态watch -n 5 zabbix_server -R config_cache_reload mysql -uzabbix -pComplexPssw0rd -e SHOW STATUS LIKE \%onn%\; SHOW PROCESSLIST;8. 生产环境验证清单部署完成后务必检查这些项[ ] Web界面所有菜单功能测试[ ] 模拟触发器告警测试[ ] 监控项数据采集间隔验证[ ] 备份策略实施验证[ ] 性能基准测试建议用zabbix-bench工具最后提醒Zabbix Server的Java网关如果需要监控JMX应用要单独安装zabbix-java-gateway包并确保10052端口通畅。实际使用中发现对于大规模部署将Proxy节点部署在被监控网络内能显著提升采集效率。