2025 最新:Ubuntu 22.04 搭建 Zabbix Server 完整指南(Apache+MariaDB+PHP 配置)

2025 最新:Ubuntu 22.04 搭建 Zabbix Server 完整指南(Apache+MariaDB+PHP 配置)
28.7的博客在 Ubuntu 22.04 (Jammy Jellyfish) 安装 Zabbix Server
中文方法
一、Zabbix 介绍
Zabbix 是一款开源的企业级IT基础设施监控系统,由拉脱维亚公司 Zabbix SIA 开发并维护。其核心目标是实时监控服务器、网络设备、应用程序等IT资源的运行状态,采集关键性能指标(KPI),并在异常发生时触发告警,帮助运维团队快速定位和解决问题,最终保障业务系统的稳定性与可用性。
1.1 核心功能
Zabbix 的功能覆盖监控全流程,从数据采集到告警响应,再到可视化分析,满足企业级监控需求:
(1)全面的监控范围
支持对IT基础设施各层级的监控,包括但不限于:
- 硬件设备:服务器(CPU、内存、磁盘IO、网卡流量)、路由器、交换机、防火墙、存储设备等。
- 软件系统:操作系统(Linux、Windows、macOS、Solaris 等)、数据库(MySQL、PostgreSQL、Oracle、MongoDB 等)、中间件(Tomcat、Nginx、Apache、Redis、RabbitMQ 等)。
- 应用程序:通过自定义脚本或API监控业务系统(如电商订单接口、支付系统响应时间)。
- 云环境与容器:支持 AWS、Azure、阿里云等公有云资源监控,以及 Docker、Kubernetes 容器集群监控。
(2)灵活的数据采集方式
Zabbix 提供多种数据采集机制,适配不同监控场景:
- Zabbix Agent:轻量级客户端程序,部署在被监控主机上,主动/被动采集系统资源(如CPU使用率、磁盘空间),性能开销极低。
- SNMP:通过简单网络管理协议(SNMP)监控网络设备(如路由器端口流量、交换机端口状态),支持 SNMP v1/v2c/v3。
- JMX:监控 Java 应用程序(如 Tomcat、JBoss),采集 JVM 内存、线程、GC 等指标。
- ICMP/Ping:通过 Ping 检测主机存活状态,支持丢包率、延迟等网络质量指标采集。
- 自定义采集:支持通过 Shell/Python/Perl 脚本、HTTP API、数据库查询(SQL)等方式采集自定义指标。
- 主动与被动模式:Agent 可被动等待 Server 拉取数据,也可主动向 Server/Proxy 推送数据,适应大规模监控场景。
(3)智能告警机制
告警是监控的核心目标之一,Zabbix 提供精细化的告警配置:
- 多维度触发条件:基于采集的指标设置阈值(如“CPU使用率连续5分钟超过90%”“磁盘空间不足10%”),支持组合条件(如“内存使用率>85% 且 交换分区使用率>50%”)。
- 丰富的告警渠道:支持邮件、短信、微信、钉钉、Slack、Telegram 等,可通过脚本集成企业内部消息系统(如企业微信机器人)。
- 告警升级策略:若告警未被及时处理,可自动升级至更高层级的运维人员(如“10分钟未处理,通知团队负责人”)。
- 告警抑制与聚合:避免“告警风暴”(如某交换机故障导致下属所有主机离线,仅触发“交换机故障”告警,抑制所有主机离线告警),支持按业务分组聚合告警。
(4)可视化与报表分析
Zabbix 提供直观的监控数据展示与历史分析能力:
- 仪表盘(Dashboard):支持自定义仪表盘,通过图表(折线图、柱状图、饼图、地图)展示关键指标,支持多屏幕切换。
- 监控图形:实时绘制指标趋势图,支持对比多个指标(如“Web服务器1和Web服务器2的CPU使用率对比”),可查看历史数据(默认保留90天,可自定义保留周期)。
- 报表功能:自动生成可用性报表、性能报表、告警统计报表,支持导出为 PDF/CSV 格式,用于运维复盘或管理层汇报。
- 拓扑图:可视化展示IT架构拓扑(如“路由器→交换机→服务器”的连接关系),并标注设备状态(正常/异常/离线),直观定位故障节点。
(5)自动发现与自动注册
针对大规模环境,Zabbix 支持自动化监控配置,减少人工操作:
- 网络自动发现:通过 IP 段扫描,自动发现网络中的主机、设备,并根据预定义规则(如操作系统类型、端口开放情况)自动关联监控模板。
- Agent 自动注册:新部署的 Agent 可主动向 Zabbix Server 注册,Server 自动为其分配监控模板,实现“即插即监控”。
(6)分布式监控(Proxy 架构)
为解决大规模监控(如跨地域、上千台主机)的性能瓶颈,Zabbix 支持分布式架构:
- Zabbix Proxy:部署在远程区域或子网络中,承担“本地数据采集+临时存储”的角色,定期将汇总数据同步至 Zabbix Server,减轻 Server 压力,降低跨地域网络带宽消耗。
- 多 Proxy 支持:可部署多个 Proxy,分别管理不同区域/业务线的监控节点,实现监控负载均衡。
1.2 Zabbix 系统架构
Zabbix 采用模块化架构,各组件分工明确,协同工作,核心组件如下表所示:
| 组件名称 | 核心作用 |
|---|---|
| Zabbix Server | 系统核心,负责接收 Agent/Proxy 发送的监控数据、处理告警逻辑、存储数据、提供API接口。 |
| Zabbix Agent | 部署在被监控主机上,采集系统资源/应用指标,与 Server/Proxy 通信(主动/被动模式)。 |
| Zabbix Proxy | 分布式监控节点,代理 Server 采集本地数据,减轻 Server 压力,降低跨网络带宽消耗。 |
| 数据库(Database) | 存储监控数据(历史指标、告警记录、配置信息),支持 MySQL、PostgreSQL、Oracle 等。 |
| Zabbix Web 前端 | 基于 PHP 开发的 Web 界面,提供监控配置、数据可视化、告警查看、报表导出等功能。 |
| Zabbix Java Gateway | 可选组件,用于通过 JMX 协议监控 Java 应用程序(如 Tomcat、JVM),转发 JMX 请求。 |
| Zabbix Sender/Getter | 命令行工具,Sender 用于主动推送自定义数据到 Server/Proxy,Getter 用于测试数据采集。 |
1.3 Zabbix 的主要优势
- 开源免费:基于 GPL v2 协议开源,无商业授权费用,企业可自由部署、二次开发,降低监控成本。
- 功能全面:覆盖“采集-存储-分析-告警-可视化”全流程,无需集成多个工具即可满足复杂监控需求。
- 高扩展性:支持监控上万台主机/设备,通过 Proxy 实现分布式部署,适配从小型企业到大型集团的监控场景。
- 跨平台支持:兼容主流操作系统(Linux/Windows/Unix)、数据库、云平台,对异构IT环境的适配性强。
- 活跃的社区支持:全球有大量用户和开发者,官方文档完善,社区提供丰富的监控模板(如 Nginx、MySQL 模板)和问题解决方案。
- 自定义能力强:支持自定义监控指标、告警规则、仪表盘,可通过脚本/API集成第三方系统(如运维自动化平台、CMDB)。
1.4 适用场景
Zabbix 适用于各类需要对IT基础设施进行稳定监控的场景,尤其适合:
- 中小企业:无需付费即可搭建全栈监控系统,覆盖服务器、网络、应用的核心监控需求。
- 大型企业/集团:通过分布式 Proxy 架构,实现跨地域、跨业务线的统一监控,集中管理所有IT资源。
- 运维团队:需要实时掌握系统状态、快速响应故障,减少业务中断时间(如电商、金融、医疗等对可用性要求高的行业)。
- 混合IT环境:同时存在物理机、虚拟机、云资源、容器的场景,Zabbix 可统一监控所有资源,避免监控工具碎片化。
1.5 使用注意事项
- 部署门槛:相比轻量级监控工具(如 Prometheus+Grafana),Zabbix 配置稍复杂,需要了解其架构和模板机制,新手需一定学习成本。
- 数据库性能:监控数据(尤其是历史指标)会持续占用数据库空间,需定期清理历史数据或采用分区表优化,避免数据库成为性能瓶颈。
- Agent 依赖:监控主机需部署 Agent(除 Ping/SNMP 监控外),对于无法部署 Agent 的设备(如部分老旧网络设备),需依赖 SNMP 或其他协议。
- 版本选择:建议使用官方长期支持(LTS)版本(如 Zabbix 6.0 LTS、7.0 LTS),获得更稳定的功能和安全更新,避免使用非LTS版本的兼容性问题。
二、Zabbix Server 安装部署(Ubuntu 22.04)
本次部署环境选择 **Ubuntu 22.04 (Jammy Jellyfish)**,采用以下组件组合:
- Web 服务:Apache
- 数据库:MariaDB(轻量、兼容 MySQL)
- 脚本语言:PHP(含必要扩展)
- Zabbix 版本:6.0 LTS(长期支持版,稳定性更高)
2.1 前置准备:更新系统并安装依赖
第1步:更新系统包索引
首先更新 Ubuntu 系统的软件包列表,确保后续安装的组件为最新版本:
1 | sudo apt-get update |
第2步:安装核心依赖组件
Zabbix Server 运行依赖 Web 服务、数据库和 PHP 环境,依次安装以下组件:
- 安装 Apache Web 服务:
1
sudo apt install apache2 -y
- 安装 MariaDB 数据库(服务器+客户端):
1
sudo apt install mariadb-server mariadb-client -y
- 安装 PHP 及 Zabbix 所需扩展(如 MySQL 连接、XML、SNMP 等):
1
2sudo apt install php php-{cgi,common,mbstring,net-socket,gd,xml-util,mysql,bcmath,imap,snmp} -y
sudo apt install libapache2-mod-php -y - 验证 PHP 安装成功(查看版本):若输出类似
1
php -v
PHP 8.1.2-1ubuntu2.14 (cli)的信息,说明 PHP 安装正常。
2.2 配置 Zabbix 官方软件源
Ubuntu 官方源中的 Zabbix 版本可能较旧,建议添加 Zabbix 官方 APT 源以获取最新的 6.0 LTS 版本。
第3步:添加 Zabbix 官方源
- 安装
wget工具(用于下载源配置文件):1
sudo apt install wget -y
- 下载 Zabbix 6.0 LTS 针对 Ubuntu 22.04 的源配置包:
1
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu22.04_all.deb
- 安装源配置包(将 Zabbix 源添加到系统):
1
sudo dpkg -i zabbix-release_*ubuntu22.04_all.deb
- 再次更新系统包索引(使新添加的 Zabbix 源生效):
1
sudo apt update
2.3 安装 Zabbix Server 及相关组件
第4步:安装 Zabbix 核心组件
安装 Zabbix Server(含 MySQL 支持)、Web 前端、Apache 配置、SQL 脚本及 Agent:
1 | sudo apt install vim zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y |
第5步:启用 PHP CGI 配置
Zabbix Web 前端依赖 PHP CGI 模块,需手动启用:
1 | sudo a2enconf php8.*-cgi |
(注:php8.* 会自动匹配系统安装的 PHP 8.x 版本,如 php8.1-cgi)
2.4 配置 MariaDB 数据库(为 Zabbix 准备)
Zabbix Server 需要数据库存储监控数据(配置信息、历史指标、告警记录等),需创建专用数据库和用户。
第6步:登录 MariaDB 并创建 Zabbix 数据库
以
root身份登录 MariaDB 命令行:1
sudo mysql -u root -p
(首次登录默认无密码,直接按 Enter 即可;若已设置密码,输入密码后回车)
执行 SQL 命令创建数据库和用户:
1
2
3
4
5
6
7
8-- 创建数据库(字符集 utf8,排序规则 utf8_bin)
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
-- 创建用户 zabbix(本地访问),并设置密码(替换为实际强密码)
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'localhost' IDENTIFIED BY 'StrongDBPassw0rd';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出数据库
QUIT;⚠️ 注意:请将
StrongDBPassw0rd替换为实际的强密码(含大小写、数字、特殊字符),避免使用默认密码!
第7步:导入 Zabbix 初始数据库脚本
Zabbix 提供了预定义的数据库表结构和初始数据,需导入到刚创建的 zabbix 数据库中:
1 | # 从官方脚本导入数据(需输入前面设置的 Zabbix 数据库密码) |
执行后输入步骤6中设置的 StrongDBPassw0rd,等待脚本执行完成(无报错即成功)。
2.5 配置 Zabbix Server 连接数据库
第8步:修改 Zabbix Server 配置文件
编辑 Zabbix Server 主配置文件 /etc/zabbix/zabbix_server.conf,添加数据库连接信息:
1 | sudo vim /etc/zabbix/zabbix_server.conf |
找到以下配置项(约130行附近),修改为实际的数据库信息:
1 | # 数据库名称(与步骤6创建的一致) |
修改完成后,按 Esc,输入 :wq 保存并退出 Vim。
2.6 启动并验证 Zabbix 相关服务
第9步:重启服务并设置开机自启
重启 Zabbix Server、Zabbix Agent 和 Apache 服务,使配置生效:
1
sudo systemctl restart zabbix-server zabbix-agent apache2
(无报错输出即表示重启正常)
设置服务开机自启(避免系统重启后服务失效):
1
sudo systemctl enable zabbix-server zabbix-agent apache2
第10步:检查服务运行状态
执行以下命令,确认所有核心服务均处于 active (running) 状态:
1 | systemctl status zabbix-server zabbix-agent apache2 |
若服务状态异常,可通过 journalctl -u zabbix-server 查看日志排查问题(如数据库密码错误、权限不足等)。
2.7 访问 Zabbix Web 前端并完成配置
Zabbix 提供 Web 界面用于可视化配置和监控,通过浏览器访问并完成初始化。
第11步:访问 Zabbix Web UI
在浏览器中输入以下 URL(替换 ServerIP 为 Zabbix Server 的实际IP地址,如 192.168.1.100):
1 | http://ServerIP/zabbix/ |
首次访问将进入 Zabbix 安装向导页面:
点击 Next step 进入环境检查页面,确保所有检查项均为 OK(无红色错误):
第12步:配置数据库连接(Web 界面)
在“Configure DB connection”页面,输入数据库信息(与步骤6、8一致):
- Database type:选择
MySQL - Database host:默认
localhost(若数据库与 Server 分离,输入数据库IP) - Database port:默认
3306(MariaDB 默认端口) - Database name:
zabbix - User:
zabbix - Password:输入步骤6设置的
StrongDBPassw0rd
点击 Next step 继续:
第13步:配置 Zabbix Server 名称与外观
在“Zabbix server details”页面,可自定义:
- Hostname:Zabbix Server 名称(如
Zabbix-Server-01,便于识别) - Timezone:选择实际时区(如
Asia/Shanghai,确保时间同步) - Theme:界面主题(默认即可,后续可在设置中修改)
点击 Next step 进入配置摘要页面:
第14步:完成安装并登录
在配置摘要页面确认信息无误后,点击 Next step,将显示“Congratulations! You have successfully installed Zabbix frontend.”,表示 Web 配置完成:
点击 Finish 进入登录页面,使用 Zabbix 默认管理员账户登录:
- Username:
Admin(首字母大写) - Password:
zabbix(默认密码,建议登录后立即修改)
三、后续建议
- 修改管理员密码:登录后,点击右上角
Admin→Change password,设置强密码,避免默认密码泄露。 - 配置监控目标:
- 若监控本地 Zabbix Server:默认已添加
Zabbix server主机,可直接查看其监控数据。 - 若监控其他主机:需在目标主机上安装
zabbix-agent,并在 Web 界面添加主机、关联监控模板(如Template OS Linux)。
- 若监控本地 Zabbix Server:默认已添加
- 优化数据库:定期清理 Zabbix 历史数据(通过 Web 界面
Administration→General→Housekeeping配置),避免数据库过大。 - 配置告警媒介:在
Administration→Media types中添加告警渠道(如邮件、钉钉),确保异常时能及时通知运维人员。
至此,Ubuntu 22.04 上的 Zabbix Server 6.0 LTS 单节点安装已全部完成,可开始基于 Web 界面进行监控配置与使用。











