1)先搞清楚 Zabbix 到底是什么
在你敲下任何一条命令之前,我们先花几分钟把 Zabbix 这个东西在脑子里建立起来。
想象你管理着公司里的 200 台服务器、50 台交换机、30 个数据库实例。凌晨三点,某台 Web 服务器的 CPU 突然飙到 100%,某个磁盘快满了,某个 MySQL 连接数打满了------如果没人知道,等到早上用户投诉"网站打不开",你就已经被动了。Zabbix 就是那个 7×24 小时不睡觉的"哨兵",它每隔几十秒就去"摸"一下你所有设备的脉搏:CPU 多少度、内存剩多少、磁盘还有几个 G、网络流量多大、某个进程还活着没有、某个 HTTP 接口返回是不是 200。一旦发现异常,它立刻通过邮件、短信、钉钉、企业微信甚至电话把你叫醒。
Zabbix 是一个完全开源免费的企业级监控平台,由拉脱维亚的 Alexei Vladishev 在 2001 年创建,到现在已经发展了二十多年。当前(2026 年)最新的长期支持版本是 Zabbix 7.0 LTS,这个版本会获得 5 年的官方支持,非常适合生产环境。它不仅仅能监控 Linux 服务器,Windows、macOS、VMware、Docker、Kubernetes、各种网络设备(通过 SNMP)、数据库(MySQL、PostgreSQL、Oracle、MongoDB)、中间件(Nginx、Tomcat、Redis)、甚至云服务和自定义业务指标,全都能监控。
2)理解 Zabbix 的架构------这是后面一切的基础
Zabbix 不是一个单独的程序,它是一套"组件家族"。你必须在脑子里把这张架构图画清楚,否则后面遇到任何问题都会一头雾水。
Zabbix Server 是整个系统的大脑。它负责接收所有监控数据、把数据存进数据库、判断数据是否触发了告警条件、然后执行告警动作(比如发邮件)。它是核心中的核心,所有其他组件都围着它转。
Zabbix Agent 是安装在被监控机器上的一个轻量级守护进程。它的工作很简单:Server 问它"你的 CPU 使用率是多少",它就执行对应的命令(比如读 /proc/stat),把结果返回给 Server。Agent 有主动模式和被动模式两种工作方式,后面会详细讲。除了 Agent,Zabbix 还支持 SNMP、IPMI、JMX、SSH/Telnet 远程执行、HTTP 轮询等多种采集方式,所以不是所有被监控对象都必须装 Agent。
数据库(MySQL/MariaDB/PostgreSQL/Oracle)是 Zabbix 的"记忆"。所有的配置信息(你监控了哪些主机、设置了什么阈值)和所有的历史监控数据(过去三个月每分钟的 CPU 曲线)都存在这里。数据库的性能直接决定了 Zabbix 能扛多大的监控规模。
Web 前端是你日常操作的界面。它是一个 PHP 写的网站,跑在 Nginx 或 Apache 上面。你通过浏览器登录进去,添加主机、配置告警、看图表、看仪表盘,所有操作都在这里完成。Web 前端本身不采集数据,它只是读写数据库,然后渲染给你看。
Zabbix Proxy 是可选组件,用于分布式监控。比如你在北京有一个机房、在上海有一个机房,如果所有数据都直接回传到北京的 Server,网络延迟和带宽都是问题。这时候你在上海部署一个 Proxy,上海的机器把数据交给本地 Proxy,Proxy 攒一批后再统一发给 Server。Proxy 还能在网络隔离的环境中充当"中间人"。
把这些串起来,数据流是这样的:Agent(或 SNMP 等)采集数据 → 发送给 Server(或 Proxy 中转)→ Server 写入数据库 → Server 用触发器表达式判断是否异常 → 如果异常,执行动作(发邮件、执行脚本等)→ 你打开 Web 前端看到红色的告警和图表。
3)动手之前:环境准备和系统初始化
现在我们正式开始。假设你有一台全新的 Rocky Linux 9.7 服务器,最低配置建议 2 核 CPU、4GB 内存、50GB 磁盘(生产环境建议 4 核 8G 起步,磁盘根据监控规模可能需要几百 GB)。我们用这台机器同时跑 Zabbix Server、MySQL、Nginx 和 Web 前端,也就是所谓的"All-in-One"部署,这是学习和中小规模生产最常见的做法。
首先用 root 登录(或者用 sudo),确认一下系统版本:
bash
cat /etc/rocky-release
你应该看到类似 Rocky Linux release 9.7 (Blue Onyx) 的输出。
接下来做几件"脏活",这些事不做后面一定会踩坑。
关闭 SELinux。 SELinux 是 Rocky Linux 的强制访问控制机制,安全是安全了,但它会阻止 Zabbix Server 连接数据库、阻止 Nginx 访问某些文件,新手阶段它会让你怀疑人生。生产环境如果你精通 SELinux 可以 later 再开,现在先关掉:
bash
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
第一条命令是临时关闭(立即生效),第二条是永久关闭(重启后也生效)。
关闭防火墙或者放行端口。 学习阶段最省心的做法是直接关掉 firewalld:
bash
systemctl stop firewalld
systemctl disable firewalld
但如果你在生产环境不想关防火墙,那至少要放行这些端口:10051/tcp(Zabbix Server 接收数据的端口)、10050/tcp(Agent 端口,如果被监控的 Server 本身也要被 Agent 监控的话)、80/tcp 或 443/tcp(Web 界面)、3306/tcp(MySQL,如果数据库在另一台机器上)。放行命令类似:
bash
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
配置时间同步。 监控系统对时间极其敏感,如果你的 Server 和被监控机器时间差了几分钟,数据就会错乱,触发器判断也会出问题。Rocky Linux 9 默认使用 chrony,确认它在运行:
bash
systemctl enable --now chronyd
chronyc sources -v
配置主机名和 hosts 解析。 给机器一个有意义的主机名,比如 zabbix-server:
bash
hostnamectl set-hostname zabbix-server
echo "192.168.1.100 zabbix-server" >> /etc/hosts
把 IP 换成你实际的 IP。
更新系统软件包(可选但推荐):
bash
yum update -y
做完这些,重启一次确保所有配置生效:reboot。重新登录后,我们的"地基"就打好了。
4)安装 Zabbix 7.0 LTS:一步一步来
Zabbix 官方为 Rocky Linux 9 提供了专门的 RPM 仓库,我们不需要编译源码,直接用 dnf 安装即可。
第一步:安装 Zabbix 官方软件源。 这条命令会下载一个 RPM 包,它的作用是在你的 /etc/yum.repos.d/ 目录下添加 Zabbix 的仓库配置文件:
bash
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
如果你的网络访问 repo.zabbix.com 比较慢,也可以使用国内镜像,比如清华源或阿里云源,把 URL 中的 repo.zabbix.com 替换掉即可。安装完之后执行 dnf clean all 清理缓存。
这里有一个容易踩的坑:如果你之前配置过 EPEL 源,EPEL 里也有 zabbix 相关的包,可能会和官方源冲突。解决办法是编辑 /etc/yum.repos.d/epel.repo,在 [epel] 段下面加一行 excludepkgs=zabbix*,让 EPEL 源排除所有 zabbix 包。
第二步:安装 Zabbix Server、Web 前端和 Agent。 我们选择 MySQL 作为数据库后端、Nginx 作为 Web 服务器(这是目前最主流的组合):
bash
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
这条命令会装很多东西:zabbix-server-mysql 是 Server 主程序(编译时链接了 MySQL 客户端库);zabbix-web-mysql 是 PHP 写的 Web 前端;zabbix-nginx-conf 是 Nginx 的配置文件模板;zabbix-sql-scripts 是数据库初始化脚本;zabbix-selinux-policy 是 SELinux 策略(虽然我们关了 SELinux,但装上无妨);zabbix-agent 是 Agent,装在 Server 本机上用来监控 Server 自己。
第三步:安装和配置 MySQL。 Rocky Linux 9 的默认仓库里有 MySQL 8.0,直接装:
bash
yum install -y mysql-server
systemctl enable --now mysqld
启动后,运行安全初始化向导:
bash
mysql_secure_installation
它会问你一系列问题:设置 root 密码(设一个强密码,比如 Zabbix@2026!,记住它)、移除匿名用户(选 Y)、禁止 root 远程登录(选 Y)、删除测试数据库(选 Y)、重新加载权限表(选 Y)。
然后登录 MySQL,创建 Zabbix 专用的数据库和用户:
bash
mysql -uroot -p'lengmoxi'
进入 MySQL 命令行后执行:
sql
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'lengmoxi';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
这里 utf8mb4 字符集很重要,它支持完整的 Unicode(包括 emoji),如果用 utf8 以后可能会遇到某些特殊字符存不进去的问题。zabbix 用户的密码 lengmoxi 你也要记住,后面配置文件里要用。
第四步:导入数据库结构。 这是最关键的一步。Zabbix 的数据库里有上百张表,存储了主机、监控项、触发器、历史数据、趋势数据、事件、告警等所有信息。zabbix-sql-scripts 包提供了一个压缩好的 SQL 文件,我们把它导入进去:
bash
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p'lengmoxi' zabbix
这条命令可能需要几十秒到几分钟,取决于你的磁盘速度。执行完后没有任何输出就是成功了。你可以登录 MySQL 执行 USE zabbix; SHOW TABLES; 验证一下,应该能看到 hosts、items、triggers、history、trends 等一大堆表。
第五步:配置 Zabbix Server。 编辑主配置文件 /etc/zabbix/zabbix_server.conf。这个文件有几百行注释,但真正需要你改的其实不多。找到并修改以下关键参数:
ini
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=lengmoxi
DBHost=localhost 表示数据库在本机。如果数据库在另一台机器上,填那台机器的 IP,同时 MySQL 那边要授权远程访问。DBPassword 填你刚才在 MySQL 里给 zabbix 用户设的密码。
其他参数暂时保持默认即可。默认情况下 Zabbix Server 监听 10051 端口,启动 5 个 poller 进程去采集数据,这些对于几十台机器的规模完全够用。
第六步:配置 Nginx 和 PHP。 Zabbix 的 Web 前端需要 PHP-FPM 和 Nginx 配合工作。安装 PHP 和相关扩展:
bash
yum install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-bcmath php-ldap
Zabbix 7.0 要求 PHP 8.0 以上,Rocky Linux 9 仓库里的 PHP 版本满足要求。
编辑 PHP-FPM 的配置。Zabbix 的 Nginx 配置文件模板在 /etc/nginx/conf.d/zabbix.conf(有些版本路径可能是 /etc/zabbix/web/nginx.conf或者/etc/zabbix/nginx.conf),打开它,取消注释并设置 listen 和 server_name:
nginx
server {
listen 80;
server_name zabbix-server;
...
}
然后确保 PHP-FPM 的时区设置正确。编辑 /etc/php-fpm.d/zabbix.conf(这是 Zabbix 包自动创建的 PHP-FPM pool 配置),找到 或者添加php_value[date.timezone] 这一行进行设置:
ini
php_value[date.timezone] = Asia/Shanghai
时区不设对的话,Web 界面上显示的时间会差 8 小时,而且触发器的时间判断也会出问题。
第七步:启动所有服务。 现在把 Zabbix Server、Zabbix Agent、Nginx、PHP-FPM 全部启动并设为开机自启:
bash
systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
检查状态:
bash
systemctl status zabbix-server
systemctl status zabbix-agent
systemctl status nginx
systemctl status php-fpm
四个都应该是 active (running) 状态。如果 zabbix-server 启动失败,第一时间去看日志:tail -100 /var/log/zabbix/zabbix_server.log,90% 的问题是数据库连不上(密码写错了)或者数据库表没导入。
第八步:Web 界面初始化。 打开浏览器,访问 http://你的服务器IP。你会看到 Zabbix 的安装向导页面。
第一页是欢迎页,直接 Next。第二页是环境检查,它会列出 PHP 版本、各种扩展、时区等是否满足要求,全部应该是绿色的 OK。如果有红色报错,按照提示去改 php.ini 或安装缺失的扩展。
第三页是数据库连接配置:Database type 选 MySQL,Host 填 localhost,Port 填 3306,Database name 填 zabbix,User 填 zabbix,Password 填 lengmoxi。就可以 Next。
第四页是 Zabbix Server 详情,Name 随便填(比如 "My Zabbix"),这个会显示在 Web 界面左上角。第五页是汇总确认,继续下一步。
然后你会看到登录页面。默认用户名是 Admin (注意大写 A),密码是 zabbix(全小写)。登录后第一件事:点右上角用户头像 → User settings → Language 选 Chinese (zh_CN) → Update,界面立刻变中文。第二件事:把默认密码改掉,Admin 用户的默认密码是全网皆知的,不改等于裸奔。
到这里,你的 Zabbix 监控系统就已经跑起来了。打开"监测" → "主机",你会看到已经有一台叫 "Zabbix server" 的主机,这就是 Server 本机,它通过本机的 Agent(127.0.0.1:10050)在监控自己。等几分钟后,点进去看"图形",CPU、内存、磁盘的曲线已经开始画了。
5)理解 Zabbix 的核心概念:主机、监控项、触发器、动作
在继续添加更多监控之前,你必须彻底理解 Zabbix 的"数据模型",否则你只是在机械地点按钮,遇到问题完全不知道怎么排查。
主机(Host) 就是你要监控的一个对象。它可以是一台 Linux 服务器、一台 Windows 服务器、一台交换机、一个数据库实例,甚至是一个 URL。每个主机有一个唯一的名称,关联一个或多个"接口"(Interface),接口就是 Zabbix 去哪里采集数据的地址,比如 Agent 接口是 IP:10050,SNMP 接口是 IP:161。
模板(Template) 是一组预定义的监控项、触发器、图形和自动发现规则的集合。你不需要给每台 Linux 服务器手动创建"CPU 使用率""内存使用率""磁盘空间"等几十个监控项,Zabbix 自带了 Linux by Zabbix agent 这个模板,你把它链接到主机上,这些监控项就自动有了。模板是 Zabbix 最强大的设计之一,它让监控配置可以复用和继承。
监控项(Item) 是最小的数据采集单元。每一个监控项对应一个具体的指标,比如 system.cpu.util[,idle] 表示 CPU 空闲率,vfs.fs.size[/,pfree] 表示根分区剩余百分比。每个监控项有一个"键值"(Key),这个键值决定了 Agent 要执行什么操作来获取数据。监控项还有采集间隔(比如 60 秒采一次)、数据类型(整数、浮点数、字符串、文本)、存储策略(历史数据保留多久、趋势数据保留多久)等属性。
触发器(Trigger) 是建立在监控项之上的"判断逻辑"。一个触发器就是一个表达式,比如 last(/Linux server/system.cpu.util[,idle])<10 的意思是"如果这台 Linux 服务器的 CPU 空闲率最近一次采集值低于 10%,就触发"。触发器有两个状态:OK(正常)和 PROBLEM(异常)。当表达式为真时状态变为 PROBLEM,为假时恢复为 OK。触发器有严重级别:未分类、信息、警告、一般严重、严重、灾难。
动作(Action) 是触发器状态变化后 Zabbix 要做的事情。最常见的动作是"发送告警通知":当触发器从 OK 变成 PROBLEM 时,给运维组发邮件;当从 PROBLEM 恢复成 OK 时,再发一封恢复通知。动作还可以执行远程命令,比如磁盘满了自动清理 /tmp,或者调用 Webhook 去触发 Ansible 剧本。
事件(Event) 和 告警(Alert) 是运行时的产物。触发器状态变化产生一个事件,事件匹配到动作后产生告警(比如一封邮件)。你在 Web 界面的"监测" → "问题"里看到的就是当前处于 PROBLEM 状态的触发器。
把这些概念串起来:你在主机上链接了模板 → 模板里定义了监控项 → 监控项采集数据 → 触发器表达式评估数据 → 状态变化产生事件 → 事件触发动作 → 动作发送通知。这就是 Zabbix 的完整工作链条。
6)添加你的第一台被监控主机
现在我们来监控另一台 Linux 服务器。假设那台机器的 IP 是 192.168.1.101,主机名叫 web-server-01。
首先在被监控机器上安装 Agent。 登录到 192.168.1.101,同样安装 Zabbix 官方源(和 Server 上一样的 rpm 命令),然后只装 agent:
bash
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
dnf install -y zabbix-agent
编辑 /etc/zabbix_agentd.conf,修改两个关键参数:
ini
Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=web-server-01
Server 是被动模式:Zabbix Server 主动来问 Agent 要数据,Agent 只接受来自这个 IP 的连接。ServerActive 是主动模式:Agent 主动把数据推给 Server。Hostname 必须和你在 Zabbix Web 里创建主机时填的名称完全一致(大小写敏感),否则主动模式会报错。
启动 Agent:
bash
systemctl enable --now zabbix-agent
确认 10050 端口在监听:ss -tlnp | grep 10050。
然后在 Zabbix Web 界面添加主机。 进入"数据采集" → "主机" → 点右上角"创建主机"。
在"主机"选项卡里:主机名称填 web-server-01(必须和 Agent 配置里的 Hostname 一模一样);可见名称可以填个好读的,比如 Web服务器01;模板选项卡里搜索并链接 Linux by Zabbix agent;接口选项卡里点"添加" → "Agent",IP 填 192.168.1.101,端口 10050。
点"添加"保存。回到主机列表,你会看到这台新主机,等一两分钟,"可用性"那一列的 ZBX 图标会变成绿色,表示 Agent 连通了。如果是红色,鼠标悬停上去会显示错误原因,最常见的是防火墙没放行 10050 端口、Agent 没启动、或者 Hostname 不匹配。
点进这台主机 → "图形",选择"CPU utilization"或"Memory usage",你就能看到实时曲线了。模板里已经预定义了几十个监控项和十几个触发器,比如内存使用率超过 90% 会触发警告、磁盘剩余空间低于 10% 会触发严重告警、Agent 不可达会触发灾难告警,你什么都不用配,开箱即用。
本章总结
一、Zabbix 是什么
| 项目 | 说明 |
|---|---|
| 定位 | 开源免费的企业级 7×24 监控平台 |
| 创始人 | Alexei Vladishev(拉脱维亚),2001 年创建 |
| 当前推荐版本 | Zabbix 7.0 LTS(5 年官方支持) |
| 监控对象 | Linux / Windows / macOS / VMware / Docker / K8s / 网络设备(SNMP) / 数据库 / 中间件 / 云服务 / 自定义指标 |
| 告警通道 | 邮件、短信、钉钉、企业微信、电话、Webhook 等 |
二、架构组件与数据流
| 组件 | 角色 | 关键说明 |
|---|---|---|
| Zabbix Server | 大脑 | 接收数据 → 写库 → 触发器判断 → 执行动作;监听 10051/tcp |
| Zabbix Agent | 采集探针 | 装在被监控机器上;支持被动模式 (Server 来拉)和主动模式 (Agent 主动推);监听 10050/tcp |
| 数据库 | 记忆 | MySQL / MariaDB / PostgreSQL / Oracle;存配置 + 历史数据 + 趋势 |
| Web 前端 | 操作界面 | PHP 编写,跑在 Nginx / Apache 上;只读写数据库,不采集数据 |
| Zabbix Proxy | 可选·分布式中转 | 多机房 / 网络隔离场景;本地攒批后统一回传 Server |
数据流:
Agent / SNMP / JMX / HTTP...
↓
Server(或 Proxy 中转)
↓
写入数据库
↓
触发器表达式判断
↓
异常 → 执行动作(邮件/脚本/Webhook)
↓
Web 前端展示图表 & 告警
三、环境准备(Rocky Linux 9.7)
| 步骤 | 命令 / 操作 | 目的 |
|---|---|---|
| 确认版本 | cat /etc/rocky-release |
确认 Rocky 9.7 |
| 关闭 SELinux | setenforce 0 + 改 /etc/selinux/config |
避免阻止 Zabbix 连库、Nginx 读文件 |
| 关闭防火墙(学习) | systemctl stop/disable firewalld |
省心;生产则放行 10051/10050/80/3306 |
| 时间同步 | systemctl enable --now chronyd |
监控对时间极敏感 |
| 主机名 & hosts | hostnamectl set-hostname zabbix-server + 写 /etc/hosts |
名称解析一致 |
| 更新系统 | yum update -y(可选) |
补丁对齐 |
| 重启 | reboot |
使配置全部生效 |
最低配置:2C / 4G / 50G;生产建议 4C / 8G 起步,磁盘按规模扩。
四、安装八步
| 步骤 | 核心命令 | 要点 / 易踩坑 |
|---|---|---|
| ① 添加官方源 | rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm |
国内慢可换清华/阿里镜像;EPEL 需 excludepkgs=zabbix* |
| ② 安装 Zabbix 包 | dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent |
一次装齐 Server + Web + Nginx 配置 + SQL 脚本 + Agent |
| ③ 安装 & 初始化 MySQL | yum install -y mysql-server → mysql_secure_installation |
设强密码;移除匿名/测试库 |
| ④ 建库建用户 | CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; + 授权 + SET GLOBAL log_bin_trust_function_creators=1; |
必须 utf8mb4;密码后面要用 |
| ⑤ 导入表结构 | `zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix` |
| ⑥ 配置 Server | 编辑 /etc/zabbix/zabbix_server.conf:DBHost / DBName / DBUser / DBPassword |
90% 启动失败 = 密码错或表没导 |
| ⑦ 配置 Nginx + PHP | 装 PHP 扩展;编辑 zabbix.conf 设 listen 80;/etc/php-fpm.d/zabbix.conf 设 date.timezone = Asia/Shanghai |
PHP ≥ 8.0;时区不设差 8 小时 |
| ⑧ 启动 & Web 初始化 | systemctl enable --now zabbix-server zabbix-agent nginx php-fpm → 浏览器访问 http://IP |
默认账号 Admin / zabbix;登录后立即改密码 + 切中文 |
五、核心概念速查
| 概念 | 一句话定义 | 举例 |
|---|---|---|
| 主机 (Host) | 被监控对象,绑定一个或多个接口 | web-server-01,Agent 接口 192.168.1.101:10050 |
| 模板 (Template) | 预定义的监控项/触发器/图形/发现规则集合,可复用继承 | Linux by Zabbix agent |
| 监控项 (Item) | 最小采集单元,由 Key 决定采什么 | system.cpu.util[,idle]、vfs.fs.size[/,pfree] |
| 触发器 (Trigger) | 基于监控项数据的判断表达式,OK ↔ PROBLEM | last(/host/key)<10 → CPU 空闲 <10% 告警 |
| 动作 (Action) | 触发器状态变化后执行的操作 | 发邮件 / 执行脚本 / 调 Webhook |
| 事件 (Event) | 触发器状态变化产生的运行时记录 | PROBLEM 事件 / 恢复事件 |
| 告警 (Alert) | 事件匹配动作后产生的具体通知 | 一封邮件、一条钉钉消息 |
链条: 模板 → 监控项采集 → 触发器判断 → 事件 → 动作 → 告警通知
六、添加被监控主机(以 Linux 为例)
| 阶段 | 操作 | 关键细节 |
|---|---|---|
| 被控端装 Agent | 装源 → dnf install -y zabbix-agent |
只需 Agent,不需 Server |
| 配置 Agent | 编辑 /etc/zabbix_agentd.conf |
Server=<Server IP>(被动) ServerActive=<Server IP>(主动) Hostname=web-server-01(大小写敏感,必须与 Web 端一致) |
| 启动 & 验证 | systemctl enable --now zabbix-agent → `ss -tlnp |
grep 10050` |
| Web 端创建主机 | 数据采集 → 主机 → 创建主机 | 主机名 = Agent 的 Hostname;链接模板 Linux by Zabbix agent;添加 Agent 接口 IP:10050 |
| 验证连通 | 主机列表 ZBX 图标变 绿色 | 红色 → 检查防火墙 / Agent 状态 / Hostname 拼写 |
| 查看数据 | 主机 → 图形 → CPU / Memory | 模板自带几十个监控项 + 十几个触发器,开箱即用 |
七、关键端口 & 文件速查
| 端口 | 用途 |
|---|---|
| 10051/tcp | Zabbix Server 接收数据 |
| 10050/tcp | Zabbix Agent |
| 80 / 443/tcp | Web 界面 |
| 3306/tcp | MySQL(远程数据库时) |
| 文件 | 用途 |
|---|---|
/etc/zabbix/zabbix_server.conf |
Server 主配置(数据库连接等) |
/etc/zabbix_agentd.conf |
Agent 配置(Server 地址、Hostname) |
/etc/nginx/conf.d/zabbix.conf |
Nginx 虚拟主机配置 |
/etc/php-fpm.d/zabbix.conf |
PHP-FPM 时区等参数 |
/var/log/zabbix/zabbix_server.log |
Server 日志(排错首选) |
/usr/share/zabbix-sql-scripts/mysql/server.sql.gz |
数据库初始化脚本 |
最后一句话总结: 装源 → 装包 → 建库导表 → 改配置 → 起服务 → Web 初始化 → 链接模板加主机,八步走完 Zabbix 7.0 LTS 即可投入生产。