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

在 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 的主要优势

  1. 开源免费:基于 GPL v2 协议开源,无商业授权费用,企业可自由部署、二次开发,降低监控成本。
  2. 功能全面:覆盖“采集-存储-分析-告警-可视化”全流程,无需集成多个工具即可满足复杂监控需求。
  3. 高扩展性:支持监控上万台主机/设备,通过 Proxy 实现分布式部署,适配从小型企业到大型集团的监控场景。
  4. 跨平台支持:兼容主流操作系统(Linux/Windows/Unix)、数据库、云平台,对异构IT环境的适配性强。
  5. 活跃的社区支持:全球有大量用户和开发者,官方文档完善,社区提供丰富的监控模板(如 Nginx、MySQL 模板)和问题解决方案。
  6. 自定义能力强:支持自定义监控指标、告警规则、仪表盘,可通过脚本/API集成第三方系统(如运维自动化平台、CMDB)。

1.4 适用场景

Zabbix 适用于各类需要对IT基础设施进行稳定监控的场景,尤其适合:

  • 中小企业:无需付费即可搭建全栈监控系统,覆盖服务器、网络、应用的核心监控需求。
  • 大型企业/集团:通过分布式 Proxy 架构,实现跨地域、跨业务线的统一监控,集中管理所有IT资源。
  • 运维团队:需要实时掌握系统状态、快速响应故障,减少业务中断时间(如电商、金融、医疗等对可用性要求高的行业)。
  • 混合IT环境:同时存在物理机、虚拟机、云资源、容器的场景,Zabbix 可统一监控所有资源,避免监控工具碎片化。

