1. 前言 / 背景
最近准备重新梳理监控平台的部署流程,因此决定再次安装一遍 Zabbix,并把全过程记录下来。一方面方便自己后续复盘,另一方面也希望整理成一篇可以直接复现的教程。
同时根据官网文档:
对于 Apache: http://<server_ip_or_name>/zabbix
对于 Nginx: http://<server_ip_or_name>
我觉得第一种访问方式不够优雅,所以我打算按照第二种方式,再部署一次。
By the way,everything is for fun.
2. 环境说明
OS:Rocky Linux 9
Zabbix:7.0 LTS
DB:MySQL 8.0
Web:Nginx
部署方式:官方仓库安装
网络环境:内网,反代至公网
3. 安装目标
根据你的当前环节,选择配置平台。


4. 安装前准备
升级本机的系统组件,并清除缓存,如果有引入EPEL包,需要移除包内对Zabbix的索引,并添加官方索引。
确保网络通畅。
5. 具体安装步骤
5.1. 升级组件包,清除缓存
dnf update -y
clean all


5.2. 检查是否安装额外的第三方包


5.3. 移除第三方包中的zabbix索引
Edit file /etc/yum.repos.d/epel.repo
[epel]
...
excludepkgs=zabbix*


5.4. 添加官方zabbix源
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
# dnf clean all
验证一下,确保索引得zabbix均来自官方仓库。
dnf list 'zabbix'


5.5. 复制官网安装命令-Nginx
本次我选择用NG作网页显示。
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent


5.6. 安装数据库-Mysql
MySQL 官方说明,EL9 用 MySQL Yum Repository 安装,默认启用的是 MySQL 8.4 LTS
dnf install -y https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
dnf install -y mysql-community-server
systemctl enable mysqld --now
最后检查一下状态
systemctl status mysqld


5.7. 配置数据库
5.7.1. 获取临时密码
grep 'temporary password' /var/log/mysqld.log
_uRhmYycg3>n
5.7.2. 创建Zabbix数据库和用户
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by '*******';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;


5.7.3. 导入zabbix初始结构
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
6. 配置说明
6.1. 配置zabbix_server.conf
Edit file /etc/zabbix/zabbix_server.conf
DBPassword=password
6.2. 配置防火墙
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --reload
6.3. 配置SELINUX
根据官方文档:若安装完成后页面无法访问、服务异常但日志不明显,可先临时放宽 SELinux 验证是否与策略有关。


7. 启动与验证
7.1. 启动与开机自启
# systemctl restart zabbix-server zabbix-agent nginx php-fpm
# systemctl enable zabbix-server zabbix-agent nginx php-fpm

7.2. 导入中文字符集
dnf install -y glibc-langpack-zh

systemctl restart nginx php-fpm

此时已经可选中文进行配置。


根据步骤进行配置,安装完结。



8. 问题排查 / 踩坑记录
8.1. 因错误选择系统版本,导致导入了错误的RPM包
安装zabbix需严格对应自己当前操作系统的版本,这样官方页面给出的rpm包才会正确对应,在后续的安装中才不会出错。
8.2. 初始化数据后,忘记导入zabbix初始数据库
可以通过查询报错日志,根据日志信息排错
tail -n 50 /var/log/zabbix/zabbix_server.log
9. 最终效果


10. 总结与复盘
此刻是2026年,有人说,zabbix已经落伍了。我查看它的官网信息,它已经发展了20年,整整20年,它也该落伍了。


