目录
[1.1 监控的五大核心类型](#1.1 监控的五大核心类型)
[1.2 监控的五层逻辑架构](#1.2 监控的五层逻辑架构)
[2.1 监控系统的核心模块](#2.1 监控系统的核心模块)
[2.2 数据采集协议分类](#2.2 数据采集协议分类)
[2.3 数据采集模式](#2.3 数据采集模式)
[2.4 分布式代理架构](#2.4 分布式代理架构)
[3.1 Zabbix](#3.1 Zabbix)
[3.2 Prometheus+Grafana](#3.2 Prometheus+Grafana)
[3.3 Nagios](#3.3 Nagios)
[3.4 Cacti](#3.4 Cacti)
[3.5 其他工具](#3.5 其他工具)
[四、Zabbix 系统深度解析](#四、Zabbix 系统深度解析)
[4.1 Zabbix 简介](#4.1 Zabbix 简介)
[4.2 Zabbix 核心功能特性](#4.2 Zabbix 核心功能特性)
[4.3 Zabbix 架构组件](#4.3 Zabbix 架构组件)
[(1)Zabbix Server](#(1)Zabbix Server)
[(2)Zabbix Agent](#(2)Zabbix Agent)
[(3)Zabbix Proxy](#(3)Zabbix Proxy)
[(4)Zabbix Web](#(4)Zabbix Web)
[五、Zabbix 企业级部署实战(基于 openEuler 24.03)](#五、Zabbix 企业级部署实战(基于 openEuler 24.03))
[5.1 环境准备](#5.1 环境准备)
[① 关闭防火墙](#① 关闭防火墙)
[② 关闭 SELinux](#② 关闭 SELinux)
[③ 时间同步](#③ 时间同步)
[④ 修改主机名](#④ 修改主机名)
[⑤ 配置 hosts 解析](#⑤ 配置 hosts 解析)
[5.2 部署 Zabbix Server](#5.2 部署 Zabbix Server)
[(1)添加 Zabbix 官方源](#(1)添加 Zabbix 官方源)
[(3)配置 MySQL 数据库](#(3)配置 MySQL 数据库)
[① 启动 MySQL 并设置开机自启](#① 启动 MySQL 并设置开机自启)
[② 初始化数据库配置](#② 初始化数据库配置)
[(4)导入 Zabbix 初始化数据](#(4)导入 Zabbix 初始化数据)
[(5)配置 Zabbix Server](#(5)配置 Zabbix Server)
[(6)配置 Web 界面(Nginx)](#(6)配置 Web 界面(Nginx))
[5.3 Zabbix Web 界面初始化配置](#5.3 Zabbix Web 界面初始化配置)
[(1)访问 Web 界面](#(1)访问 Web 界面)
[① 欢迎页面](#① 欢迎页面)
[② 环境检查](#② 环境检查)
[③ 数据库配置](#③ 数据库配置)
[④ Server 设置](#④ Server 设置)
[⑤ 安装汇总](#⑤ 安装汇总)
[⑥ 登录界面](#⑥ 登录界面)
[5.4 部署 Zabbix Proxy](#5.4 部署 Zabbix Proxy)
[(1)添加 Zabbix 源(同 Server 节点)](#(1)添加 Zabbix 源(同 Server 节点))
[(2)安装 Proxy 组件](#(2)安装 Proxy 组件)
[(3)导入 Proxy 数据库初始化数据](#(3)导入 Proxy 数据库初始化数据)
[(4)配置 Zabbix Proxy](#(4)配置 Zabbix Proxy)
[(5)启动 Proxy 服务](#(5)启动 Proxy 服务)
[(6)在 Web 界面添加 Proxy](#(6)在 Web 界面添加 Proxy)
[5.5 部署 Zabbix Agent(被监控节点)](#5.5 部署 Zabbix Agent(被监控节点))
[(1)添加 Zabbix 源](#(1)添加 Zabbix 源)
[(2)安装 Zabbix Agent](#(2)安装 Zabbix Agent)
[(3)配置 Agent](#(3)配置 Agent)
[(4)启动 Agent 服务](#(4)启动 Agent 服务)
[(5)在 Web 界面添加被监控主机](#(5)在 Web 界面添加被监控主机)
一、zabbix监控系统
1.1 监控的五大核心类型
- 应用性能监控:聚焦应用程序的响应时间、吞吐量、错误率等指标,如 API 接口调用延迟、JVM 内存占用等
- 业务交易监控:跟踪核心业务流程的完成情况,如电商平台的下单转化率、支付成功率
- 网络性能监控:监测网络设备的带宽利用率、丢包率、延迟等指标,保障数据传输通畅
- 操作系统监控:覆盖服务器的 CPU、内存、磁盘 I/O 等基础资源状态
- 数据库监控:关注数据库连接数、慢查询、锁等待等关键指标
1.2 监控的五层逻辑架构
从逻辑层次划分,监控可分为由下至上的五个层级,形成完整的监控体系:
(1)基础设施监控
基础设施监控是整个监控体系的基石,主要面向网络设备(交换机、路由器、防火墙)、物理机房环境(温度、湿度、电源)等底层设施。核心监控指标包括:
- 网络接口流量(流入 / 流出速率、总带宽利用率)
- 网络质量(丢包率、错包率、平均延迟)
- 设备状态(端口 UP/DOWN、CPU 负载、内存使用率)
这类监控通常由运维团队负责,直接影响上层服务的稳定性。例如,核心交换机端口故障可能导致整个业务网段瘫痪,因此需配置实时告警。
(2)系统层监控
系统层监控覆盖物理机、虚拟机及操作系统,是最基础也是应用最广泛的监控类型。主要监控指标包括:
- CPU:使用率、负载均衡指数(1 分钟 / 5 分钟 / 15 分钟)、上下文切换频率
- 内存:总容量、已使用 / 空闲 / 缓存内存占比、Swap 交换分区使用率
- 磁盘:分区使用率、I/O 吞吐量(读 / 写速度)、IOPS、磁盘队列长度
- 网络:网卡流量、连接数(ESTABLISHED/TIME_WAIT 状态占比)
(3)应用层监控
应用层监控与业务服务紧密相关,需结合具体应用类型定制监控方案。典型监控对象包括:
- Web 服务:HTTP 响应码(4xx/5xx 错误占比)、页面加载时间、并发请求数
- 中间件:Tomcat/Jetty 的线程池状态、连接池利用率、JVM 垃圾回收频率
- 数据库:SQL 执行效率(慢查询数量)、事务提交 / 回滚率、锁等待时间
- 缓存系统:Redis/Memcached 的命中率、内存碎片率、键过期数量
(4)业务监控
业务监控聚焦核心业务流程,直接反映业务运营状态,是企业管理层最关注的监控维度。以电商平台为例,关键监控指标包括:
- 用户行为:注册量、登录次数、活跃用户数
- 交易流程:商品浏览量(PV/UV)、加入购物车次数、下单量、支付成功率
- 业务转化:各环节转化率(浏览→下单→支付)、客单价、复购率
业务监控数据通常通过埋点采集,可直观展示业务健康度,为运营决策提供依据。
(5)端用户体验监控
端用户体验监控从最终用户视角出发,跟踪应用在用户侧的实际表现。核心监控内容包括:
- 页面加载性能(首屏加载时间、DOM 渲染完成时间)
- 终端错误信息(JS 报错、资源加载失败)
- 地域与运营商差异(不同地区 / 运营商的访问延迟)
- 终端环境(浏览器版本、操作系统、设备类型)
通过这类监控,可及时发现特定用户群体面临的体验问题,例如某地区联通用户访问缓慢。
二、监控系统的技术原理
2.1 监控系统的核心模块
任何监控系统都离不开两大核心模块,共同构成数据处理闭环:
- 数据采集层:通过 Agent、探针或协议对接方式收集监控指标
- 数据处理层:包括数据存储(数据库)、分析引擎(指标计算)、告警系统(阈值判断)、可视化展示(图表界面)
2.2 数据采集协议分类
监控系统的数据采集协议可分为私有协议和公有协议两类:
协议类型 | 典型实现 | 适用场景 |
---|---|---|
私有协议 | Zabbix Agent、Prometheus Exporter | 深度定制化监控,需安装专用客户端 |
公有协议 | SNMP、IPMI、SSH、Telnet | 通用设备监控(如网络设备、服务器),无需安装客户端 |
- SNMP(简单网络管理协议):广泛用于网络设备监控,通过 OID 标识具体监控项,支持 v1/v2c/v3 三个版本(v3 支持加密认证)
- IPMI(智能平台管理接口):用于监控服务器硬件状态(如风扇转速、温度、电源状态),无需依赖操作系统
- SSH/Telnet:通过远程命令执行获取监控数据,适合无 Agent 场景
2.3 数据采集模式
监控系统的数据采集分为两种模式,各有适用场景:
(1)被动模式
- 工作原理:监控服务器主动向被监控端发起请求,获取监控数据
- 优势:架构简单,服务器端可集中控制采集频率
- 劣势:服务器压力随被监控节点增加而线性增长,不适合大规模集群
- 适用场景:小规模环境(节点数 < 100),如小型机房
(2)主动模式
- 工作原理:被监控端主动向服务器上报监控数据,无需服务器轮询
- 优势:降低服务器压力,支持大规模监控
- 劣势:需在被监控端配置上报策略,管理相对复杂
- 适用场景:大型分布式环境(节点数 > 100),如云计算平台
2.4 分布式代理架构
在超大规模监控场景(如上万节点),单靠主动模式仍难以应对,需引入代理架构(C/S/P 架构:Client/Proxy/Server):
- Agent(客户端):部署在被监控节点,负责采集本地数据
- Proxy(代理服务器):汇总区域内 Agent 的数据,进行初步处理后转发给 Server
- Server(服务器):集中存储、分析所有 Proxy 转发的数据
代理架构的优势:
- 减轻 Server 压力,实现负载分担
- 支持跨网段监控(如多机房场景)
- 减少网络流量(Proxy 可本地聚合数据)
三、主流开源监控系统对比
目前开源监控工具种类繁多,各具特色,选择时需结合业务需求:
3.1 Zabbix
- 特点:企业级分布式监控解决方案,支持多维度监控(服务器、网络、应用),提供完善的告警机制和可视化能力
- 优势 :
- 支持多种采集方式(Agent、SNMP、IPMI 等)
- 强大的触发器(trigger)机制,支持复杂阈值判断
- 完善的 Web 管理界面,配置操作简单
- 支持分布式部署,适合大规模环境
- 劣势 :
- 自定义监控项配置较复杂
- 高并发场景下数据库压力较大
- 适用场景:中大型企业的全方位监控需求,尤其适合混合环境(物理机 + 虚拟机 + 容器)
3.2 Prometheus+Grafana
- 特点:云原生监控的事实标准,时序数据库 + 可视化面板的组合方案
- 优势 :
- 适合容器化环境(K8s 原生集成)
- 强大的 PromQL 查询语言,支持复杂指标计算
- 轻量化架构,部署简单
- 劣势 :
- 告警配置相对复杂
- 长期数据存储需要对接第三方存储(如 Thanos)
- 适用场景:云原生环境、微服务架构监控
3.3 Nagios
- 特点:老牌监控工具,以插件化架构著称
- 优势 :
- 插件生态丰富,支持自定义开发
- 资源占用低,适合老旧服务器
- 劣势 :
- 界面简陋,需配合第三方工具(如 PNP4Nagios)实现可视化
- 配置复杂,学习成本高
- 适用场景:传统服务器监控,对界面要求不高的场景
3.4 Cacti
- 特点:专注于网络流量监控,基于 RRDTool 绘图
- 优势 :
- 网络流量图表展示能力强
- 支持用户权限精细化管理
- 劣势 :
- 功能单一,扩展性弱
- 适用场景:中小型网络环境的流量监控
3.5 其他工具
- Netdata:实时性能监控工具,支持秒级数据采集,适合问题排查
- LibreNMS:网络设备监控专用,支持自动发现网络拓扑
- Checkmk:高可扩展性,支持服务器、网络、数据库等全方位监控
四、Zabbix 系统深度解析
4.1 Zabbix 简介
Zabbix 是一款企业级开源监控解决方案,由 Alexei Vladishev 创建,目前由 Zabbix SIA 公司主导开发。其核心优势包括:
- 支持跨平台部署(Linux、Windows、AIX、Solaris 等)
- 采用 GPL v2 开源协议,免费使用且源代码可定制
- 提供 Web 可视化界面,支持多语言(包括中文)
- 既能监控小规模环境(几台服务器),也能通过 Proxy 架构支持上万节点的分布式监控
4.2 Zabbix 核心功能特性
Zabbix 的功能覆盖监控全流程,主要特性包括:
(1)数据收集
- 支持可用性及性能指标采集
- 兼容多种协议:SNMP(trap/poll)、IPMI、JMX、SSH 等
- 支持自定义监控项(通过脚本 / API 实现)
- 可配置采集间隔(从秒级到天级)
- 三种核心角色:Server(主服务器)、Proxy(代理服务器)、Agent(客户端)
(2)阈值管理与告警
- 触发器(Trigger)机制:基于表达式定义阈值,支持多条件组合
- 告警升级(Escalation):可配置告警接收者的顺序和间隔
- 告警方式:支持邮件、短信、钉钉、企业微信等多种渠道
- 宏变量(Macro):告警信息中可嵌入动态变量(如主机名、监控值)
- 自动动作(Action):支持触发远程命令(如自动重启服务)
(3)可视化与报表
- 实时绘图:内置图表引擎,支持折线图、柱状图、饼图等
- 网络拓扑图:直观展示设备连接关系及状态
- 自定义仪表盘:可组合多个监控图表,支持幻灯片展示
- 报表功能:支持周期性生成 PDF 报表(如周报 / 月报)
(4)配置管理
- 模板(Template)机制:可预定义监控项、触发器、图表,实现快速部署
- 模板继承:子模板可继承父模板的配置,减少重复工作
- 自动发现:支持网络设备、文件系统、网卡等资源的自动识别
- Agent 自动注册:新节点可自动上报至 Server,简化大规模部署
(5)扩展性
- Zabbix API:提供 RESTful 接口,支持与第三方系统集成(如 CMDB、工单系统)
- 权限管理:基于角色的访问控制(RBAC),支持精细化权限分配
- 二进制守护进程:C 语言开发,性能高效且内存占用低
4.3 Zabbix 架构组件
Zabbix 采用分布式架构,主要由以下组件构成:
(1)Zabbix Server
Zabbix Server 是整个系统的核心,负责:
- 接收 Agent/Proxy 发送的监控数据
- 存储数据至数据库(MySQL、PostgreSQL 等)
- 处理触发器逻辑,判断是否触发告警
- 管理整个监控系统的配置
默认监听 10051 端口,用于接收数据。
(2)Zabbix Agent
部署在被监控节点上的客户端程序,支持主动 / 被动两种模式:
- 被动模式:等待 Server 请求后返回数据(默认端口 10050)
- 主动模式:主动向 Server/Proxy 发送数据
Agent 负责采集本地系统指标(CPU、内存等)和应用数据。
(3)Zabbix Proxy
代理服务器,作为 Server 和 Agent 之间的中间层:
- 减轻 Server 的负载,尤其适合大规模监控
- 支持跨网络监控(如不同网段的节点)
- 本地存储临时数据,断网后可缓存数据
(4)Zabbix Web
基于 PHP 开发的 Web 管理界面,提供:
- 监控配置(主机、模板、触发器等)
- 数据可视化(图表、拓扑图、仪表盘)
- 告警管理(查看告警、手动关闭告警)
- 用户权限控制
通常与 Server 部署在同一台服务器,默认通过 80 端口访问(可自定义)。
(5)数据库
存储监控系统的所有配置数据和历史指标,支持多种数据库:
- MySQL(最常用,社区版免费)
- PostgreSQL(开源,适合大规模部署)
- Oracle(商业数据库,适合企业级环境)
- SQLite(轻量级,适合小规模单机部署)
五、Zabbix 企业级部署实战(基于 openEuler 24.03)
5.1 环境准备
(1)节点规划
本次部署采用分布式架构,包含 1 个 Server 节点、1 个 Proxy 节点、2 个被监控节点,具体配置如下:
节点角色 | 操作系统 | 硬件配置 | 主机名 | IP 地址 |
---|---|---|---|---|
Zabbix Server | openEuler 24.03 | 2C4G | zabbix | 192.168.207.137 |
Zabbix Proxy | openEuler 24.03 | 2C4G | proxy | 192.168.207.138 |
被监控节点 1 | openEuler 24.03 | 2C4G | server01 | 192.168.207.139 |
被监控节点 2 | openEuler 24.03 | 2C4G | server02 | 192.168.207.140 |
(2)基础环境配置(所有节点执行)
① 关闭防火墙
# 停止防火墙服务
systemctl stop firewalld
# 禁止开机自启
systemctl disable firewalld
② 关闭 SELinux
# 临时关闭(立即生效)
setenforce 0
# 永久关闭(重启生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
③ 时间同步
# 设置时区为上海
timedatectl set-timezone Asia/Shanghai
# 安装chrony时间同步工具
dnf install -y chrony
# 启动并设置开机自启
systemctl enable --now chronyd
# 验证同步状态
chronyc sources -v
④ 修改主机名
# 在Zabbix Server节点执行
hostnamectl set-hostname zabbix
# 在Proxy节点执行
hostnamectl set-hostname proxy
# 在被监控节点1执行
hostnamectl set-hostname server01
# 在被监控节点2执行
hostnamectl set-hostname server02
⑤ 配置 hosts 解析
cat >> /etc/hosts << EOF
192.168.207.137 zabbix
192.168.207.138 proxy
192.168.207.139 server01
192.168.207.140 server02
EOF
5.2 部署 Zabbix Server
(1)添加 Zabbix 官方源
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
# 清理缓存
dnf clean all
# 生成缓存
dnf makecache
(2)安装依赖包及组件
Zabbix Server 需要安装的核心组件包括:
- zabbix-server-mysql:Server 主程序(MySQL 支持)
- zabbix-web-mysql:Web 界面(MySQL 支持)
- zabbix-nginx-conf:Nginx 配置文件
- zabbix-sql-scripts:数据库初始化脚本
- zabbix-agent:Server 节点自身也需要安装 Agent
- mysql-server:数据库服务
执行安装命令:
# 安装Zabbix组件
dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
# 安装MySQL 8.0
dnf -y install mysql-server-8.0.41 mysql
# 安装net-snmp依赖(解决监控SNMP设备的依赖问题)
dnf -y install https://www.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm
版本说明:Zabbix 6.4.8 对依赖组件的版本要求如下:
- MySQL:8.0.30-8.1.x
- MariaDB:10.5.0-11.1.x
- Nginx:1.20 或更高版本
- PHP:7.4.0-8.2.x
(3)配置 MySQL 数据库
① 启动 MySQL 并设置开机自启
bash
systemctl enable --now mysqld
# 验证状态
systemctl status mysqld
② 初始化数据库配置
bash
# 登录MySQL(初始无密码,直接回车)
mysql -uroot
# 执行以下SQL语句(逐条执行)
# 设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
# 创建Zabbix主数据库(字符集utf8mb4支持中文)
create database zabbix character set utf8mb4 collate utf8mb4_bin;
# 创建Zabbix用户(本地访问)
create user zabbix@localhost identified by 'zabbix';
# 授权
grant all privileges on zabbix.* to zabbix@localhost;
# 创建Proxy数据库(用于后续Proxy节点存储数据)
create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
# 创建允许远程访问的Zabbix用户(供Proxy节点连接)
create user zabbix@'%' identified by 'zabbix';
# 授权Proxy数据库权限
grant all privileges on zabbix_proxy.* to zabbix@localhost;
grant all privileges on zabbix_proxy.* to zabbix@'%';
# 允许创建存储函数(导入初始化数据需要)
set global log_bin_trust_function_creators=1;
# 退出MySQL
quit;
(4)导入 Zabbix 初始化数据
Zabbix 的数据库初始化脚本位于/usr/share/zabbix-sql-scripts/mysql/server.sql.gz
,执行以下命令导入:
# 导入数据(输入密码zabbix)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
# 导入完成后,关闭存储函数创建权限
mysql -uroot -p
# 输入root密码123456后执行
set global log_bin_trust_function_creators=0;
quit;
(5)配置 Zabbix Server
修改 Zabbix Server 的主配置文件/etc/zabbix/zabbix_server.conf
:
# 编辑配置文件
vim /etc/zabbix/zabbix_server.conf
# 找到以下配置项,取消注释并修改密码
DBPassword=zabbix # 大约在129行
其他核心配置项说明:
DBHost=localhost
:数据库主机(默认本地)DBName=zabbix
:数据库名DBUser=zabbix
:数据库用户ListenPort=10051
:Server 监听端口
(6)配置 Web 界面(Nginx)
Zabbix 的 Web 界面通过 Nginx 提供服务,配置文件为/etc/nginx/conf.d/zabbix.conf
:
vim /etc/nginx/conf.d/zabbix.conf
# 取消以下配置的注释(修改监听端口为8080,避免与其他服务冲突)
listen 8080;
server_name _;
(7)启动服务并设置开机自启
# 重启相关服务
systemctl restart zabbix-server zabbix-agent nginx php-fpm
# 设置开机自启
systemctl enable zabbix-server zabbix-agent nginx php-fpm
# 验证服务状态
systemctl status zabbix-server zabbix-agent nginx php-fpm
5.3 Zabbix Web 界面初始化配置
(1)访问 Web 界面
通过浏览器访问 Zabbix Server 的 IP: 端口(本文为http://192.168.207.137:8080/
)
(2)初始化配置步骤
① 欢迎页面
点击 "Next step" 进入下一步。
② 环境检查
系统会自动检查依赖组件是否满足要求,全部通过后点击 "Next step"。
③ 数据库配置
- Database type:选择 MySQL
- Database host:localhost
- Database port:3306(默认)
- Database name:zabbix
- User:zabbix
- Password:zabbix(之前设置的密码)
点击 "Next step"。
④ Server 设置
- Zabbix server name:可自定义(如 "企业监控系统")
- Default time zone:选择 Asia/Shanghai(上海时区)
点击 "Next step"。
⑤ 安装汇总
确认配置信息无误后,点击 "Next step" 完成安装。
⑥ 登录界面
默认账号:Admin,默认密码:zabbix(注意大小写)。
(3)首次登录后配置
- 登录后建议立即修改密码:点击右上角用户名→"Profile"→"Password"
- 设置中文界面:Administration→General→Locale→选择 "Chinese (zh_CN)"→点击 "Update"
5.4 部署 Zabbix Proxy
Proxy 节点作为中间层,负责收集被监控节点的数据并转发给 Server,适合分布式环境。
(1)添加 Zabbix 源(同 Server 节点)
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all
dnf makecache
(2)安装 Proxy 组件
# 安装Proxy(MySQL支持)及依赖
dnf -y install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql
# 安装net-snmp依赖
dnf -y install https://www.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm
(3)导入 Proxy 数据库初始化数据
Proxy 需要使用之前在 Server 节点创建的zabbix_proxy
数据库:
# 先在Server节点开启存储函数创建权限
mysql -uroot -p
set global log_bin_trust_function_creators=1;
quit;
# 在Proxy节点执行导入(输入密码zabbix)
mysql -uzabbix -p -h 192.168.207.137 zabbix_proxy < /usr/share/zabbix-sql-scripts/mysql/proxy.sql
# 导入完成后,在Server节点关闭权限
mysql -uroot -p
set global log_bin_trust_function_creators=0;
quit;
(4)配置 Zabbix Proxy
修改 Proxy 配置文件/etc/zabbix/zabbix_proxy.conf
:
vim /etc/zabbix/zabbix_proxy.conf
# 修改以下配置项
Server=192.168.207.137 # Zabbix Server的IP(约32行)
Hostname=Zabbix proxy # Proxy名称(约42行,需与Web界面配置一致)
DBHost=192.168.207.137 # 数据库主机(Server节点IP,约157行)
DBPassword=zabbix # 数据库密码(约194行)
(5)启动 Proxy 服务
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
# 验证状态
systemctl status zabbix-proxy
(6)在 Web 界面添加 Proxy
- 登录 Zabbix Web 界面
- 导航至:Administration→Proxies→Create proxy
- 配置参数:
- Proxy name:Zabbix proxy(需与配置文件中 Hostname 一致)
- Proxy type:Active(主动模式)
- 点击 "Add" 完成添加
5.5 部署 Zabbix Agent(被监控节点)
以 server01 节点为例,部署步骤如下:
(1)添加 Zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all
dnf makecache
(2)安装 Zabbix Agent
dnf -y install zabbix-agent
(3)配置 Agent
修改配置文件/etc/zabbix/zabbix_agentd.conf
:
vim /etc/zabbix/zabbix_agentd.conf
# 修改以下配置项
Server=192.168.207.137 # 被动模式:Server或Proxy的IP(约118行)
ServerActive=192.168.207.138 # 主动模式:Proxy的IP(约171行)
Hostname=server01 # 本机主机名(约182行,需与Web界面配置一致)
(4)启动 Agent 服务
systemctl start zabbix-agent
systemctl enable zabbix-agent
# 验证状态
systemctl status zabbix-agent
(5)在 Web 界面添加被监控主机
- 导航至:Configuration→Hosts→Create host
- 配置主机参数:
- Host name:server01(需与 Agent 配置文件中 Hostname 一致)
- Groups:选择 "Linux servers"(或自定义群组)
- Interfaces:点击 "Add"→选择 "Agent"→IP 地址填写 192.168.207.139→端口 10050
- 关联模板:
- 点击 "Templates"→"Select"→搜索 "Template OS Linux"→添加
- 选择 Proxy(如需通过 Proxy 监控):
- Proxy:选择之前创建的 "Zabbix proxy"
- 点击 "Add" 完成添加
重复以上步骤添加 server02 节点。
5.6 解决 Zabbix 图形中文乱码问题
Zabbix 默认字体不支持中文,需替换字体文件:
(1)查找字体配置文件
# 查找定义字体的PHP文件
find / -name defines.inc.php
# 输出:/usr/share/zabbix/include/defines.inc.php
# 查看字体路径和名称
grep "ZBX_FONTPATH" /usr/share/zabbix/include/defines.inc.php
# 输出:define('ZBX_FONTPATH', realpath('assets/fonts'));
grep "ZBX_GRAPH_FONT_NAME" /usr/share/zabbix/include/defines.inc.php
# 输出:define('ZBX_GRAPH_FONT_NAME', 'graphfont');
(2)替换字体文件
# 上传中文字体文件(如msyh.ttc,微软雅黑)到字体目录
cd /usr/share/zabbix/assets/fonts/
# 备份原字体
mv graphfont.ttf graphfont.ttf.bak
# 创建软链接(将中文字体链接为默认字体)
ln -s msyh.ttc graphfont.ttf
(3)验证效果
刷新 Zabbix Web 界面,查看图表中的中文是否正常显示。
六、Zabbix 监控实战配置
6.1 自定义监控项
以监控服务器的 TCP 连接数为例,创建自定义监控项:
-
在被监控节点的 Agent 配置文件中添加:
vim /etc/zabbix/zabbix_agentd.d/custom.conf
添加以下内容
UserParameter=tcp.established,netstat -ant | grep ESTABLISHED | wc -l
-
重启 Agent:
systemctl restart zabbix-agent
-
在 Web 界面创建监控项:
- 导航至对应主机→Items→Create item
- Name:TCP Established Connections
- Key:tcp.established
- Type:Zabbix agent
- Units:connections
- Update interval:30s
6.2 配置触发器
为 TCP 连接数设置阈值告警(超过 1000 时告警):
- 导航至对应主机→Triggers→Create trigger
- Name:High number of TCP connections
- Expression:{server01:tcp.established.last()} > 1000
- Severity:Warning
- 点击 "Add"
七、总结与扩展
本文详细讲解了 Zabbix 企业级分布式监控系统的部署过程,从监控体系架构到实际操作步骤,涵盖了 Server、Proxy、Agent 的完整部署流程。通过本文的步骤,可搭建一套支持多节点、跨网络的分布式监控平台。
扩展建议
- 高可用部署:生产环境中建议对 Zabbix Server 和数据库进行高可用配置(如主从复制、集群)
- 监控扩展:结合 Zabbix API 开发自定义告警插件(如对接企业微信、钉钉)
- 性能优化:对于大规模监控(>1000 节点),需优化数据库(分表分区)、调整 Proxy 缓存策略
- 安全加固:配置 SSL 加密(Agent 与 Server 通信)、限制数据库访问权限、定期更新 Zabbix 版本