使用 MySQL 数据库完整部署教程

适用版本: Zabbix 5.0 LTS + MySQL 5.7 + CentOS 7.x

⚠️  Zabbix 6.0 的 server/web 包不支持 CentOS 7,请使用 5.0 LTS 版本

项目

说明

操作系统

CentOS 7.x (64位)

Zabbix 版本

5.0 LTS(长期支持版,官方验证支持 CentOS 7)

数据库

MySQL 5.7

Web 服务器

Apache 2.4

PHP 版本

PHP 7.2(通过 SCL 安装,系统自带版本过低)

最低配置

2核 CPU / 2GB RAM / 20GB 磁盘

�� 为什么不能用 Zabbix 6.0?

Zabbix 6.0 官方仓库对 CentOS 7 的支持不完整:zabbix-server-mysql、zabbix-web-mysql、zabbix-apache-conf 等核心包在 rhel/7 路径下缺失,只有 agent2 相关包。这是官方有意为之——Zabbix 6.0 主要面向 RHEL 8/9,CentOS 7 已于 2024 年 EOL。Zabbix 5.0 LTS 才是 CentOS 7 的正确选择,官方完整支持,且支持周期至 2030 年。

第一章:准备工作

1.1 系统要求

资源

最低要求

备注

CPU

2 核心或以上

推荐 4 核心

内存

2 GB

推荐 4 GB 以上

磁盘空间

20 GB

推荐 50 GB(存储监控数据)

操作系统

CentOS 7.x 64位

建议最新的 7.9

网络

可访问互联网

用于下载软件包

1.2 修复 CentOS 7 基础仓库(重要!)

CentOS 7 官方镜像站已于 2024 年停止服务,必须先将仓库地址切换至国内可用镜像,否则后续安装会报错。

# Shell Commands

# 第一步:备份原有仓库配置

mkdir -p /etc/yum.repos.d/backup

cp /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/

# 第二步:替换为阿里云镜像(解决 mirrorlist.centos.org 无法访问的问题)

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*.repo

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*.repo

# 第三步:验证基础仓库是否正常

yum clean all && yum makecache

# 看到 base、extras、updates 均正常加载即可

⚠️ 注意: CentOS 7 SCL 仓库(centos-sclo-rh)也已失效,第三章安装 Zabbix 时会通过正确方式处理,无需单独修复。

1.3 关闭防火墙与 SELinux

# Shell Commands

# 停止并禁用 firewalld(测试环境)

systemctl stop firewalld

systemctl disable firewalld

# 生产环境推荐:只开放必要端口

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --permanent --add-port=10050/tcp

firewall-cmd --permanent --add-port=10051/tcp

firewall-cmd --reload

# 临时关闭 SELinux

setenforce 0

# 永久关闭 SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 验证 SELinux 状态(显示 Permissive 或 Disabled 即可)

getenforce

1.4 同步系统时间

# Shell Commands

yum install -y chrony

systemctl start chronyd

systemctl enable chronyd

chronyc sources

第二章:安装 MySQL 5.7

2.1 安装 MySQL 5.7

# Shell Commands

# 下载 MySQL 官方 Yum 仓库

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# 安装仓库

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

# 导入 GPG 密钥

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装 MySQL Server

yum install -y mysql-community-server

# 启动 MySQL 并设置开机自启

systemctl start mysqld

systemctl enable mysqld

systemctl status mysqld

2.2 获取临时密码并初始化

# Shell Commands

# 查看 MySQL 初始临时密码

grep 'temporary password' /var/log/mysqld.log

# 运行安全初始化(按提示设置新密码、删除匿名用户等)

mysql_secure_installation

�� 提示: MySQL 5.7 密码需包含大小写字母、数字和特殊字符,建议设置如:Zabbix@2024

2.3 创建 Zabbix 数据库和用户

# Shell Commands

# 登录 MySQL

mysql -u root -p

# 以下在 MySQL 命令行中执行:

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

# 注意:Zabbix 5.0 使用 utf8,而非 6.0 的 utf8mb4

CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@2024';

GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

FLUSH PRIVILEGES;

EXIT;

