1. 环境准备与基础配置在CentOS 7系统上部署Zabbix 6.0前需要先搭建LNMP环境。我遇到过不少新手直接照搬教程导致环境冲突的情况这里分享几个关键检查点首先关闭防火墙和SELinux这个步骤看似简单但经常被忽略。执行以下命令后建议用systemctl status firewalld确认服务状态systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config内存建议至少4GB实测2GB环境在数据库导入阶段容易卡死。曾经有次部署时发现MySQL频繁崩溃后来发现是swap分区未配置可以通过free -h检查内存情况不足时用以下命令创建swapdd if/dev/zero of/swapfile bs1M count4096 chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo /swapfile swap swap defaults 0 0 /etc/fstab2. MySQL 8.0部署实战MySQL 8.0的安装最容易踩坑的是身份验证插件问题。去年给客户部署时就遇到zabbix用户无法登录的情况折腾半天才发现是默认的caching_sha2_password插件不兼容。推荐用官方rpm bundle安装比yum安装更可控。这里有个小技巧用--nodeps跳过依赖检查可以避免包冲突wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-* --force --nodeps配置my.cnf时要特别注意字符集设置遇到过中文乱码问题的同学应该深有体会。建议添加这些参数[mysqld] character-set-serverutf8mb4 collation-serverutf8mb4_general_ci lower_case_table_names1创建zabbix数据库时务必指定字符集这是后续Web初始化报错的常见根源CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER zabbixlocalhost IDENTIFIED WITH mysql_native_password BY YourPassword; GRANT ALL PRIVILEGES ON zabbix.* TO zabbixlocalhost;3. Nginx与PHP调优指南Nginx配置中最容易出错的是PHP-FPM的转发设置。有次排查问题发现PHP页面返回502原来是fastcgi_param配置错误。推荐这样配置location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; }PHP 7.2的安装要注意扩展完整性曾经因为漏装bcmath扩展导致Zabbix报错。用这个命令可以一次性装齐所需扩展yum -y install php72w-cli php72w-fpm php72w-gd php72w-mbstring \ php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd关键参数调优/etc/php.inimax_execution_time 300 max_input_time 300 memory_limit 128M post_max_size 16M date.timezone Asia/Shanghai4. Zabbix 6.0核心部署源码编译时建议添加这些参数特别是需要监控SNMP设备时./configure --enable-server --with-mysql --with-net-snmp \ --with-libxml2 --with-ssh2 --with-openipmi --with-libevent数据库导入顺序很重要有次跳过了images.sql导致仪表盘图标丢失。正确顺序是mysql -uzabbix -p zabbix schema.sql mysql -uzabbix -p zabbix images.sql mysql -uzabbix -p zabbix data.sql服务启动前检查关键配置/etc/zabbix/zabbix_server.confDBHostlocalhost DBNamezabbix DBUserzabbix DBPasswordYourPassword Timeout45. 高频故障排查手册5.1 Web初始化报错集锦服务器请求客户端未知的身份验证方法这是因为MySQL 8.0默认使用caching_sha2_password插件。解决方法ALTER USER zabbixlocalhost IDENTIFIED WITH mysql_native_password BY password;无法确定当前Zabbix数据库版本通常是漏导了schema.sql。用这个命令检查是否存在dbversion表mysql -uzabbix -p -e USE zabbix; SHOW TABLES LIKE dbversion5.2 中文乱码终极解决方案将Windows的simkai.ttf字体上传到服务器后需要修改两处配置sed -i s/DejaVuSans/simkai/g /data/web/include/defines.inc.php sed -i s/DejaVuSans/simkai/g /data/web/assets/fonts/stylesheet.css如果主机名需要支持中文还要修改define(ZBX_PREG_INTERNAL_NAMES, ([0-9a-zA-Z_\. \-\x{80}-\x{ff}]));6. 性能优化与日常维护数据库方面建议定期清理history表这个SQL可以查看各表大小SELECT table_name, ROUND(data_length/1024/1024,2) AS data_mb, ROUND(index_length/1024/1024,2) AS index_mb FROM information_schema.tables WHERE table_schemazabbix;前端优化可以启用Nginx的gzip压缩gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xmlrss text/javascript;监控项配置建议设置合理的采集间隔曾经见过新手设置1秒间隔把服务器拖垮的情况。对于不常变化的指标设置30-60秒间隔即可。