但是当我启动进入zabbix那个页面,一种说不清的熟悉的感觉,是windows xp的感觉,浓厚的微机风格。
我想说,你这个感觉,其实很准。
接下来,让我们一起聊聊这款经常监控软件。
Zabbix 一打开,会有一种很强的“老牌系统”气质:不是那种今天流行的、圆角很大、动画很多、强调体验愉悦的 SaaS 风格,而是一种很朴素、很直接、很“机房”的界面语言。它给人的不是“产品感”,而是“工具感”。这种熟悉感,很像很多人第一次接触运维、网络、机房、Windows XP 时代软件时的审美残留。它不讨好你,但它想把系统状态老老实实摆在你面前。这个气质,某种意义上就是它历史的一部分。
如果从历史上讲,Zabbix 并不是 2005 年才开始,而是更早。官方和公开资料都提到,第一个 Zabbix 版本在 2001 年就已经出现,最初是 Alexei Vladishev 做出来的一个监控工具;2005 年成立 Zabbix 公司,开始把这个项目从“工具”推进成一个长期运营的开源产品和商业支持体系。也就是说,你现在在 2026 年回头看它,它确实已经是一个跨越 20 多年的项目了;如果按公司成立算,2025 年正好是 20 周年。
Zabbix 诞生的时代背景也很重要。它起来的那个年代,监控系统面对的是一整套更“重”的 IT 世界:物理服务器、交换机、路由器、机房、数据库、中间件、SNMP、IPMI、Windows Server、Linux 主机。那时候大家最需要的不是“云原生可观测性”这种新叙事,而是一个能把主机、网络设备、服务状态、告警、图形、拓扑图统一收进来的平台。Zabbix 的设计就带着非常明显的那个时代烙印:Agent、Proxy、Server、数据库、Web 前端,层次分明,功能完整,适合比较传统、比较稳态的基础设施环境。
它早期之所以能站住脚,一个很重要的原因是:它想做的是“一体化监控平台”。不像有些工具只管采集,或只擅长画图,Zabbix 很早就把采集、存储、触发器、告警、模板、自动发现、可视化放进一个整体里。比如公开资料提到,1.8 时代就已经加入自动发现和自动注册,这在当年其实是很有竞争力的能力。它不是最轻巧的,但它很完整。
所以你会发现,Zabbix 的“老”,不只是界面老,它的产品哲学也有点老派。它相信配置、模板、触发器、拓扑、权限这些东西要明确;相信监控系统应该是“可控的、可审计的、结构化的”;它不是一个很强调“拿来即用、自动智能推断一切”的产品。这种思路在今天看会显得有些重,但在很多传统企业、政府、金融、电信、制造业场景里,反而是优点,因为这些单位往往最怕“黑盒”和“不可控”。
那“Zabbix 已经落伍了吗”?我觉得更准确的说法不是“落伍”,而是它不再代表最新潮的那一套基础设施叙事了。今天大家聊得更多的是 Prometheus、Grafana、OpenTelemetry、云监控、Kubernetes 可观测性、日志指标链路统一平台。这些工具和范式更贴近容器化、微服务和云原生世界。相比之下,Zabbix 更像是从传统运维时代一路活到今天的“老兵”:它的强项依然是主机、网络、设备、机房资产、稳态环境和统一监控治理,而不是最时髦的云原生生态中心。
但有意思的是,它并没有停在过去。至少从官方版本节奏看,Zabbix 这些年一直在持续更新,7.0 是 LTS,2024 年发布,之后 2025 年还持续有 7.0.x 更新;到 2026 年,7.4.8 也已经发布。这说明它不是一个“死掉了但还在用”的老项目,而是一个还在持续维护、持续演进的老项目。只是它演进的方式比较克制,不会每次都给你一种“世界变了”的感觉。
还有一个很值得说的点:Zabbix 的寿命,本身就是它价值的一部分。 一个监控系统能活二十多年,说明它不是只靠一时风口。监控这件事,说到底不是炫技,而是长期维护、长期陪伴、长期报警。很多单位选监控,最终看中的并不是“最新”,而是“十年后它还在不在,文档全不全,社区活不活,出问题有没有人懂”。从这个角度讲,Zabbix 的“老”反而是一种信誉。官方也一直强调它在全球很多国家和行业中被持续使用。
所以如果让我用一句话概括它的历史气质,我会这样说:
Zabbix 不是一个代表未来想象力的产品,它更像一个代表 IT 基础设施长期主义的产品。
它来自那个“机房比云更真实、服务器比容器更重要、告警短信比可观测性大会更有分量”的年代。你打开它会想到 Windows XP,不只是因为页面朴素,而是因为它身上确实还留着那个年代的软件精神:功能先于审美,稳定先于花哨,控制感先于体验感。
如果你今天亲手把 Zabbix Server 跑起来,其实是在重新摸到一段很典型的运维史。不是因为它最先进,而是因为它足够经典。对很多做网安、运维、基础架构的人来说,Zabbix 有点像一台老式交换机、一个熟悉的机柜、或者一套旧版 Windows Server:你知道它不潮了,但你也知道,它真的陪很多系统活过了很久。