Zabbix7.0部署完整指南

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

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


目录

  1. [部署 Zabbix](#部署 Zabbix)
    • [1.1 环境准备](#1.1 环境准备)
    • [1.2 安装 Zabbix](#1.2 安装 Zabbix)
      • [安装 Zabbix 仓库](#安装 Zabbix 仓库)
      • [安装 Zabbix Server / Web / Agent](#安装 Zabbix Server / Web / Agent)
      • 创建初始数据库
      • [配置 Zabbix Server 数据库连接](#配置 Zabbix Server 数据库连接)
      • [配置 PHP 与 Nginx](#配置 PHP 与 Nginx)
      • [配置 Web 前端连接 Zabbix Server](#配置 Web 前端连接 Zabbix Server)
      • 启动服务
  2. [配置 Web 端](#配置 Web 端)

一、部署 Zabbix

1.1 环境准备

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

2. 设置主机名

bash 复制代码
hostnamectl set-hostname zabbix-server && bash

3. 配置静态 IP

bash 复制代码
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 相关包排除

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

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

ini 复制代码
excludepkgs=zabbix*

如需安装 EPEL 源:

bash 复制代码
dnf install https://mirrors.aliyun.com/epel/epel-release-latest-10.noarch.rpm -y

2. 安装 Zabbix 仓库

bash 复制代码
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
bash 复制代码
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

bash 复制代码
dnf install mariadb-server -y

2. 修改数据库配置文件

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

ini 复制代码
bind-address = 0.0.0.0

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

3. 启动数据库服务

bash 复制代码
systemctl enable mariadb --now

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

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

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

sql 复制代码
alter user 'root'@'localhost' identified by '123456';

5. 创建 Zabbix 数据库与用户

sql 复制代码
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. 导入初始架构和数据

bash 复制代码
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

bash 复制代码
mysql -uroot -p123456
sql 复制代码
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

nginx 复制代码
server {
    listen          8080;
    server_name     example.com;
    ...
}

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

1.2.6 配置 Web 前端连接 Zabbix Server

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

php 复制代码
$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 端口:

bash 复制代码
ss -lntp | grep 10051
nc -vz 127.0.0.1 10051

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

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

检查服务状态:

bash 复制代码
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

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

bash 复制代码
# 先查找中文包
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):

bash 复制代码
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

Q: Web 仪表盘提示 Zabbix server is not running,系统信息里显示 Zabbix服务器端运行中:否

A: 先确认 Zabbix Server 进程和 10051 端口正常:

bash 复制代码
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 地址和端口:

bash 复制代码
grep -nE "ZBX_SERVER|ZBX_SERVER_PORT" /etc/zabbix/web/zabbix.conf.php

应包含未被注释的配置:

php 复制代码
$ZBX_SERVER      = '127.0.0.1';
$ZBX_SERVER_PORT = '10051';

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

bash 复制代码
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: 查看日志定位问题:

bash 复制代码
journalctl -u zabbix-server -n 50 --no-pager

最后正常登录界面


参考资料

相关推荐
learndiary10 小时前
Linux 维修案例视频12则
linux·维修
wanhengidc10 小时前
云手机手游搬砖 梦境护卫队
运维·服务器·安全·web安全·智能手机
小小de风呀10 小时前
de风——【从零开始学Linu】 - 基础指令详解(二)
linux·运维·服务器
cws20040111 小时前
网络安全基本知识-2
运维·网络
Dlrb121111 小时前
C语言-Linux系统下的俄罗斯方块实现
linux·c语言·vim·终端·碰撞检测·俄罗斯方块·vt100
CDN36011 小时前
【硬核运维】YOLO模型高并发实战:用Triton动态批处理榨干GPU最后一滴性能
运维·yolo
IT大白鼠11 小时前
Linux用户配置文件详解:.bash_history、.bash_logout、.bash_profile与.bashrc
linux·运维·bash
枕星而眠11 小时前
Linux 进程:虚拟内存、Fork原理、IPC通信与面试避坑
linux·运维·c语言·后端
yeflx11 小时前
Ubuntu常用指令
linux·运维·ubuntu