1.5 使用注意事项

  1. 部署门槛:相比轻量级监控工具(如 Prometheus+Grafana),Zabbix 配置稍复杂,需要了解其架构和模板机制,新手需一定学习成本。
  2. 数据库性能:监控数据(尤其是历史指标)会持续占用数据库空间,需定期清理历史数据或采用分区表优化,避免数据库成为性能瓶颈。
  3. Agent 依赖:监控主机需部署 Agent(除 Ping/SNMP 监控外),对于无法部署 Agent 的设备(如部分老旧网络设备),需依赖 SNMP 或其他协议。
  4. 版本选择:建议使用官方长期支持(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

图1:更新Ubuntu系统包索引

第2步:安装核心依赖组件

Zabbix Server 运行依赖 Web 服务、数据库和 PHP 环境,依次安装以下组件:

  1. 安装 Apache Web 服务:
    1
    sudo apt install apache2 -y
  2. 安装 MariaDB 数据库(服务器+客户端):
    1
    sudo apt install mariadb-server mariadb-client -y
  3. 安装 PHP 及 Zabbix 所需扩展(如 MySQL 连接、XML、SNMP 等):
    1
    2
    sudo apt install php php-{cgi,common,mbstring,net-socket,gd,xml-util,mysql,bcmath,imap,snmp} -y
    sudo apt install libapache2-mod-php -y
  4. 验证 PHP 安装成功(查看版本):
    1
    php -v
    若输出类似 PHP 8.1.2-1ubuntu2.14 (cli) 的信息,说明 PHP 安装正常。

2.2 配置 Zabbix 官方软件源

Ubuntu 官方源中的 Zabbix 版本可能较旧,建议添加 Zabbix 官方 APT 源以获取最新的 6.0 LTS 版本。

第3步:添加 Zabbix 官方源

  1. 安装 wget 工具(用于下载源配置文件):
    1
    sudo apt install wget -y
  2. 下载 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
    图2:下载Zabbix官方源配置包
  3. 安装源配置包(将 Zabbix 源添加到系统):
    1
    sudo dpkg -i zabbix-release_*ubuntu22.04_all.deb
  4. 再次更新系统包索引(使新添加的 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

图3:安装Zabbix核心组件

第5步:启用 PHP CGI 配置

Zabbix Web 前端依赖 PHP CGI 模块,需手动启用:

1
sudo a2enconf php8.*-cgi

(注:php8.* 会自动匹配系统安装的 PHP 8.x 版本,如 php8.1-cgi
图4:启用PHP CGI配置

2.4 配置 MariaDB 数据库(为 Zabbix 准备)

Zabbix Server 需要数据库存储监控数据(配置信息、历史指标、告警记录等),需创建专用数据库和用户。

第6步:登录 MariaDB 并创建 Zabbix 数据库

  1. root 身份登录 MariaDB 命令行:

    1
    sudo mysql -u root -p

    (首次登录默认无密码,直接按 Enter 即可;若已设置密码,输入密码后回车)
    图5:登录MariaDB数据库

  2. 执行 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 替换为实际的强密码(含大小写、数字、特殊字符),避免使用默认密码!
    图6:创建Zabbix数据库和用户

第7步:导入 Zabbix 初始数据库脚本

Zabbix 提供了预定义的数据库表结构和初始数据,需导入到刚创建的 zabbix 数据库中:

1
2
# 从官方脚本导入数据(需输入前面设置的 Zabbix 数据库密码)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -D zabbix -p

执行后输入步骤6中设置的 StrongDBPassw0rd,等待脚本执行完成(无报错即成功)。
图7:导入Zabbix初始数据库脚本

2.5 配置 Zabbix Server 连接数据库

第8步:修改 Zabbix Server 配置文件

编辑 Zabbix Server 主配置文件 /etc/zabbix/zabbix_server.conf,添加数据库连接信息:

1
sudo vim /etc/zabbix/zabbix_server.conf

找到以下配置项(约130行附近),修改为实际的数据库信息:

1
2
3
4
5
6
# 数据库名称(与步骤6创建的一致)
DBName=zabbix
# 数据库用户(与步骤6创建的一致)
DBUser=zabbix
# 数据库密码(与步骤6设置的一致)
DBPassword=StrongDBPassw0rd

图8:配置Zabbix Server数据库连接

修改完成后,按 Esc,输入 :wq 保存并退出 Vim。

2.6 启动并验证 Zabbix 相关服务

第9步:重启服务并设置开机自启

  1. 重启 Zabbix Server、Zabbix Agent 和 Apache 服务,使配置生效:

    1
    sudo systemctl restart zabbix-server zabbix-agent apache2

    (无报错输出即表示重启正常)

  2. 设置服务开机自启(避免系统重启后服务失效):

    1
    sudo systemctl enable zabbix-server zabbix-agent apache2

第10步:检查服务运行状态

执行以下命令,确认所有核心服务均处于 active (running) 状态:

1
systemctl status zabbix-server zabbix-agent apache2

图9:检查Zabbix相关服务状态

若服务状态异常,可通过 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 安装向导页面:
图10:Zabbix Web安装向导首页

点击 Next step 进入环境检查页面,确保所有检查项均为 OK(无红色错误):
图11:Zabbix环境检查页面

第12步:配置数据库连接(Web 界面)

在“Configure DB connection”页面,输入数据库信息(与步骤6、8一致):

  • Database type:选择 MySQL
  • Database host:默认 localhost(若数据库与 Server 分离,输入数据库IP)
  • Database port:默认 3306(MariaDB 默认端口)
  • Database namezabbix
  • Userzabbix
  • Password:输入步骤6设置的 StrongDBPassw0rd

点击 Next step 继续:
图12:Web界面配置数据库连接

第13步:配置 Zabbix Server 名称与外观

在“Zabbix server details”页面,可自定义:

  • Hostname:Zabbix Server 名称(如 Zabbix-Server-01,便于识别)
  • Timezone:选择实际时区(如 Asia/Shanghai,确保时间同步)
  • Theme:界面主题(默认即可,后续可在设置中修改)

点击 Next step 进入配置摘要页面:
图13:配置Zabbix Server名称与时区

第14步:完成安装并登录

在配置摘要页面确认信息无误后,点击 Next step,将显示“Congratulations! You have successfully installed Zabbix frontend.”,表示 Web 配置完成:
图14:Zabbix Web安装完成页面

点击 Finish 进入登录页面,使用 Zabbix 默认管理员账户登录:

  • UsernameAdmin(首字母大写)
  • Passwordzabbix(默认密码,建议登录后立即修改)

图15:Zabbix Web登录页面

三、后续建议

  1. 修改管理员密码:登录后,点击右上角 AdminChange password,设置强密码,避免默认密码泄露。
  2. 配置监控目标
    • 若监控本地 Zabbix Server:默认已添加 Zabbix server 主机,可直接查看其监控数据。
    • 若监控其他主机:需在目标主机上安装 zabbix-agent,并在 Web 界面添加主机、关联监控模板(如 Template OS Linux)。
  3. 优化数据库:定期清理 Zabbix 历史数据(通过 Web 界面 AdministrationGeneralHousekeeping 配置),避免数据库过大。
  4. 配置告警媒介:在 AdministrationMedia types 中添加告警渠道(如邮件、钉钉),确保异常时能及时通知运维人员。

至此,Ubuntu 22.04 上的 Zabbix Server 6.0 LTS 单节点安装已全部完成,可开始基于 Web 界面进行监控配置与使用。