CentOS 7 安装 Zabbix 5.0 LTS
使用 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 界面添加主机
- 进入 Configuration > Hosts,点击右上角 Create host
- 填写 Host name(与 Agent 配置的 Hostname 一致)
- 在 Groups 中选择 Linux servers
- 在 Interfaces 中添加 Agent 接口,填写被控端 IP 和端口 10050
- 在 Templates 标签页链接模板:Template OS Linux by Zabbix agent
- 点击 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/
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)