Ubuntu Server 24.04 上直接部署 Zabbix 7.0
🧰 一、系统更新与基础环境准备
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl gnupg apache2 mysql-server php php-mysql libapache2-mod-php
📦 二、添加 Zabbix 官方仓库
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
🧩 三、安装 Zabbix 组件
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
🗄️ 四、配置 MySQL 数据库
sudo mysql -u root
在 MySQL 中执行:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'YourPassword';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
EXIT;
导入初始数据:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
⚙️ 五、配置 Zabbix Server
编辑配置文件 /etc/zabbix/zabbix_server.conf
:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YourPassword
🌐 六、配置 PHP 时区
编辑 /etc/zabbix/apache.conf
:
php_value date.timezone Asia/Hong_Kong
添加到 <IfModule mod_php.c>
和 <IfModule mod_php7.c>
两个模块块中,和其他 php_value
指令并列。这样可以确保无论使用哪个 PHP 模块,Zabbix 都能正确识别时区。
🚀 七、启动服务并设置开机自启
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
🔓 八、开放防火墙端口(如启用 UFW)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10051/tcp
🖥️ 九、访问 Web 安装界面
在浏览器中访问:
http://your_server_ip/zabbix
使用默认账号登录:
- 用户名:
Admin
- 密码:
zabbix
⚡遇到的问题:
如果第一次在 Zabbix 安装界面中看到中文(zh_CN)选项是灰色不可选,通常是因为系统缺少对应的语言环境或 Zabbix Web 前端未能正确加载语言包。以下是解决方法:
✅ 一、确保系统已安装中文语言环境
在 Ubuntu Server 24.04 上执行以下命令:
sudo apt install language-pack-zh-hans
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8
🔄 二、重启 Apache 服务
sudo systemctl restart apache2
这将使 Zabbix Web 前端重新加载语言设置,然后可以选择中文简体继续设置。
⚡遇到的问题二:
✅打开 Zabbix 图形界面,中文字符显示是框框
安装中文字体包
执行以下命令来安装适用于 Ubuntu 的中文字体:
sudo apt update
sudo apt install fonts-noto-cjk
安装完成后,使用以下命令查找所有 CJK 字体文件:
sudo find /usr/share/fonts/ -type f -iname "*CJK*"
/usr/share/fonts/ -type f -iname "*CJK*"
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc
完美!🎉 你已经找到了 Zabbix 可以使用的中文字体文件,路径如下:
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc
我们现在只需要告诉 Zabbix 使用其中一个字体来渲染图表中的中文字符。
我们定位到了 Zabbix 的字体配置段落!这两行是关键:
sudo cat /usr/share/zabbix/include/defines.inc.php
define('ZBX_FONTPATH', realpath('assets/fonts')); // where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
这表示:
- Zabbix 图表渲染时会在
assets/fonts
目录中查找字体文件 - 使用的字体文件名是
graphfont.ttf
(不含扩展名时默认加.ttf
)
✅ 解决方案:将中文字体复制到 Zabbix 的字体目录
1. 创建字体目录(如果不存在)
sudo mkdir -p /usr/share/zabbix/assets/fonts
2. 复制中文字体到该目录
sudo cp /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
注意:Zabbix 期望的是
.ttf
文件,但NotoSansCJK-Regular.ttc
是 TrueType Collection。你可以直接重命名为.ttf
,GD 库通常能识别。
🔄 重启 Web 服务
sudo systemctl restart apache2
# 或者
sudo systemctl restart nginx
✅ 最终验证
- 打开 Zabbix 图形界面
- 中文字符应该正常显示,不再是框框