跳到主要内容Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL) | 极客日志Shell / Bash
Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL)
在 Ubuntu 24.04 系统上部署 Zabbix 7.0 LTS 监控系统的完整流程。环境包含 Nginx 和 MySQL/MariaDB。步骤涵盖添加官方软件源、安装依赖、配置数据库及用户权限、修改 Zabbix Server 配置文件、设置 Nginx 站点、重启服务以及通过 Web 界面完成初始化。此外还介绍了 zabbix-get 调试工具的使用方法及常见问题解决方案,支持中文语言包配置,适合运维人员快速搭建监控环境。
古灵精怪4 浏览 Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL)
前言
Zabbix 是一款开源的企业级监控工具,支持服务器、网络设备、应用程序等多场景监控。本文基于 Zabbix 官方推荐配置,结合实际部署经验,详细讲解 Ubuntu 24.04 + Zabbix 7.0 LTS + Nginx + MySQL 的完整部署流程,包含中文语言包配置,适合快速上手。
一、前期准备
- 系统环境:Ubuntu 24.04 LTS(64 位)
- 网络要求:服务器可联网,防火墙放行 80 端口(或自定义端口)
- 权限要求:拥有服务器的 sudo 权限
二、官方配置选择(Zabbix 下载页)
- Zabbix 版本:
7.0 LTS(长期支持版,稳定性高)
- OS 分布:
Ubuntu
- OS 版本:
24.04 (Noble)
- 组件:
Server, Frontend, Agent(服务端+Web 前端+客户端)
- 数据库:
MySQL
- Web 服务器:
Nginx
三、部署步骤(全程 root 权限操作)
步骤 1:切换为 root 用户
Zabbix 安装/配置需要最高权限,先切换到 root 会话:
sudo:普通用户临时获取管理员权限的命令(需输入当前用户密码)
-s:启动 root 权限的 Shell 会话(执行后提示符从 $ 变为 #,表示已进入 root 模式)
步骤 2:安装 Zabbix 官方软件源
Zabbix 不在 Ubuntu 官方源中,需手动添加官方源:
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 下载文件到当前终端所在目录
- 该 URL 对应 Zabbix 7.0 版本适配 Ubuntu 24.04 的源安装包(
all.deb 表示适配所有硬件架构)
dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
dpkg:Ubuntu 系统中管理 .deb 格式软件包的核心命令
-i:是 --install 的缩写,代表'安装指定软件包'
- 作用:将 Zabbix 官方源的配置文件(写入
/etc/apt/sources.list.d/zabbix.list),让系统的 apt 工具能识别到 Zabbix 相关的软件包
apt:Ubuntu 系统的包管理工具
update:指令作用是'刷新系统的软件源列表缓存',让新添加的 Zabbix 源被系统识别,确保后续能找到 Zabbix 的安装包
步骤 3:安装 MySQL 数据库(Zabbix 依赖)
Zabbix 需要数据库存储监控配置、历史数据等,这里选择 MariaDB(MySQL 的开源分支,轻量且兼容 MySQL):
apt install -y mariadb-server
-y:是 --yes 的缩写,作用是'自动确认所有安装提示',无需手动输入 y 确认
systemctl:Linux 系统管理服务的核心命令
start:指令作用是'启动指定服务'(这里启动 MariaDB 数据库)
enable:指令作用是'将服务设置为系统开机时自动启动',避免服务器重启后数据库服务中断
步骤 4:安装 Zabbix 核心组件 + 中文语言包
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
apt install -y language-pack-zh-hans
language-pack-zh-hans:Ubuntu 系统的简体中文语言包,同时会自动关联 Zabbix 前端的中文翻译文件,确保安装向导中出现'Chinese (zh_CN)'选项
步骤 5:安装 Zabbix 调试工具(zabbix-get)
zabbix-get 是 Zabbix 官方的命令行调试工具,用于在 Server 端主动向 Agent 拉取监控数据(排查监控项故障必备):
apt install -y zabbix-get
- 作用:后续可通过
zabbix-get 验证 Agent 是否能正常返回数据,快速定位'监控项无数据'的问题
步骤 6:初始化 Zabbix 数据库
Zabbix 服务端需要专属数据库存储数据,需手动创建数据库、用户并导入初始数据:
-u:是 --user 的缩写,指定登录 MySQL 的用户(这里用最高权限的 root 用户)
-p:是 --password 的缩写,提示输入登录密码(新安装的 MariaDB 默认无密码,直接按回车即可进入 MySQL 交互界面)
进入 MySQL 交互界面后,执行以下 SQL 命令(逐行输入,每行结尾按回车):
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE DATABASE:MySQL 中创建数据库的指令
CHARACTER SET utf8mb4:设置数据库的字符集为 utf8mb4(避免中文/特殊字符乱码)
COLLATE utf8mb4_bin:设置字符集的排序规则为二进制排序(区分大小写,更严谨)
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_password';
CREATE USER:MySQL 中创建用户的指令
zabbix@localhost:表示'用户名是 zabbix,且仅允许从本机(localhost)访问数据库'(更安全)
IDENTIFIED BY 'your_password':设置该用户的登录密码(请替换为实际强密码,如 Zabbix@2024)
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
GRANT ALL PRIVILEGES:授予所有操作权限(包括增删改查、创建表等)
ON zabbix.*:表示'对 zabbix 数据库下的所有表(* 代表所有)'
TO 'zabbix'@'localhost':将权限授予 zabbix@localhost 用户
SET GLOBAL log_bin_trust_function_creators = 1;
- MySQL 开启二进制日志后,默认禁止创建存储函数,此命令临时允许(后续会关闭)
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 数据库)
mysql -uroot -p -e "SET GLOBAL log_bin_trust_function_creators = 0;"
QUIT;
- 将
log_bin_trust_function_creators 改回 0,恢复 MySQL 默认的安全限制
步骤 7:配置 Zabbix Server 连接数据库
Zabbix Server 需要知道数据库的密码才能连接,需修改其配置文件:
nano /etc/zabbix/zabbix_server.conf
nano:Ubuntu 自带的轻量文本编辑器(新手友好,操作简单)
/etc/zabbix/zabbix_server.conf:Zabbix Server 的主配置文件路径
在文件中找到 DBPassword 这一行(默认被 # 注释),修改为:
- 作用:告诉 Zabbix Server 连接数据库时使用的密码(需与步骤 6 中设置的 zabbix 用户密码一致)
保存并退出编辑器:按 Ctrl+O(保存文件)→ 按回车(确认文件名)→ 按 Ctrl+X(退出编辑器)
步骤 8:配置 Nginx(让 Zabbix 接管 80 端口)
默认 Nginx 会占用 80 端口显示'欢迎页',需修改配置让 Zabbix 前端接管 80 端口:
rm -f /etc/nginx/sites-enabled/default
rm:删除文件/目录的命令
-f:是 --force 的缩写,强制删除(避免提示'是否确认删除')
/etc/nginx/sites-enabled/default: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
步骤 9:重启服务(让配置/语言包生效)
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:指令作用是'将服务加入系统开机启动项',确保服务器重启后服务自动运行
步骤 10:访问 Zabbix Web UI(选择中文安装)
- 打开浏览器,输入
http://你的域名(如 http://zabbix.zhou.com)或 http://服务器 IP(如 http://10.0.0.100);
- 进入 Zabbix 安装向导,在'Default language'下拉列表中选择 'Chinese (zh_CN)'(中文语言包已生效,可直接选择);
- 点击'Next step',进入环境检查页面(所有项显示'OK'即可,若有'Warning'可忽略,不影响基础使用);
- 进入数据库连接配置页面,填写:
- 数据库类型:选择
MySQL
- 数据库主机:填写
localhost(数据库与 Server 同机)
- 数据库名:填写
zabbix
- 数据库用户:填写
zabbix
- 数据库密码:填写步骤 6 中设置的
your_password
- 进入Server 设置页面,输入自定义的 Server 名称(如'我的 Zabbix 监控系统');
- 进入安装前总结页面,检查所有信息无误后,点击'Next step';
- 完成安装,点击'Finish';
- 登录 Zabbix:默认用户名是
Admin(首字母大写),默认密码是 zabbix。
四、zabbix-get 工具的使用(调试监控项)
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]"
五、首次登录后的必做操作
- 修改默认密码:
点击右上角'Admin' → 选择'Profile' → 点击'Change password',设置强密码(避免默认密码泄露);
- 添加被监控主机:
进入'配置' → '主机' → 点击'创建主机',填写:
- 主机名称:自定义(如'Web 服务器')
- 可见名称:同主机名称
- 群组:选择'Linux servers'
- 接口:填写被监控主机的 IP(Agent 所在机器),端口填 10050
- 模板:链接'Template OS Linux by Zabbix agent'(Zabbix 内置的 Linux 监控模板);
- 配置告警规则:
进入'配置' → '动作' → 点击'创建动作',设置邮件/短信告警(当监控项触发阈值时,自动通知管理员)。
六、常见问题解决
- 安装向导中无中文选项:
确认已安装
language-pack-zh-hans 包,并重启 php8.3-fpm 服务;
- 访问 80 端口显示 Nginx 默认页:
执行
rm -f /etc/nginx/sites-enabled/default 禁用默认站点,再重启 Nginx:systemctl restart nginx;
- Zabbix Server 启动失败:
查看日志定位问题:
tail -f /var/log/zabbix/zabbix_server.log(常见原因是数据库密码错误);
- zabbix-get 提示'Timeout while connecting to server':
检查被监控主机的 Agent 是否启动:
systemctl status zabbix-agent,或检查 Server 与 Agent 之间的 10050 端口是否开放。
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online