保姆级教程:在CentOS 7上搞定Zabbix 6.4全套环境(含PHP 7.4升级与中文乱码修复)
2026/5/4 22:51:55 网站建设 项目流程

保姆级教程:CentOS 7系统下Zabbix 6.4全栈部署与疑难解决实战

当你第一次接触企业级监控系统时,Zabbix往往是最令人又爱又恨的选择。作为一款开源监控解决方案,它功能强大但部署复杂,特别是当遇到CentOS 7这种"经典"系统时,各种版本冲突和依赖问题会让新手寸步难行。本教程将手把手带你完成从零开始的完整部署,包括那些官方文档没告诉你的"坑点"解决方案。

1. 基础环境准备:打造Zabbix的温床

在开始前,请确保你有一台干净的CentOS 7服务器。最小化安装的系统反而更推荐,因为它能避免各种预装软件带来的冲突。我们先来解决两个最常见的"拦路虎":防火墙和SELinux。

# 停止并禁用防火墙 systemctl stop firewalld systemctl disable firewalld # 临时关闭SELinux setenforce 0 # 永久禁用SELinux sed -i "s/^SELINUX=.*$/SELINUX=disabled/" /etc/selinux/config

提示:生产环境中不建议完全禁用SELinux,可以配置为permissive模式并添加适当规则。但为了简化教程,这里选择禁用方案。

接下来更新系统基础软件包:

yum update -y yum install -y epel-release

2. MySQL 8.0部署与Zabbix专用配置

Zabbix 6.4对数据库版本有严格要求,CentOS 7默认的MariaDB 5.5无法满足需求。我们选择MySQL 8.0社区版:

# 添加MySQL官方源 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm # 安装MySQL服务器和开发包 yum -y --enablerepo=mysql80-community install mysql-community-server mysql-devel --nogpgcheck

启动MySQL并设置开机自启:

systemctl start mysqld systemctl enable mysqld

安全配置MySQL账户(注意记录你设置的密码):

# 获取临时密码 temp_pass=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}') # 登录并修改密码 mysql -uroot -p"$temp_pass" --connect-expired-password <<EOF ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySecurePass123!'; CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixSecure123!'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES; EOF

3. 编译器升级:解决GCC版本困境

CentOS 7默认的GCC 4.8无法编译Zabbix 6.4,我们需要升级到GCC 11:

# 安装SCL仓库和必要依赖 yum install -y centos-release-scl net-snmp-devel libevent-devel # 安装devtoolset-11 yum install devtoolset-11-gcc* -y

永久替换系统默认GCC(避免每次手动激活):

mv /usr/bin/gcc /usr/bin/gcc-4.8.5 ln -s /opt/rh/devtoolset-11/root/usr/bin/gcc /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g++-4.8.5 ln -s /opt/rh/devtoolset-11/root/usr/bin/g++ /usr/bin/g++

验证版本:

gcc --version g++ --version

4. Zabbix服务端编译安装全流程

现在进入核心环节——Zabbix本身的安装。我们从源码编译开始:

# 下载Zabbix 6.4.3源码包 wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.3.tar.gz # 创建安装目录并解压 mkdir -p /usr/local/zabbix tar -zxvf zabbix-6.4.3.tar.gz -C /usr/local/zabbix/

创建专用系统账户:

groupadd zabbix useradd -g zabbix -M -s /sbin/nologin zabbix

编译配置(注意参数调整):

cd /usr/local/zabbix/zabbix-6.4.3/ ./configure --prefix=/usr/local/zabbix/ \ --enable-server \ --enable-agent \ --with-net-snmp \ --with-mysql

编译并安装:

make && make install

5. PHP 7.4升级与Web环境配置

CentOS 7默认的PHP 5.6无法满足Zabbix 6.4需求,我们需要升级到PHP 7.4:

# 添加Remi仓库 yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum -y install yum-utils # 启用PHP 7.4仓库 yum-config-manager --disable 'remi-php*' yum-config-manager --enable remi-php74 # 安装PHP及相关扩展 yum -y install php php-bcmath php-gd php-xml php-mbstring php-mysqlnd php-ldap

