跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL)

Ubuntu 24.04 系统安装 Zabbix 7.0 LTS 监控软件,采用 Nginx 作为 Web 服务器、MariaDB 作为数据库。步骤包括添加官方源、安装依赖、初始化数据库、配置服务端与前端、设置中文语言包及 Nginx 监听端口。完成安装后可通过 Web UI 登录管理,支持使用 zabbix-get 命令调试监控项,并包含首次登录后的密码修改、主机添加及告警规则配置指南。

赛博朋克发布于 2026/3/15更新于 2026/6/228 浏览
Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL)

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 官方下载页,选择对应配置(后续命令以此为基础):

  1. Zabbix 版本:7.0 LTS(长期支持版,稳定性高)
  2. OS 分布:Ubuntu
  3. OS 版本:24.04 (Noble)
  4. 组件:Server, Frontend, Agent(服务端+Web 前端+客户端)
  5. 数据库:MySQL
  6. Web 服务器:Nginx

三、部署步骤(全程 root 权限操作)

步骤 1:切换为 root 用户

Zabbix 安装/配置需要最高权限,先切换到 root 会话:

sudo -s
  • sudo:普通用户临时获取管理员权限的命令(需输入当前用户密码)
  • -s:启动 root 权限的 Shell 会话(执行后提示符从 $ 变为 #,表示已进入 root 模式)
步骤 2:安装 Zabbix 官方软件源

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 下载文件到当前终端所在目录
  • 该 URL 对应 Zabbix 7.0 版本适配 Ubuntu 24.04 的源安装包(all.deb 表示适配所有硬件架构)
# 2. 安装源安装包
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 相关的软件包
  • # 3. 更新软件源缓存
    apt update
    
    • apt:Ubuntu 系统的包管理工具
    • update:指令作用是'刷新系统的软件源列表缓存',让新添加的 Zabbix 源被系统识别,确保后续能找到 Zabbix 的安装包
    步骤 3:安装 MySQL 数据库(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:指令作用是'将服务设置为系统开机时自动启动',避免服务器重启后数据库服务中断
    步骤 4:安装 Zabbix 核心组件 + 中文语言包
    # 安装 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)'选项
    步骤 5:安装 Zabbix 调试工具(zabbix-get)

    zabbix-get 是 Zabbix 官方的命令行调试工具,用于在 Server 端主动向 Agent 拉取监控数据(排查监控项故障必备):

    apt install -y zabbix-get
    
    • 作用:后续可通过 zabbix-get 验证 Agent 是否能正常返回数据,快速定位'监控项无数据'的问题
    步骤 6:初始化 Zabbix 数据库

    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 开启二进制日志后,默认禁止创建存储函数,此命令临时允许(后续会关闭)
    -- 退出 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 默认的安全限制
    步骤 7:配置 Zabbix Server 连接数据库

    Zabbix Server 需要知道数据库的密码才能连接,需修改其配置文件:

    # 编辑 Zabbix Server 配置文件
    nano /etc/zabbix/zabbix_server.conf
    
    • nano:Ubuntu 自带的轻量文本编辑器(新手友好,操作简单)
    • /etc/zabbix/zabbix_server.conf:Zabbix Server 的主配置文件路径

    在文件中找到 DBPassword 这一行(默认被 # 注释),修改为:

    DBPassword=your_password
    
    • 作用:告诉 Zabbix Server 连接数据库时使用的密码(需与步骤 6 中设置的 zabbix 用户密码一致)

    保存并退出编辑器:按 Ctrl+O(保存文件)→ 按回车(确认文件名)→ 按 Ctrl+X(退出编辑器)

    步骤 8:配置 Nginx(让 Zabbix 接管 80 端口)

    默认 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

    步骤 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(选择中文安装)
    1. 打开浏览器,输入 http://你的域名(如 http://zabbix.zhou.com)或 http://服务器 IP(如 http://10.0.0.100);
    2. 进入 Zabbix 安装向导,在'Default language'下拉列表中选择 'Chinese (zh_CN)'(中文语言包已生效,可直接选择);
    3. 点击'Next step',进入环境检查页面(所有项显示'OK'即可,若有'Warning'可忽略,不影响基础使用);
    4. 进入数据库连接配置页面,填写:
      • 数据库类型:选择 MySQL
      • 数据库主机:填写 localhost(数据库与 Server 同机)
      • 数据库名:填写 zabbix
      • 数据库用户:填写 zabbix
      • 数据库密码:填写步骤 6 中设置的 your_password
    5. 进入Server 设置页面,输入自定义的 Server 名称(如'我的 Zabbix 监控系统');
    6. 进入安装前总结页面,检查所有信息无误后,点击'Next step';
    7. 完成安装,点击'Finish';
    8. 登录 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 内置的监控项标识)
    常用示例
    1. 获取被监控主机的 1 分钟 CPU 负载:
    zabbix-get -s 192.168.1.10 -p 10050 -k "system.cpu.load[all,avg1]"
    
    • 返回示例:0.42(表示 CPU 1 分钟平均负载为 0.42)
    1. 获取被监控主机的内存总大小:
    zabbix-get -s 192.168.1.10 -p 10050 -k "vm.memory.size[total]"
    
    • 返回示例:16777216000(单位是 B,即 16GB)
    1. 获取被监控主机的根目录磁盘使用率:
    zabbix-get -s 192.168.1.10 -p 10050 -k "vfs.fs.size[/,pused]"
    
    • 返回示例:23(表示根目录磁盘使用率为 23%)

    五、首次登录后的必做操作

    1. 修改默认密码: 点击右上角'Admin' → 选择'Profile' → 点击'Change password',设置强密码(避免默认密码泄露);
    2. 添加被监控主机: 进入'配置' → '主机' → 点击'创建主机',填写:
      • 主机名称:自定义(如'Web 服务器')
      • 可见名称:同主机名称
      • 群组:选择'Linux servers'
      • 接口:填写被监控主机的 IP(Agent 所在机器),端口填 10050
      • 模板:链接'Template OS Linux by Zabbix agent'(Zabbix 内置的 Linux 监控模板);
    3. 配置告警规则: 进入'配置' → '动作' → 点击'创建动作',设置邮件/短信告警(当监控项触发阈值时,自动通知管理员)。

    六、常见问题解决

    1. 安装向导中无中文选项: 确认已安装 language-pack-zh-hans 包,并重启 php8.3-fpm 服务;
    2. 访问 80 端口显示 Nginx 默认页: 执行 rm -f /etc/nginx/sites-enabled/default 禁用默认站点,再重启 Nginx:systemctl restart nginx;
    3. Zabbix Server 启动失败: 查看日志定位问题:tail -f /var/log/zabbix/zabbix_server.log(常见原因是数据库密码错误);
    4. zabbix-get 提示'Timeout while connecting to server': 检查被监控主机的 Agent 是否启动:systemctl status zabbix-agent,或检查 Server 与 Agent 之间的 10050 端口是否开放。

    目录

    1. Ubuntu 24.04 部署 Zabbix 7.0 LTS 监控系统(Nginx+MySQL)
    2. 前言
    3. 一、前期准备
    4. 二、官方配置选择(Zabbix 下载页)
    5. 三、部署步骤(全程 root 权限操作)
    6. 步骤 1:切换为 root 用户
    7. 步骤 2:安装 Zabbix 官方软件源
    8. 1. 下载 Zabbix 源安装包
    9. 2. 安装源安装包
    10. 3. 更新软件源缓存
    11. 步骤 3:安装 MySQL 数据库(Zabbix 依赖)
    12. 安装 MariaDB 服务器
    13. 启动 MariaDB 服务
    14. 设置 MariaDB 开机自启
    15. 步骤 4:安装 Zabbix 核心组件 + 中文语言包
    16. 安装 Zabbix 核心组件
    17. 安装 Zabbix 中文语言包(关键:让安装向导/界面支持中文)
    18. 步骤 5:安装 Zabbix 调试工具(zabbix-get)
    19. 步骤 6:初始化 Zabbix 数据库
    20. 1. 登录 MySQL 数据库(默认无密码,直接回车)
    21. 2. 导入 Zabbix 初始数据库脚本(输入 zabbix 用户的密码)
    22. 3. 关闭临时的存储函数权限(恢复 MySQL 安全设置)
    23. 步骤 7:配置 Zabbix Server 连接数据库
    24. 编辑 Zabbix Server 配置文件
    25. 步骤 8:配置 Nginx(让 Zabbix 接管 80 端口)
    26. 1. 禁用 Nginx 默认站点(避免 80 端口显示默认页)
    27. 2. 编辑 Zabbix 的 Nginx 配置文件
    28. 步骤 9:重启服务(让配置/语言包生效)
    29. 重启所有相关服务(加载新配置和中文语言包)
    30. 设置服务开机自启
    31. 步骤 10:访问 Zabbix Web UI(选择中文安装)
    32. 四、zabbix-get 工具的使用(调试监控项)
    33. 语法
    34. 常用示例
    35. 五、首次登录后的必做操作
    36. 六、常见问题解决
    • 💰 8折买阿里云服务器限时8折了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 🤖 一键搭建Deepseek满血版了解详情
    • 一键打造专属AI 智能体了解详情
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • VSCode 中 GitHub Copilot 的多模型架构与 Agent 调度机制
    • HTML5 结合 AI 实现智能场景渲染
    • Spec-Kit 实战指南:从规范到代码的全流程自动化落地
    • PyCharm 和 Anaconda 的安装与配置指南
    • DeepSeek 各版本详解与优缺点对比
    • Python+Django 微信小程序个人运动健康饮食指导管理平台设计与实现
    • SchoolCMS 智慧校园管理平台功能与部署指南
    • 常见排序算法原理与实现详解
    • DeepSeek-R1-Distill-Llama-8B 模型 Ollama 部署及 HTTP API 鉴权配置
    • AI 应用开发工程师岗位认知与实战学习路线
    • MATLAB Compiler SDK 中的 mwArray 核心类使用详解
    • Sublime Text 配置 Verilog 开发环境:语法高亮与代码补全
    • Formality 原语(Primitive)概念解析
    • PAT 1041 考试座位号 Python 解法
    • Foxglove 机器人开发环境搭建指南与常见问题排查
    • Llama 开源家族演进:从 Llama-1 到 Llama-3 技术梳理
    • 自锁式按键开关机电路设计与低功耗实现
    • MacOS 极简安装 OpenClaw 之 Docker 版
    • 自然语言处理在金融领域的实战应用
    • Qwen3-TTS 与 Whisper ASR 构建双向语音对话系统

    相关免费在线工具

    • 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