⚠️ 注意: Zabbix 5.0 数据库字符集请使用 utf8(而非 utf8mb4),否则导入 SQL 时可能报错。

2.4 MySQL 性能调优(可选)

# Shell Commands

vi /etc/my.cnf

# 在 [mysqld] 段添加:

[mysqld]

innodb_buffer_pool_size = 512M

innodb_log_file_size = 256M

innodb_flush_log_at_trx_commit = 2

innodb_file_per_table = 1

max_connections = 300

systemctl restart mysqld

第三章:安装 Zabbix 5.0 LTS

3.1 添加 Zabbix 5.0 官方仓库

Zabbix 5.0 LTS 是在 CentOS 7 上经过官方完整验证的版本,仓库地址如下:

# Shell Commands

# 清理旧的 Zabbix 仓库(如果之前安装过其他版本)

rpm -e zabbix-release 2>/dev/null

rm -f /etc/yum.repos.d/zabbix*.repo

# 安装 Zabbix 5.0 官方仓库

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 验证仓库文件已创建

cat /etc/yum.repos.d/zabbix.repo

3.2 启用 zabbix-frontend 仓库

Zabbix 5.0 的 Web 前端包在单独的 frontend 仓库中,默认未启用,必须手动开启:

# Shell Commands

# 查看当前仓库状态(zabbix-frontend 默认 enabled=0)

cat /etc/yum.repos.d/zabbix.repo | grep -A3 'frontend'

# 启用 zabbix-frontend 仓库

yum-config-manager --enable zabbix-frontend

# 或者直接用 sed 修改

# sed -i '/\[zabbix-frontend\]/,/^\[/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/zabbix.repo

# 验证是否启用成功

yum repolist | grep zabbix

⚠️ 注意: 这一步是 Zabbix 5.0 安装的关键!如果不启用 zabbix-frontend 仓库,zabbix-web-mysql-scl 包将找不到。

3.3 安装 SCL(Software Collections)

Zabbix 5.0 前端依赖 PHP 7.2,CentOS 7 系统自带的 PHP 5.4 版本过低,需要通过 SCL 安装高版本 PHP:

# Shell Commands

# 安装 SCL(Software Collections)支持

yum install -y centos-release-scl

# 如果 centos-release-scl 因 CentOS 7 EOL 无法安装,使用以下方式:

yum install -y scl-utils

# 手动添加 SCL 阿里云镜像仓库

cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo << 'EOF'

[centos-sclo-rh]

name=CentOS-7 - SCLo rh

baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/

gpgcheck=0

enabled=1

EOF

# 更新缓存

yum clean all && yum makecache

�� 提示: 阿里云镜像同步了 SCL 仓库,使用以上配置可绕过 centos-sclo-rh mirrorlist 失效的问题。

3.4 安装 Zabbix Server、Agent 和 Web 前端

Zabbix 5.0 在 CentOS 7 上使用 SCL 版本的 Web 前端包(包名带 -scl 后缀):

# Shell Commands

# 安装 Zabbix Server(MySQL 版)

yum install -y zabbix-server-mysql zabbix-agent

# 安装 Web 前端(SCL 版本,依赖 PHP 7.2)

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

# 安装实用工具(可选)

yum install -y zabbix-get zabbix-sender

# 验证安装结果

rpm -qa | grep zabbix

�� Zabbix 5.0 vs 6.0 包名对比

Zabbix 6.0(CentOS 8/9):zabbix-web-mysql + zabbix-apache-conf

Zabbix 5.0(CentOS 7):zabbix-web-mysql-scl + zabbix-apache-conf-scl

CentOS 7 必须使用带 -scl 后缀的包!这是与 Zabbix 6.0 安装的最大区别。

第四章:导入 Zabbix 数据库结构

# Shell Commands

# 查找 SQL 初始化文件

ls /usr/share/doc/zabbix-server-mysql*/

# 解压并导入(需要几分钟,请耐心等待)

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix

# 输入 zabbix 数据库用户密码后等待完成

# 验证导入是否成功(应显示 100+ 张表)

mysql -u zabbix -p zabbix -e 'SHOW TABLES;' | wc -l