调整PHP关键参数:

sed -i 's/^max_execution_time = .*/max_execution_time = 300/' /etc/php.ini sed -i 's/^post_max_size = .*/post_max_size = 16M/' /etc/php.ini sed -i 's/^max_input_time = .*/max_input_time = 300/' /etc/php.ini

6. Web界面部署与数据库初始化

配置Apache和Zabbix前端:

# 安装Apache yum install -y httpd # 部署Zabbix前端文件 cp -r /usr/local/zabbix/zabbix-6.4.3/ui/* /var/www/html/ chown apache:apache /var/www/html -R

导入数据库结构(注意使用root账户执行schema.sql):

mysql -uroot -pMySecurePass123! zabbix < /usr/local/zabbix/zabbix-6.4.3/database/mysql/schema.sql mysql -uzabbix -pZabbixSecure123! zabbix < /usr/local/zabbix/zabbix-6.4.3/database/mysql/images.sql mysql -uzabbix -pZabbixSecure123! zabbix < /usr/local/zabbix/zabbix-6.4.3/database/mysql/data.sql

配置Zabbix Server连接数据库:

cat > /usr/local/zabbix/etc/zabbix_server.conf <<EOF DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=ZabbixSecure123! EOF

7. 服务启动与中文显示优化

启动所有相关服务:

systemctl start httpd systemctl enable httpd # 启动Zabbix服务 /usr/local/zabbix/sbin/zabbix_server /usr/local/zabbix/sbin/zabbix_agentd

解决中文乱码问题:

yum install -y wqy-microhei-fonts cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/html/assets/fonts/DejaVuSans.ttf

现在可以通过浏览器访问http://你的服务器IP,使用默认凭证登录:

  • 用户名:Admin
  • 密码:zabbix

8. Zabbix Agent批量部署技巧

对于需要监控的其他服务器,可以快速部署Agent:

# 使用清华镜像源加速下载 yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.4/rhel/7/x86_64/zabbix-agent-6.4.3-release1.el7.x86_64.rpm

配置Agent连接Server:

cat > /etc/zabbix/zabbix_agentd.conf <<EOF Server=ZABBIX_SERVER_IP ServerActive=ZABBIX_SERVER_IP Hostname=$(hostname) UnsafeUserParameters=1 EOF

启动Agent服务:

systemctl start zabbix-agent systemctl enable zabbix-agent

9. 常见问题排查手册

在部署过程中,你可能会遇到以下典型问题:

问题1:编译时出现"MySQL library not found"错误

  • 确保安装了mysql-devel包
  • 检查configure参数是否正确指定--with-mysql

问题2:Web界面提示PHP参数不满足要求

  • 确认已安装所有必需的PHP扩展
  • 检查/etc/php.ini中的参数设置
  • 重启Apache服务使更改生效

问题3:Zabbix Server无法启动

  • 检查/usr/local/zabbix/etc/zabbix_server.conf中的数据库连接信息
  • 查看/var/log/zabbix/zabbix_server.log获取详细错误信息
  • 确保SELinux已禁用或配置了适当策略

问题4:图表显示异常或乱码

  • 确认已正确替换字体文件
  • 检查/var/www/html/assets/fonts目录权限
  • 清除浏览器缓存后重试

10. 性能调优与安全建议

完成基础部署后,可以考虑以下优化措施:

数据库优化:

-- 在MySQL中执行 ALTER TABLE history MODIFY itemid bigint unsigned NOT NULL; ALTER TABLE history_uint MODIFY itemid bigint unsigned NOT NULL;

Zabbix Server配置调整:

# 在/usr/local/zabbix/etc/zabbix_server.conf中添加 StartPollers=20 StartPollersUnreachable=10 StartTrappers=15 StartPingers=10

安全加固措施:

  • 为Zabbix前端配置HTTPS
  • 定期备份数据库
  • 限制Zabbix Agent的访问IP
  • 修改默认管理员密码

部署完成后,建议先添加几个测试主机和监控项,验证系统正常工作后再逐步添加生产环境监控。Zabbix的强大之处在于其灵活的监控项和触发器配置,这需要根据你的具体业务需求进行定制。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询