Zabbix 7.0 部署完整指南(基于 RHEL 10 / CentOS 10)

环境说明:操作系统 RHEL 10 / CentOS Stream 10,数据库 MariaDB,Web 服务器 Nginx + PHP-FPM
Zabbix 版本:7.0 LTS


目录

  1. 部署 Zabbix
  2. 配置 Web 端

一、部署 Zabbix

1.1 环境准备

1. 克隆虚拟机(VMware / VirtualBox 克隆已有基础系统)

2. 设置主机名

hostnamectl set-hostname zabbix-server && bash

3. 配置静态 IP

nmcli c m ens160 ipv4.method manual ipv4.addr 192.168.194.11/24 ipv4.gateway 192.168.194.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli c up ens160

请根据实际网络环境修改 IP、网关、DNS。


1.2 安装 Zabbix

参考官网:https://www.zabbix.com/cn/download?zabbix=7.0&os_distribution=red_hat_enterprise_linux&os_version=10&components=server_frontend_agent&db=mysql&ws=nginx

1.2.1 安装 Zabbix 仓库

1. 如果有 EPEL 源,需要将 EPEL 源中的 Zabbix 相关包排除

# 安装epel 源
dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-10.noarch.rpm

编辑 /etc/yum.repos.d/epel.repo,在 [epel] 段添加:

excludepkgs=zabbix*

在这里插入图片描述

如需安装 EPEL 源:

dnf install https://mirrors.aliyun.com/epel/epel-release-latest-10.noarch.rpm -y

2. 安装 Zabbix 仓库

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm
dnf clean all
1.2.2 安装 Zabbix Server、Web 前端、Agent
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf \
            zabbix-sql-scripts zabbix-selinux-policy zabbix-agent -y
1.2.3 创建初始数据库

1. 安装 MariaDB

dnf install mariadb-server -y

2. 修改数据库配置文件

编辑 /etc/my.cnf.d/mariadb-server.cnf,修改或添加:

bind-address = 0.0.0.0

设置为 0.0.0.0 允许远程连接(按需配置)。

3. 启动数据库服务

systemctl enable mariadb --now

4. 登录数据库并设置 root 密码

mysql -uroot -p
# MariaDB 默认无密码,直接回车即可登录

登录后修改 root 密码(可选但推荐):

alter user 'root'@'localhost' identified by '123456';

5. 创建 Zabbix 数据库与用户

create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

记下这里的 password,后续配置 Zabbix Server 时会用到。

6. 导入初始架构和数据

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
  mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
# 输入密码: password

导入过程可能需要几十秒到几分钟,请耐心等待。

7. 禁用 log_bin_trust_function_creators

mysql -uroot -p123456
set global log_bin_trust_function_creators = 0;
quit;
1.2.4 为 Zabbix Server 配置数据库

编辑 /etc/zabbix/zabbix_server.conf,修改以下参数:

DBHost=localhost
DBPassword=password

DBPassword 的值与前面创建数据库用户时设置的密码一致。

1.2.5 为 Zabbix 前端配置 PHP

编辑 /etc/nginx/conf.d/zabbix.conf,取消注释并修改 listenserver_name

server {
    listen          8080;
    server_name     example.com;
    ...
}

端口可根据需要修改,这里使用 8080 避免与默认 80 端口冲突。

1.2.6 配置 Web 前端连接 Zabbix Server

编辑 /etc/zabbix/web/zabbix.conf.php,明确指定 Web 前端连接 Zabbix Server 的地址和端口:

$ZBX_SERVER      = '127.0.0.1';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zabbix-server';

如果 Zabbix Web 前端和 Zabbix Server 安装在同一台服务器,建议使用 127.0.0.1,避免 localhost 受 DNS 或 IPv6 解析影响导致前端提示无法连接 localhost:10051

确认 Zabbix Server 监听 10051 端口:

ss -lntp | grep 10051
nc -vz 127.0.0.1 10051

如果系统启用了 SELinux,并且 getenforce 输出为 Enforcing,需要允许 Nginx/PHP-FPM 访问网络端口:

getenforce
setsebool -P httpd_can_network_connect on
1.2.7 启动 Zabbix Server 和 Agent 进程
systemctl enable zabbix-server zabbix-agent nginx php-fpm --now

检查服务状态:

systemctl status zabbix-server zabbix-agent nginx php-fpm

二、配置 Web 端

1. 访问 Web 界面

打开浏览器访问:

http://192.168.194.11:8080

将 IP 替换为你的 Zabbix 服务器实际 IP。

2. 初始化安装向导

根据页面提示逐步完成配置:

  • 检查前置条件(PHP 扩展、数据库连接等)→ 全部通过后进入下一步
  • 数据库连接配置 → 填写之前创建的数据库 zabbix 及用户名密码
  • Zabbix 服务器信息 → 保持默认即可
  • 确认配置摘要 → 点击 Next step 完成安装

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 登录 & 中文配置

默认登录凭据:

项目
用户名 Admin
密码 zabbix

在这里插入图片描述

登录进去界面如下:

在这里插入图片描述

设置中文界面:

  1. 点击右上角用户头像 → User SettingsProfile
  2. Language 下拉框选择 Chinese (zh_CN)
  3. 点击 Update

在这里插入图片描述

在这里插入图片描述

⚠️ 如果下拉框无法选择中文,说明系统中缺少中文语言包。在服务器上安装:

# 先查找中文包
find /mnt -name "*zh_CN*"

# 安装语言包
dnf install langpacks-zh_CN -y

安装完成后刷新浏览器页面,再次进入 User Settings,即可选择 Chinese (zh_CN),点击 Update 后界面变为中文。

在这里插入图片描述

在这里插入图片描述


完成

至此,Zabbix 7.0 服务已全部部署完成。你可以开始配置主机监控、创建告警规则、添加自定义仪表盘等操作。


常见问题

Q: 导入 SQL 时报错 ERROR 1115 (42000)
A: 确认数据库字符集为 utf8mb4,且 log_bin_trust_function_creators 已设置为 1

Q: Web 页面无法访问?
A: 检查 Nginx 和 PHP-FPM 是否正常运行,以及防火墙是否放行了对应端口(如 8080):

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

Q: Web 仪表盘提示 Zabbix server is not running,系统信息里显示 Zabbix服务器端运行中:否
A: 先确认 Zabbix Server 进程和 10051 端口正常:

systemctl status zabbix-server --no-pager
ss -lntp | grep 10051
nc -vz 127.0.0.1 10051

如果端口可以连通,但 Web 前端仍显示未运行,检查 /etc/zabbix/web/zabbix.conf.php 是否配置了正确的 Server 地址和端口:

grep -nE "ZBX_SERVER|ZBX_SERVER_PORT" /etc/zabbix/web/zabbix.conf.php

应包含未被注释的配置:

$ZBX_SERVER      = '127.0.0.1';
$ZBX_SERVER_PORT = '10051';

如果 SELinux 为 Enforcing,还需要开启 Web/PHP-FPM 网络访问权限:

getenforce
setsebool -P httpd_can_network_connect on
systemctl restart php-fpm nginx

黄色告警 Zabbix server has been restarted (uptime < 10m) 表示服务刚重启,通常等待 10 分钟左右会自动恢复。

Q: Zabbix Server 无法启动?
A: 查看日志定位问题:

journalctl -u zabbix-server -n 50 --no-pager

最后正常登录界面

在这里插入图片描述


参考资料

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