第五章:配置 Zabbix Server

5.1 修改数据库连接配置

# Shell Commands

# 编辑 Zabbix Server 配置文件

vi /etc/zabbix/zabbix_server.conf

# 找到并修改以下配置项:

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=Zabbix@2024

DBPort=3306

�� 提示: 可用 grep -n 'DBPassword' /etc/zabbix/zabbix_server.conf 快速定位行号。

5.2 可选性能配置

# Shell Commands

# 在 /etc/zabbix/zabbix_server.conf 中添加或修改:

StartPollers=10

HistoryCacheSize=64M

TrendCacheSize=64M

LogFileSize=100

第六章:配置 PHP 时区

Zabbix 5.0 使用 SCL 的 PHP 7.2,其配置文件路径与系统 PHP 不同:

# Shell Commands

# SCL PHP 7.2 的 Zabbix 配置文件路径

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

# 找到 date.timezone 行,修改为:

php_value[date.timezone] = Asia/Shanghai

# 用 sed 一键修改

sed -i 's/; php_value\[date.timezone\].*/php_value[date.timezone] = Asia\/Shanghai/' \

  /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

# 验证修改结果

grep 'date.timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

⚠️ 注意: 注意!Zabbix 5.0 的 PHP 配置路径是 /etc/opt/rh/rh-php72/,而非系统的 /etc/php.ini,请勿修改错误路径。

第七章:启动所有服务

# Shell Commands

# 启动 PHP-FPM 7.2(SCL 版本)

systemctl start rh-php72-php-fpm

systemctl enable rh-php72-php-fpm

# 启动 Apache

systemctl start httpd

systemctl enable httpd

# 启动 Zabbix Server

systemctl start zabbix-server

systemctl enable zabbix-server

# 启动 Zabbix Agent(监控本机)

systemctl start zabbix-agent

systemctl enable zabbix-agent

# 检查所有服务状态

systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm

# 确认 Zabbix Server 端口正常监听

ss -tlnp | grep 10051

# 查看启动日志确认无错误

tail -20 /var/log/zabbix/zabbix_server.log

�� 提示: 如果 zabbix-server 启动失败,首先检查日志:tail -50 /var/log/zabbix/zabbix_server.log,最常见原因是数据库密码填写错误。

第八章:Web 界面初始化配置

8.1 访问安装向导

http://<服务器IP>/zabbix

8.2 安装向导步骤

步骤

页面

操作

步骤 1

欢迎页面

点击 Next step

步骤 2

检查先决条件

所有项目必须显示 OK(绿色)

步骤 3

配置数据库连接

填写数据库信息(见下表)

步骤 4

Zabbix Server 设置

确认 Host/Port 正确

步骤 5

安装前摘要

确认所有信息无误

步骤 6

完成安装

点击 Finish

8.3 数据库连接参数

配置项

填写值

Database type

MySQL

Database host

localhost

Database port

3306

Database name

zabbix

User

zabbix

Password

Zabbix@2024(您设置的密码)

8.4 默认登录信息

项目

用户名

Admin

密码

zabbix

⚠️ 注意: 登录后立即修改 Admin 默认密码!进入 Administration > Users > Admin,修改密码。

第九章:添加监控主机

9.1 被控端安装 Zabbix Agent

# Shell Commands

# 在被监控的 CentOS 7 主机上执行:

# 添加 Zabbix 5.0 仓库

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 安装 Agent

yum install -y zabbix-agent

# 编辑配置文件

vi /etc/zabbix/zabbix_agentd.conf

# 修改以下三项:

Server=<Zabbix Server IP>

ServerActive=<Zabbix Server IP>

Hostname=<本机主机名,需与 Web 界面配置一致>

# 启动并设置开机自启

systemctl start zabbix-agent

systemctl enable zabbix-agent

9.2 在 Web 界面添加主机

  1. 进入 Configuration > Hosts,点击右上角 Create host
  2. 填写 Host name(与 Agent 配置的 Hostname 一致)
  3. 在 Groups 中选择 Linux servers
  4. 在 Interfaces 中添加 Agent 接口,填写被控端 IP 和端口 10050
  5. 在 Templates 标签页链接模板:Template OS Linux by Zabbix agent
  6. 点击 Add 保存,约 1 分钟后主机状态变绿表示连接正常

