HQY

×

Zabbix7.0安装部署与初始化配置实战手册:从零搭建企业级监控

hqy hqy 发表于2026-10-23 15:49:52 浏览6 评论0

抢沙发发表评论

上篇文章我聊了 Zabbix 7.0 LTS 的新特性和场景价值,后台有不少朋友问:"特性听着挺好,可我这还没装过 7.0,第一步怎么迈?"确实,对于一个从 5.0、6.0 一路用过来的老用户来说,7.0 的安装链路有几个和老版本不一样的地方——比如数据库脚本从三个文件合成了一个,前端 Nginx 默认端口变成了 8080。

图片

这篇文章我就手把手带你从一台干净的 Ubuntu 22.04 LTS 服务器开始,把 Zabbix 7.0 Server、前端、数据库和第一台被监控主机全部跑通,并讲清楚初始化阶段那些"不做就会踩坑"的配置。

背景介绍

Zabbix 是一套企业级开源分布式监控方案,能监控服务器、网络设备、虚拟机、数据库、应用甚至云资源,靠灵活的通知机制做告警,靠 Web 前端做可视化和配置。它诞生二十多年,至今仍是很多公司"监控基础设施"的底座。

为什么我建议新部署直接上 7.0 LTS?因为它是在 2024 年 6 月发布的长期支持版,会获得数年安全与缺陷修复,稳定性最适合生产;而上一代 6.0 LTS 也快到生命周期末端了。我的经验是,新机器别再装 6.0,省得一年后又得升级。

本文以 Ubuntu 22.04 LTS Server 为操作环境(24.04 仅在 PHP 版本号上有差异,我会标注),后端用 MySQL 8.0(MariaDB 也行,命令几乎一致),前端用官方提供的 Nginx + PHP-FPM 组合。整套跑下来大概需要一台 4 核 8G 的机器,生产环境建议数据库独立部署。


技术详解

一、准备系统与数据库

先更新系统,并装好 MySQL:

sudo apt update && sudo apt upgrade -y
sudo apt install -y mysql-server
sudo systemctl enable --now mysql

安全初始化(设置 root 密码、移除匿名用户等):

sudo mysql_secure_installation

登录 MySQL,创建专属库和用户。注意排序规则务必用 utf8mb4_bin,比默认的 general_ci 更严格,能避免触发器表达式里的字符比较踩坑:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@Strong2026';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
-- MySQL 8.0 开启 binlog 时需要此权限才能导入函数
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;

二、添加官方仓库并安装组件

Zabbix 7.0 的仓库包名带修订号,建议去官网下载页确认最新文件名,这里以 ubuntu22.04 为例:

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
sudo apt update
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

新手坑①:老教程让你分别导入 schema.sql、images.sql、data.sql 三个文件。从 7.0 起官方已把它们合并成单个 server.sql.gz,再去找那三个文件只会报错。正确姿势是:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

导入完成后,记得把刚才的全局变量关回去(开着会降低二进制日志的安全校验):

SET GLOBAL log_bin_trust_function_creators = 0;

三、配置 Server 与前端

编辑 /etc/zabbix/zabbix_server.conf,填数据库密码:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@Strong2026

配置 PHP 时区(Ubuntu 下文件是 /etc/zabbix/php-fpm.conf),把默认的 Europe/Riga 改成你所在时区,否则前端会报时区警告:

php_value[date.timezone] = Asia/Shanghai

新手坑②:用官方的 zabbix-nginx-conf 包,Nginx 默认监听的是 8080 端口,不是 80。访问地址是 http://服务器IP:8080/zabbix。想用 80 端口就去改 /etc/zabbix/nginx.conf 里的 listen。同时别忘了在 nginx.conf 里设 server_name。

启动并设置开机自启(Ubuntu 22.04 的 PHP-FPM 是 php8.1-fpm,24.04 是 php8.3-fpm):

sudo systemctl enable --now zabbix-server zabbix-agent2 nginx php8.1-fpm

四、Web 初始化向导与首台主机

浏览器打开 http://IP:8080/zabbix,跟着 4 步向导走:检查前置依赖 → 填数据库连接(用户 zabbix、刚才的密码)→ 填服务器名称(可选)→ 完成。默认管理员账号 Admin / 密码 zabbix,登录后第一件事就是改密码。

顺手把界面汉化:右上角用户图标 → User settings → Profile → Language 选 Chinese (zh_CN)。

添加第一台被监控 Linux 主机(在被监控机上):

sudo apt install -y zabbix-agent2
sudo nano /etc/zabbix/zabbix_agent2.conf
# 改三项:
#   Server=Zabbix服务器IP        # 被动模式,server 来拉数据
#   ServerActive=Zabbix服务器IP  # 主动模式,agent 推数据
#   Hostname=webserver01         # 必须与 web 里建主机时的名称一致
sudo systemctl enable --now zabbix-agent2

回到 Zabbix Web:配置 → 主机 → 创建主机,填名称 webserver01、群组 Linux servers、Agent 接口填被监控机 IP,链接模板选官方的 Linux by Zabbix agent 2。等一两分钟,主机可用性变绿,就能看到 CPU、内存、磁盘的图表了。

防火墙提醒:Zabbix Server 侧需放行 8080(Web)、10051(收 agent 主动数据);被动模式下被监控机需放行 10050。Ubuntu 用 sudo ufw allow 10051/tcp 这类命令。

影响与意义

把 Zabbix 7.0 装起来,意味着你拥有了一套不依赖任何商业License的监控底座:服务器、交换机(SNMP)、Windows/Linux 主机、数据库都能纳入,而且官方自带几百个开箱即用的模板,不用从零写告警规则。

我个人认为,对 20 台以上、混合了服务器和网络设备的环境,Zabbix 的性价比远超从头搭 Prometheus+Grafana——后者在云原生场景更强,但传统基础设施监控 Zabbix 上手快得多。代价是它比轻量方案"重",对 DB 和系统资源有要求,所以生产环境务必把数据库单独拆出来,并做好定期备份(mysqldump 或 mysqldump 的 zabbix 库 + /etc/zabbix/ 配置目录)。

实践建议

  1. 生产别用默认密码,也别只用 HTTP:登录后立即改 Admin 密码,并给 Web 前端套一层 HTTPS(反向代理或直配 Nginx 证书都行),数据库密码定期轮换。
  2. 优先用 agent2 + 主动模式:zabbix-agent2 是 Go 重写的新一代 agent,支持插件化(MongoDB、PostgreSQL 等);跨网段、云安全组场景用主动模式(ServerActive),agent 只出方向连 10051,避免在被监控机上开入站。
  3. 先备份再折腾:动任何配置前,mysqldump -uzabbix -p zabbix | gzip > zabbix_db.sql.gz 打一份库,连同 /etc/zabbix/ 一起留底,升级或迁移时能救命。


到这儿,一台 Zabbix 7.0 Server 已经从零跑通,并且纳管了第一台主机。装好只是起点,真正价值在于后面用模板和触发器把整个基础设施"看"起来。下一篇我可以聊聊如何配置告警通知(邮件/钉钉/企业微信)和自动发现规则,把运维从"人肉盯屏"解放出来。


打赏

本文链接:https://kinber.cn/post/6816.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客