当前位置: 首页 > news >正文

Zabbix企业级分布式监控

目录

一、zabbix监控系统

1.1 监控的五大核心类型

1.2 监控的五层逻辑架构

(1)基础设施监控

(2)系统层监控

(3)应用层监控

(4)业务监控

(5)端用户体验监控

二、监控系统的技术原理

2.1 监控系统的核心模块

2.2 数据采集协议分类

2.3 数据采集模式

(1)被动模式

(2)主动模式

2.4 分布式代理架构

三、主流开源监控系统对比

3.1 Zabbix

3.2 Prometheus+Grafana

3.3 Nagios

3.4 Cacti

3.5 其他工具

四、Zabbix 系统深度解析

4.1 Zabbix 简介

4.2 Zabbix 核心功能特性

(1)数据收集

(2)阈值管理与告警

(3)可视化与报表

(4)配置管理

(5)扩展性

4.3 Zabbix 架构组件

(1)Zabbix Server

(2)Zabbix Agent

(3)Zabbix Proxy

(4)Zabbix Web

(5)数据库

五、Zabbix 企业级部署实战(基于 openEuler 24.03)

5.1 环境准备

(1)节点规划

(2)基础环境配置(所有节点执行)

① 关闭防火墙

② 关闭 SELinux

③ 时间同步

④ 修改主机名

⑤ 配置 hosts 解析

5.2 部署 Zabbix Server

(1)添加 Zabbix 官方源

(2)安装依赖包及组件

(3)配置 MySQL 数据库

① 启动 MySQL 并设置开机自启

② 初始化数据库配置

(4)导入 Zabbix 初始化数据

(5)配置 Zabbix Server

(6)配置 Web 界面(Nginx)

(7)启动服务并设置开机自启

5.3 Zabbix Web 界面初始化配置

(1)访问 Web 界面

(2)初始化配置步骤

① 欢迎页面

② 环境检查

③ 数据库配置

④ Server 设置

⑤ 安装汇总

⑥ 登录界面

(3)首次登录后配置

5.4 部署 Zabbix Proxy

(1)添加 Zabbix 源(同 Server 节点)

(2)安装 Proxy 组件

(3)导入 Proxy 数据库初始化数据

(4)配置 Zabbix Proxy

(5)启动 Proxy 服务

(6)在 Web 界面添加 Proxy

5.5 部署 Zabbix Agent(被监控节点)

(1)添加 Zabbix 源

(2)安装 Zabbix Agent

(3)配置 Agent

(4)启动 Agent 服务

(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 ServeropenEuler 24.032C4Gzabbix192.168.207.137
Zabbix ProxyopenEuler 24.032C4Gproxy192.168.207.138
被监控节点 1openEuler 24.032C4Gserver01192.168.207.139
被监控节点 2openEuler 24.032C4Gserver02192.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
  1. 登录 Zabbix Web 界面
  2. 导航至:Administration→Proxies→Create proxy
  3. 配置参数:
    • Proxy name:Zabbix proxy(需与配置文件中 Hostname 一致)
    • Proxy type:Active(主动模式)
  4. 点击 "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 界面添加被监控主机
  1. 导航至:Configuration→Hosts→Create host
  2. 配置主机参数:
    • Host name:server01(需与 Agent 配置文件中 Hostname 一致)
    • Groups:选择 "Linux servers"(或自定义群组)
    • Interfaces:点击 "Add"→选择 "Agent"→IP 地址填写 192.168.207.139→端口 10050
  3. 关联模板:
    • 点击 "Templates"→"Select"→搜索 "Template OS Linux"→添加
  4. 选择 Proxy(如需通过 Proxy 监控):
    • Proxy:选择之前创建的 "Zabbix proxy"
  5. 点击 "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 连接数为例,创建自定义监控项:

  1. 在被监控节点的 Agent 配置文件中添加:
vim /etc/zabbix/zabbix_agentd.d/custom.conf
# 添加以下内容
UserParameter=tcp.established,netstat -ant | grep ESTABLISHED | wc -l

  1. 重启 Agent:
systemctl restart zabbix-agent
  1. 在 Web 界面创建监控项:
    • 导航至对应主机→Items→Create item
    • Name:TCP Established Connections
    • Key:tcp.established
    • Type:Zabbix agent
    • Units:connections
    • Update interval:30s

6.2 配置触发器

为 TCP 连接数设置阈值告警(超过 1000 时告警):

  1. 导航至对应主机→Triggers→Create trigger
  2. Name:High number of TCP connections
  3. Expression:{server01:tcp.established.last()} > 1000
  4. Severity:Warning
  5. 点击 "Add"

七、总结与扩展

本文详细讲解了 Zabbix 企业级分布式监控系统的部署过程,从监控体系架构到实际操作步骤,涵盖了 Server、Proxy、Agent 的完整部署流程。通过本文的步骤,可搭建一套支持多节点、跨网络的分布式监控平台。

扩展建议

  • 高可用部署:生产环境中建议对 Zabbix Server 和数据库进行高可用配置(如主从复制、集群)
  • 监控扩展:结合 Zabbix API 开发自定义告警插件(如对接企业微信、钉钉)
  • 性能优化:对于大规模监控(>1000 节点),需优化数据库(分表分区)、调整 Proxy 缓存策略
  • 安全加固:配置 SSL 加密(Agent 与 Server 通信)、限制数据库访问权限、定期更新 Zabbix 版本
http://www.dtcms.com/a/290281.html

相关文章:

  • OpenCV学习(二)-二维、三维识别
  • 技术演进中的开发沉思-41 MFC系列:定制 AppWizard
  • 【爬虫】06 - 自动化爬虫selenium
  • Zabbix 企业级分布式监控系统深度解析
  • 计算机发展史:人工智能时代的智能变革与无限可能
  • Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙
  • NVM的安装使用:nvm管理多个 Node.js 版本的工具
  • gRPC深度解析:原理、实践与性能优化指南
  • 将 RustFS 用作 GitLab 对象存储后端
  • uniapp使用uni-ui怎么修改默认的css样式比如多选框及样式覆盖小程序/安卓/ios兼容问题
  • 测量误差溯源:系统误差与随机误差的数学建模与分离方法
  • 大模型——Prompt 优化还是模型微调
  • 【PTA数据结构 | C语言版】求单源最短路的Dijkstra算法
  • AI学习--本地部署ollama
  • 6.String、StringBuffer、StringBuilder区别及使用场景
  • 第3章通用的服务可用性治理手段——3.1 微服务架构与网络调用
  • Tomcat的部署、单体架构、session会话、spring
  • ARC学习(6)arc 编译器overlap 地址重叠方式使用
  • stm32mp157f-dk2安装镜像并且部署qt全流程
  • 基于uniapp的餐厅在线选餐小程序的设计与实现
  • 信息整合注意力IIA,通过双方向的轻量级注意力机制强化目标关键特征并抑制噪声,提升特征融合的有效性和空间位置信息的保留能力。
  • Qt的QAbstractTableModel
  • 基于大数据的旅游推荐系统 Python+Django+Hive+Vue.js
  • 三大工厂设计模式
  • 电商项目_秒杀_初步分析
  • Django视图与路由系统
  • Jetpack ViewModel LiveData:现代Android架构组件的核心力量
  • echarts图铺满父元素
  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • k8s查看某个pod的svc