第十章:常见问题处理

10.1 zabbix-web-mysql-scl 包找不到

# Shell Commands

# 原因:zabbix-frontend 仓库未启用

# 解决:

yum-config-manager --enable zabbix-frontend

yum clean all && yum makecache

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

10.2 SCL 仓库无法访问

# Shell Commands

# 原因:centos-sclo-rh 官方地址失效

# 解决:手动添加阿里云 SCL 镜像

cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo << 'EOF'

[centos-sclo-rh]

name=CentOS-7 - SCLo rh

baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/

gpgcheck=0

enabled=1

EOF

yum clean all && yum makecache

10.3 Zabbix Server 启动失败

# Shell Commands

# 查看详细错误

tail -50 /var/log/zabbix/zabbix_server.log

# 常见原因:数据库连接失败

mysql -u zabbix -p zabbix -e 'SELECT 1;'

# 检查配置文件权限

chown zabbix:zabbix /etc/zabbix/zabbix_server.conf

chmod 640 /etc/zabbix/zabbix_server.conf

10.4 Web 先决条件检查不通过

# Shell Commands

# 如果 PHP 版本显示不对,检查 PHP-FPM 是否启动

systemctl status rh-php72-php-fpm

# 如果时区报错,检查配置

grep 'date.timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

# 重启 PHP-FPM 和 Apache

systemctl restart rh-php72-php-fpm httpd

10.5 Agent 无法连接 Server

# Shell Commands

# 在 Server 端测试连通性

zabbix_get -s <Agent IP> -k system.uptime

# 检查 Agent 日志

tail -30 /var/log/zabbix/zabbix_agentd.log

# 检查防火墙

firewall-cmd --list-ports

附录:快速参考

重要文件路径

用途

路径

Zabbix Server 配置

/etc/zabbix/zabbix_server.conf

Zabbix Agent 配置

/etc/zabbix/zabbix_agentd.conf

PHP-FPM 配置(时区)

/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

Apache 配置

/etc/httpd/conf.d/zabbix.conf

Zabbix Server 日志

/var/log/zabbix/zabbix_server.log

Zabbix Agent 日志

/var/log/zabbix/zabbix_agentd.log

MySQL 配置

/etc/my.cnf

服务管理命令

操作

命令

启动/停止 Zabbix Server

systemctl start/stop zabbix-server

启动/停止 PHP-FPM 7.2

systemctl start/stop rh-php72-php-fpm

启动/停止 Apache

systemctl start/stop httpd

启动/停止 MySQL

systemctl start/stop mysqld

重启所有 Zabbix 服务

systemctl restart zabbix-server zabbix-agent rh-php72-php-fpm httpd

查看 Server 状态

systemctl status zabbix-server

Zabbix 5.0 vs 6.0 安装关键差异

差异项

Zabbix 5.0 (CentOS 7)

Zabbix 6.0 (CentOS 8/9)

仓库 RPM

zabbix-release-5.0-1.el7.noarch.rpm

zabbix-release-6.0-4.el7.noarch.rpm(server 包缺失)

前端仓库

需手动启用 zabbix-frontend

无效(CentOS 7 不支持)

Web 包名

zabbix-web-mysql-scl

zabbix-web-mysql(CentOS 7 不可用)

Apache 配置包

zabbix-apache-conf-scl

zabbix-apache-conf(CentOS 7 不可用)

PHP 版本

PHP 7.2(通过 SCL)

PHP 7.4+(CentOS 7 不支持)

PHP 配置路径

/etc/opt/rh/rh-php72/...

/etc/opt/rh/rh-php74/...

数据库字符集

utf8

utf8mb4

端口说明

端口

用途

10050

Zabbix Agent(被动模式)

10051

Zabbix Server(主动模式接收)

80

Zabbix Web 界面(HTTP)

3306

MySQL 数据库

—— 文档结束 ——

官方文档:https://www.zabbix.com/documentation/5.0/

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