当前位置:首页 > 系统教程 > 正文

CentOS Stream 9 部署 Zabbix 7.0 LTS 完整指南(从零搭建企业级监控系统)

作为一款企业级开源监控解决方案,Zabbix 7.0 LTS 凭借其强大的数据采集能力和丰富的可视化功能,成为了众多运维人员首选的监控工具。本文将手把手教你在 CentOS Stream 9 操作系统上完整部署 Zabbix 7.0 LTS,即便你是刚入门的小白,也能顺利完成这套专业的监控系统部署工作。

CentOS Stream 9 部署 Zabbix 7.0 LTS 完整指南(从零搭建企业级监控系统)  监控系统部署 Linux运维 第1张

一、环境准备与系统初始化

在开始安装 Zabbix Server 之前,我们需要确保 CentOS Stream 9 系统处于最佳状态。这包括更新软件包、关闭可能干扰的防火墙和 SELinux,以及安装必要的工具。

# 1. 更新系统软件包至最新dnf update -y# 2. 关闭防火墙(生产环境建议按需开放端口,此处为实验简化)systemctl stop firewalldsystemctl disable firewalld# 3. 永久关闭 SELinuxsed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config# 4. 安装常用的基础工具dnf install -y wget vim net-tools tar

修改 SELinux 配置后,建议重启系统(reboot)以确保设置生效。重启后,可以通过 getenforce 命令验证,如果返回 Disabled 则表示关闭成功-2。

二、安装 MySQL 数据库

Zabbix 7.0 LTS 支持 MySQL 和 PostgreSQL 两种数据库。本教程以广泛使用的 MySQL 8.0 为例。CentOS Stream 9 默认的模块源中包含 MySQL 8.0,我们可以直接安装-9。

# 1. 安装 MySQL 服务器dnf install -y mysql-server# 2. 启动 MySQL 并设置开机自启systemctl enable --now mysqld# 3. 检查 MySQL 运行状态systemctl status mysqld# 4. 执行安全安装脚本,设置 root 密码等mysql_secure_installation

运行 mysql_secure_installation 时,系统会引导你设置 root 密码、移除匿名用户、禁止 root 远程登录等。请按照提示操作,为后续的 Zabbix 数据库搭建打好基础。

三、为 Zabbix 配置数据库

MySQL 安装好后,我们需要创建 Zabbix 专用的数据库和用户,并授权。

# 1. 以 root 身份登录 MySQLmysql -u root -p# 2. 在 MySQL Shell 中执行以下 SQL 语句(注意替换密码 "your_password")CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;CREATE USER "zabbix"@"localhost" IDENTIFIED BY "your_password";GRANT ALL PRIVILEGES ON zabbix.* TO "zabbix"@"localhost";SET GLOBAL log_bin_trust_function_creators = 1;FLUSH PRIVILEGES;EXIT;

之所以设置 log_bin_trust_function_creators = 1,是因为 Zabbix 导入的数据中包含数据库函数,该设置允许函数创建。数据库架构导入完成后,我们会再次关闭它以确保安全-10。

四、安装 Zabbix 7.0 LTS 软件仓库

CentOS Stream 9 自带的仓库不包含 Zabbix 7.0 LTS 的软件包,因此需要手动添加官方仓库。Zabbix 官方为 Red Hat 系列(包括 CentOS Stream 9)提供了完善的 RPM 包支持-5。

# 1. 安装 Zabbix 仓库 RPM 包(适用于 RHEL 9 / CentOS Stream 9)rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm# 2. 清理缓存并生成新缓存dnf clean alldnf makecache

五、安装 Zabbix Server 与 Web 前端

接下来安装 Zabbix Server 核心、Web 前端(Nginx)、MySQL 数据库连接组件以及 Agent 2。

# 安装所有必需的组件dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2

这条命令安装了包括数据库连接驱动、用于 Nginx 的配置文件以及 SELinux 策略包在内的全套组件-9。

六、导入 Zabbix 初始数据库架构

Zabbix 官方提供了预定义的 SQL 脚本,包含了所有的表结构、视图、存储过程和初始数据。我们需要将其导入到刚才创建的 zabbix 数据库中。

# 1. 解压并导入数据库脚本(需要输入之前设置的 zabbix 用户密码)zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix# 2. 再次登录 MySQL 关闭函数创建权限mysql -u root -pSET GLOBAL log_bin_trust_function_creators = 0;EXIT;

七、配置 Zabbix Server 与 Nginx

配置主要分两部分:让 Zabbix Server 知道如何连接数据库,以及让 Nginx 能正确提供 Web 服务。

1. 修改 Zabbix Server 配置文件

vim /etc/zabbix/zabbix_server.conf# 找到并修改以下参数,去掉注释并填写正确信息DBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=your_password   # 此处填写你为 zabbix 用户设置的密码

2. 修改 Nginx 配置

vim /etc/nginx/conf.d/zabbix.conf# 取消 listen 和 server_name 的注释,并按需修改# listen 8080;  # 如果要改默认80端口,可调整这里# server_name example.com;  改为你的服务器IP或域名

如果你在 CentOS Stream 9 上同时运行着其他 Web 服务,需要注意端口冲突。Zabbix 的 Nginx 配置默认监听 80 端口-2。

八、启动服务与开机自启

# 启动所有相关服务并设置为开机自启systemctl restart zabbix-server zabbix-agent2 nginx php-fpmsystemctl enable zabbix-server zabbix-agent2 nginx php-fpm# 检查各服务状态,确保均为 active (running)systemctl status zabbix-server zabbix-agent2 nginx php-fpm

如果你的系统防火墙没有彻底关闭,需要放行 80(或你设置的端口)、10051(Zabbix Server)端口-9。

九、通过 Web 界面完成安装

打开浏览器,访问 http://你的服务器IP/http://你的服务器IP:8080(如果你修改了端口)。你将看到 Zabbix 欢迎界面。

  • 第一步:检查环境依赖,所有选项应显示 OK。
  • 第二步:配置数据库连接,输入 Database host(localhost)、Database port(0 默认)、Database name(zabbix)、User(zabbix)、Password(your_password)。
  • 第三步:设置 Zabbix Server 的名称(可自定义)和时区(例如 Asia/Shanghai)。
  • 第四步:确认配置无误后,完成安装。

安装完成后,使用默认管理员账号 Admin 和密码 zabbix 登录。登录后建议立即修改密码-8。

十、故障排查与小贴士

如果你在 Web 界面初始化时遇到“Unable to connect to database”错误,请检查:

  • MySQL 服务是否正常运行。
  • zabbix_server.conf 中的 DBPassword 是否填写正确。
  • MySQL 用户 "zabbix"@"localhost" 的密码是否正确。

至此,一套完整的 Zabbix 7.0 LTS 监控系统 已在 CentOS Stream 9 上部署完成。你可以开始添加主机,利用 Zabbix 的强大功能来监控你的服务器、网络和应用了。