From fbed28e59ea1a18f739b5745802cb28fa98fb885 Mon Sep 17 00:00:00 2001 From: zqlit Date: Fri, 22 May 2026 16:59:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83:=20Ubuntu=2024.04=20?= =?UTF-8?q?=E5=AE=89=E8=A3=85=20Zabbix=208.0=20=E5=85=A8=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../index.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 content/post/2026/2026-05-22-ubuntu-24-04-安装-zabbix-8-0-全记录/index.md diff --git a/content/post/2026/2026-05-22-ubuntu-24-04-安装-zabbix-8-0-全记录/index.md b/content/post/2026/2026-05-22-ubuntu-24-04-安装-zabbix-8-0-全记录/index.md new file mode 100644 index 00000000..91c64998 --- /dev/null +++ b/content/post/2026/2026-05-22-ubuntu-24-04-安装-zabbix-8-0-全记录/index.md @@ -0,0 +1,169 @@ +--- +title: Ubuntu 24.04 安装 Zabbix 8.0 全记录 +date: '2026-05-22T00:00:00.000Z' +slug: '202605221646' +draft: false +categories: + - 技术 +tags: [] +author: 小赵 +layout: post +--- +## 环境说明 + +新到了一台装了 Ubuntu 24.04 的机器,需要搭个 Zabbix 8.0 。用的 MySQL 8.0.45 做数据库,整个过程踩了不少坑,记录一下方便以后翻看。 + +--- + +## 安装流程 + +### 添加官方源 + +Ubuntu 自带源里的 Zabbix 版本太老,直接去官方拉最新的仓库包: + +```bash +wget https://repo.zabbix.com/zabbix/8.0/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_8.0+ubuntu24.04_all.deb +sudo dpkg -i zabbix-release_latest_8.0+ubuntu24.04_all.deb +sudo apt update +``` + +### 安装组件 + +一条命令把服务端、前端、数据库、Agent 全装上: + +```bash +sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent mysql-server +``` + +### 配置数据库 + +先登进 MySQL: + +```bash +sudo mysql -u root +``` + +建库、建用户、授权,三步走: + +```sql +CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '你的密码'; +GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; +FLUSH PRIVILEGES; +QUIT; +``` + +### 导入初始数据 + +```bash +sudo zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix +``` + +### 改配置文件 + +编辑 `/etc/zabbix/zabbix_server.conf`,加上这两行: + +``` +DBPassword=你的密码 +AllowUnsupportedDBVersions=1 +``` + +第二行后面会讲到为什么需要,第二行配置文件搞了我很久。 + +### 修复语言环境 + +```bash +sudo apt install -y locales +sudo locale-gen en_US.UTF-8 +``` + +### 启动服务 + +```bash +sudo systemctl restart zabbix-server zabbix-agent apache2 +sudo systemctl enable zabbix-server zabbix-agent apache2 +``` + +### 网页初始化 + +浏览器打开 `http://你的服务器IP/zabbix`,跟着向导填: + +- 数据库类型选 MySQL +- 主机填 localhost +- 库名 zabbix,用户名 zabbix,密码填你设的那个 +- 时区选 Asia/Shanghai + +完成后用 `Admin / zabbix` 登录就行。 + +--- + +## 踩过的坑 + +### 坑一:数据文件路径不对 + +照着网上教程写的路径 `/usr/share/zabbix-sql-scripts/mysql/server.sql.gz`,结果报文件不存在。用 `find /usr/share -name "server.sql.gz"` 搜了一下才发现 8.0 版本路径变了,实际在 `/usr/share/zabbix/sql-scripts/mysql/server.sql.gz`,中间少了一层目录。 + +### 坑二:数据库权限报错 + +导入数据时报这个: + +``` +ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled... +``` + +MySQL 开了 binlog,zabbix 用户没有 SUPER 权限,没法创建存储过程。先登录 root 执行一下 `SET GLOBAL log_bin_trust_function_creators = 1;` 临时放开限制,再重新导入就好了。 + +### 坑三:配置文件变量名大小写 + +用 `grep "DBpassword"` 查配置啥也没找到,折腾半天发现是大小写问题,变量名是 `DBPassword`(P 大写)。Linux 下这种大小写敏感的地方挺多的,习惯了就好。 + +### 坑四:MySQL 版本不被支持 + +服务死活起不来,日志里写着: + +``` +Unable to start Zabbix server due to unsupported MySQL database version (8.00.45). +Must be at least (8.04.00). +``` + +Ubuntu 24.04 自带的 MySQL 8.0.45 版本太新,Zabbix 8.0 的白名单里还没有它。其实数据库完全兼容,只是校验逻辑没跟上。解决方法是配置文件里加一行 `AllowUnsupportedDBVersions=1`,跳过版本检查就好。当然这行得自己承担风险,不过单机用完全没问题。 + +### 坑五:语言环境检测不通过 + +网页安装那步卡在系统语言检查,`en_US` 那项是红色的。因为系统缺了英文语言包,装上 `locales` 并生成 `en_US.UTF-8`,重启 Apache 和 Zabbix Server 就过了。 + +### 坑六:数据没完全导进去 + +前面权限问题导致导入中断,虽然部分表已经建了但 `users` 表是空的,启动时直接报: + +``` +cannot use database "zabbix": its "users" table is empty +``` + +干脆删库重建,重新完整导入一遍,最后 `SHOW TABLES` 出来 211 张表就对了。 + +--- + +## 顺手学到的几个知识点 + +- **`mysql -p` 跟密码**时中间不能有空格,建议直接回车然后交互式输入,更安全 +- **`sed -i`** 是原地改文件,加 `.bak` 后缀可以自动备份原文件 +- **`sed` 分隔符不一定是 `/`**,遇到 URL 这种含斜杠的内容时用 `s#原内容#新内容#` 更方便 +- **`AllowUnsupportedDBVersions=1`** 可以跳过数据库版本校验,适合用较新数据库版本的情况 +- **Zabbix 前端需要 `en_US.UTF-8` 语言包**,最小化安装的系统可能要手动装 + +--- + +## 验证是否跑起来了 + +```bash +# 三个服务都看看状态 +sudo systemctl status zabbix-server zabbix-agent apache2 + +# 翻翻日志有没有报错 +sudo tail -20 /var/log/zabbix/zabbix_server.log +``` + +然后浏览器访问页面,用默认账号登进去,去"数据采集 -> 主机"里瞅一眼 + +本机那个 ZBX 图标变绿就说明整套东西跑通了。