Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL)
前言
Zabbix 是一款开源的企业级监控工具,支持服务器、网络设备、应用程序等多场景监控。本文基于 Zabbix 官方推荐配置,结合实际部署经验,详细讲解 的完整部署流程,包含中文语言包配置。
Ubuntu 24.04 系统安装 Zabbix 7.0 LTS 监控软件,采用 Nginx 作为 Web 服务器、MariaDB 作为数据库。步骤包括添加官方源、安装依赖、初始化数据库、配置服务端与前端、设置中文语言包及 Nginx 监听端口。完成安装后可通过 Web UI 登录管理,支持使用 zabbix-get 命令调试监控项,并包含首次登录后的密码修改、主机添加及告警规则配置指南。

Zabbix 是一款开源的企业级监控工具,支持服务器、网络设备、应用程序等多场景监控。本文基于 Zabbix 官方推荐配置,结合实际部署经验,详细讲解 的完整部署流程,包含中文语言包配置。
首先访问 Zabbix 官方下载页,选择对应配置(后续命令以此为基础):
7.0 LTS(长期支持版,稳定性高)Ubuntu24.04 (Noble)Server, Frontend, Agent(服务端+Web 前端+客户端)MySQLNginxZabbix 安装/配置需要最高权限,先切换到 root 会话:
sudo -s
sudo:普通用户临时获取管理员权限的命令(需输入当前用户密码)-s:启动 root 权限的 Shell 会话(执行后提示符从 $ 变为 #,表示已进入 root 模式)Zabbix 不在 Ubuntu 官方源中,需手动添加官方源:
# 1. 下载 Zabbix 源安装包
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
wget:Linux 命令行文件下载工具,作用是从指定 URL 下载文件到当前终端所在目录all.deb 表示适配所有硬件架构)# 2. 安装源安装包
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
dpkg:Ubuntu 系统中管理 .deb 格式软件包的核心命令-i:是 --install 的缩写,代表'安装指定软件包'/etc/apt/sources.list.d/zabbix.list),让系统的 apt 工具能识别到 Zabbix 相关的软件包# 3. 更新软件源缓存
apt update
apt:Ubuntu 系统的包管理工具update:指令作用是'刷新系统的软件源列表缓存',让新添加的 Zabbix 源被系统识别,确保后续能找到 Zabbix 的安装包Zabbix 需要数据库存储监控配置、历史数据等,这里选择 MariaDB(MySQL 的开源分支,轻量且兼容 MySQL):
# 安装 MariaDB 服务器
apt install -y mariadb-server
-y:是 --yes 的缩写,作用是'自动确认所有安装提示',无需手动输入 y 确认# 启动 MariaDB 服务
systemctl start mariadb
systemctl:Linux 系统管理服务的核心命令start:指令作用是'启动指定服务'(这里启动 MariaDB 数据库)# 设置 MariaDB 开机自启
systemctl enable mariadb
enable:指令作用是'将服务设置为系统开机时自动启动',避免服务器重启后数据库服务中断# 安装 Zabbix 核心组件
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
# 安装 Zabbix 中文语言包(关键:让安装向导/界面支持中文)
apt install -y language-pack-zh-hans
language-pack-zh-hans:Ubuntu 系统的简体中文语言包,同时会自动关联 Zabbix 前端的中文翻译文件,确保安装向导中出现'Chinese (zh_CN)'选项zabbix-get 是 Zabbix 官方的命令行调试工具,用于在 Server 端主动向 Agent 拉取监控数据(排查监控项故障必备):
apt install -y zabbix-get
zabbix-get 验证 Agent 是否能正常返回数据,快速定位'监控项无数据'的问题Zabbix 服务端需要专属数据库存储数据,需手动创建数据库、用户并导入初始数据:
# 1. 登录 MySQL 数据库(默认无密码,直接回车)
mysql -uroot -p
-u:是 --user 的缩写,指定登录 MySQL 的用户(这里用最高权限的 root 用户)-p:是 --password 的缩写,提示输入登录密码(新安装的 MariaDB 默认无密码,直接按回车即可进入 MySQL 交互界面)进入 MySQL 交互界面后,执行以下 SQL 命令(逐行输入,每行结尾按回车):
-- 创建 Zabbix 专属数据库,指定字符集为 utf8mb4(支持所有 Unicode 字符,包括 emoji)
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create database:MySQL 中创建数据库的指令character set utf8mb4:设置数据库的字符集为 utf8mb4(避免中文/特殊字符乱码)collate utf8mb4_bin:设置字符集的排序规则为二进制排序(区分大小写,更严谨)-- 创建 Zabbix 数据库专用用户(仅允许从本机访问)
create user zabbix@localhost identified by 'your_password';
create user:MySQL 中创建用户的指令zabbix@localhost:表示'用户名是 zabbix,且仅允许从本机(localhost)访问数据库'(更安全)identified by 'your_password':设置该用户的登录密码(请替换为实际强密码,如 Zabbix@2024)-- 授予 zabbix 用户对 zabbix 数据库的所有操作权限
grant all privileges on zabbix.* to zabbix@localhost;
grant all privileges:授予所有操作权限(包括增删改查、创建表等)on zabbix.*:表示'对 zabbix 数据库下的所有表(* 代表所有)'to zabbix@localhost:将权限授予 zabbix@localhost 用户-- 临时开启存储函数创建权限(Zabbix 初始化脚本需要创建存储函数)
set global log_bin_trust_function_creators = 1;
-- 退出 MySQL 交互界面
quit;
# 2. 导入 Zabbix 初始数据库脚本(输入 zabbix 用户的密码)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
zcat:解压并读取 .gz 格式的压缩文件(这里是 Zabbix 的数据库脚本)/usr/share/zabbix-sql-scripts/mysql/server.sql.gz:Zabbix 服务端的初始数据库脚本路径(包含表结构和初始数据)|:将前一个命令的输出作为后一个命令的输入--default-character-set=utf8mb4:指定连接数据库时的字符集,与创建数据库时一致-uzabbix -p:用 zabbix 用户登录 MySQL(执行后会提示输入 zabbix 用户的密码)zabbix:最后一个参数是要操作的数据库名(即之前创建的 zabbix 数据库)# 3. 关闭临时的存储函数权限(恢复 MySQL 安全设置)
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
log_bin_trust_function_creators 改回 0,恢复 MySQL 默认的安全限制Zabbix Server 需要知道数据库的密码才能连接,需修改其配置文件:
# 编辑 Zabbix Server 配置文件
nano /etc/zabbix/zabbix_server.conf
nano:Ubuntu 自带的轻量文本编辑器(新手友好,操作简单)/etc/zabbix/zabbix_server.conf:Zabbix Server 的主配置文件路径在文件中找到 DBPassword 这一行(默认被 # 注释),修改为:
DBPassword=your_password
保存并退出编辑器:按 Ctrl+O(保存文件)→ 按回车(确认文件名)→ 按 Ctrl+X(退出编辑器)
默认 Nginx 会占用 80 端口显示'欢迎页',需修改配置让 Zabbix 前端接管 80 端口:
# 1. 禁用 Nginx 默认站点(避免 80 端口显示默认页)
rm -f /etc/nginx/sites-enabled/default
rm:删除文件/目录的命令-f:是 --force 的缩写,强制删除(避免提示'是否确认删除')/etc/nginx/sites-enabled/default:Nginx 默认站点的软链接,删除后默认站点失效# 2. 编辑 Zabbix 的 Nginx 配置文件
nano /etc/zabbix/nginx.conf
修改以下配置项(去掉 # 注释,并填写实际信息):
listen 80;
server_name zabbix.zhou.com;
root /usr/share/zabbix;
listen 80:设置 Nginx 监听 80 端口(HTTP 协议默认端口,访问时无需加端口)server_name:设置站点的域名或服务器 IP(如你的服务器 IP 是 10.0.0.100,可填 10.0.0.100)root:设置站点的根目录(Zabbix 前端文件的存放路径,默认已正确配置)保存并退出:按 Ctrl+O → 回车 → 按 Ctrl+X
# 重启所有相关服务(加载新配置和中文语言包)
systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
restart:指令作用是'重启指定服务'(让修改后的配置、中文语言包生效)zabbix-server:Zabbix 核心服务zabbix-agent:Zabbix 客户端服务(监控当前服务器)nginx:Web 服务器(提供 Zabbix 前端访问)php8.3-fpm:PHP 进程管理器(Zabbix 前端基于 PHP 开发,依赖此服务加载中文语言包)# 设置服务开机自启
systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm
enable:指令作用是'将服务加入系统开机启动项',确保服务器重启后服务自动运行http://你的域名(如 http://zabbix.zhou.com)或 http://服务器 IP(如 http://10.0.0.100);MySQLlocalhost(数据库与 Server 同机)zabbixzabbixyour_passwordAdmin(首字母大写),默认密码是 zabbix。zabbix-get 用于在 Server 端主动向 Agent 拉取监控数据,是排查'监控项无数据'的核心工具:
zabbix-get -s 被监控主机 IP -p Agent 端口 -k "监控项键值"
-s:指定被监控主机的 IP(Agent 所在机器的 IP)-p:指定 Agent 的监听端口(默认是 10050,无需修改)-k:指定要获取的监控项键值(Zabbix 内置的监控项标识)zabbix-get -s 192.168.1.10 -p 10050 -k "system.cpu.load[all,avg1]"
0.42(表示 CPU 1 分钟平均负载为 0.42)zabbix-get -s 192.168.1.10 -p 10050 -k "vm.memory.size[total]"
16777216000(单位是 B,即 16GB)zabbix-get -s 192.168.1.10 -p 10050 -k "vfs.fs.size[/,pused]"
23(表示根目录磁盘使用率为 23%)language-pack-zh-hans 包,并重启 php8.3-fpm 服务;rm -f /etc/nginx/sites-enabled/default 禁用默认站点,再重启 Nginx:systemctl restart nginx;tail -f /var/log/zabbix/zabbix_server.log(常见原因是数据库密码错误);systemctl status zabbix-agent,或检查 Server 与 Agent 之间的 10050 端口是否开放。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online