一、监控系统核心认知

1.1 监控的本质与价值

监控(Monitoring)的核心是 “检测与预防”,在 IT 运维中占据约 30% 的权重。其核心价值体现在:

  • 风险预判:通过实时监测指标异常,提前发现潜在故障(如服务器 CPU 持续高负载可能导致服务崩溃);
  • 问题定位:当故障发生时,通过多层级监控数据快速溯源(如用户访问失败可能源于网络丢包、应用错误或数据库超时);
  • 决策支撑:基于历史数据和业务指标(如交易转化率),为资源扩容、架构优化提供数据依据。

1.2 监控系统的五层逻辑架构

按逻辑层次从底层到上层,监控可分为五个层级,各层级职责与核心指标如下:

层级负责角色核心监控对象关键指标
基础设施监控运维人员网络设备(交换机、路由器)、物理线路网络流量、丢包率、错包率、设备连接数
系统层监控运维人员物理机、虚拟机、操作系统CPU 使用率、内存占用率、磁盘 IO 吞吐量、网络带宽
应用层监控开发 / 运维Web 服务、数据库、缓存、API 接口URL 访问延迟、服务错误率、慢 SQL 占比、缓存命中率、接口响应时间
业务监控运营 / 管理层核心业务流程(如电商的登录 - 下单 - 支付)用户注册量、下单成功率、支付转化率、活跃用户数
端用户体验监控全团队用户终端(APP、H5、PC)页面加载时间、返回错误码(如 404/500)、地区 / 运营商访问差异、客户端设备 / 浏览器版本适配问题

二、监控系统实现原理

2.1 核心模块组成

监控系统的基本模型分为两大核心部分:

  • 数据采集层:通过 Agent(客户端)、协议交互(如 SNMP)等方式收集原始数据;
  • 数据处理层:包含数据存储(数据库)、分析(指标计算)、告警(阈值触发)、展示(可视化界面)四大功能。

两者形成 “采集 - 处理 - 反馈” 的闭环,确保监控数据从产生到应用的全链路贯通。

2.2 数据采集协议分类

采集协议分为私有协议与公有协议,适配不同场景:

  • 私有协议:依赖专用客户端(如 Zabbix Agent、Prometheus Exporter),需在被监控端部署程序,适合深度采集系统 / 应用指标(如进程状态、JVM 堆内存);
  • 公有协议:无需专用客户端,通过通用协议交互,包括:
    • SNMP(简单网络管理协议):常用于网络设备(交换机、路由器)监控;
    • IPMI(智能平台管理接口):直接监控物理服务器硬件状态(如风扇转速、硬盘健康度);
    • SSH/Telnet:通过远程命令执行获取数据(如df -h查看磁盘使用率)。

2.3 监控模式对比

模式数据流向优缺点适用场景
被动模式Server 主动向 Agent 请求数据优点:架构简单;缺点:Server 负载高(需并发请求大量 Agent)小规模环境(监控节点 < 100)
主动模式Agent 主动向 Server 上报数据优点:降低 Server 负载;缺点:Agent 需配置上报策略大规模环境(监控节点 > 100)

2.4 代理架构(C/S/P)的必要性

在超大规模监控场景(如上万节点)中,仅靠主动模式仍无法解决 Server 压力问题,需引入 Proxy(代理):

  • 核心作用:作为 Server 与 Agent 的中间层,本地存储临时数据并批量同步至 Server,分摊 Server 的网络与计算负载;
  • 分布式适配:支持跨地域 / 跨网络监控(如北京、上海机房通过各自 Proxy 汇总数据至总部 Server)。

三、主流开源监控产品对比分析

市场上主流开源监控工具各有侧重,核心特性对比如下:

工具核心优势典型适用场景局限性
Zabbix分布式架构、全链路监控(基础设施 - 业务)、丰富告警策略企业级复杂 IT 环境(混合云、多数据中心)自定义监控项配置较复杂
Prometheus+Grafana时序数据处理能力强、可视化灵活(Grafana 图表)容器化环境(K8s)、微服务架构告警功能需依赖 Alertmanager,部署成本较高
Cacti专注网络流量监控、图形化展示能力突出中小网络环境(如校园网、企业内网)对应用层和业务层监控支持较弱
Nagios轻量易部署、插件生态丰富简单服务器 / 服务监控(如 Web 服务存活检测)缺乏原生分布式能力,需二次开发
Checkmk高自动化配置、支持物联网设备混合 IT 环境(服务器 + 物联网终端)企业版收费,开源版功能有限
Netdata实时性极强(毫秒级采集)、指标覆盖广性能故障实时诊断历史数据存储能力较弱

四、Zabbix 系统深度解析

4.1 Zabbix 核心定位

Zabbix 是基于 Web 界面的企业级分布式开源监控解决方案,具备以下核心特征:

  • 全栈覆盖:可监控服务器、网络设备、应用程序、数据库、云资源等;
  • 开源免费:基于 GPL v2 协议,源代码公开可定制;
  • 灵活适配:支持 Linux、Windows、AIX 等多系统,兼容物理机、虚拟机、容器等部署形态。

4.2 核心功能特性

Zabbix 的功能体系围绕 “数据采集 - 处理 - 应用” 全流程设计,关键特性包括:

  1. 多维度数据收集

    • 支持 SNMP、IPMI、JMX 等协议,以及自定义脚本采集;
    • 可按自定义间隔(如 10 秒 / 次、1 小时 / 次)收集数据;
    • 包含 Server(核心)、Proxy(代理)、Agent(客户端)三大角色。
  2. 智能阈值与告警

    • 触发器(Trigger)定义灵活阈值(如 “CPU 使用率> 90% 持续 5 分钟”);
    • 支持告警升级(如 10 分钟未处理则通知上级负责人)、多渠道通知(邮件、短信、钉钉);
    • 可通过宏变量(如{HOST.NAME})自定义告警内容,包含关键上下文信息。
  3. 可视化与报告

    • 实时绘图(内置绘图引擎)、自定义仪表盘(Dashboard);
    • 生成网络拓扑图(直观展示设备连接关系)、业务流程图;
    • 支持按时间维度(日 / 周 / 月)生成性能报告、可用性报告。
  4. 自动化与扩展性

    • 网络自动发现(如新增交换机自动纳入监控)、Agent 自动注册;
    • 模板继承机制(如 “Web 服务器模板” 可继承 “Linux 系统模板” 的基础监控项);
    • 提供 API 接口,支持与 CMDB、工单系统等第三方平台集成。

4.3 架构与角色分工

Zabbix 采用分布式架构,核心角色及交互关系如下:

角色功能定位关键配置
Zabbix Server核心节点,负责数据存储、分析、告警决策需配置数据库连接(如 MySQL)、监听端口 10051
Zabbix Proxy代理节点,分担 Server 负载,适用于跨地域监控需配置 Server 地址、本地主机名(与 Web 端保持一致)
Zabbix Agent部署在被监控端,负责采集本地数据需配置 Server/Proxy 地址(主动上报目标)、本地主机名
Zabbix WebWeb 管理界面(PHP 开发)通过 Nginx/Apache 部署,默认端口可自定义(如 8080)

架构示意图
Agent 通过主动 / 被动模式向 Proxy/Server 提交数据,Server 将数据存储至数据库(MySQL/Oracle 等),Web 界面从 Server 获取数据并展示,同时用户可通过 Web 配置监控策略。

五、Zabbix 部署全流程解析

5.1 部署环境准备

节点操作系统配置IP 地址角色
zabbixopenEuler 24.032C4G192.168.207.137Server+Web
proxyopenEuler 24.032C4G192.168.207.138Proxy
server01openEuler 24.032C4G192.168.207.139被监控节点(Agent)
server02openEuler 24.032C4G192.168.207.140被监控节点(Agent)

基础环境配置(所有节点):

  • 关闭防火墙与 SELinux(避免端口拦截):
    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0(临时关闭)+ 修改/etc/selinux/config(永久关闭)
  • 时间同步(确保数据时间一致性):
    timedatectl set-timezone Asia/Shanghai
    chronyc sources -v(验证同步状态)

5.2 Zabbix Server 部署关键步骤

  1. 添加源与安装依赖
    安装 Zabbix 官方源,并安装核心组件(Server、Web、数据库等):

    rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
    dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf mysql-server-8.0.41
    

    注:需匹配版本依赖(如 MySQL 8.0.30+、Nginx 1.20+)

  2. 数据库配置

    • 初始化数据库并授权:
      create database zabbix character set utf8mb4 collate utf8mb4_bin;
      create user zabbix@localhost identified by 'zabbix';
      grant all privileges on zabbix.* to zabbix@localhost;
      set global log_bin_trust_function_creators=1; -- 允许创建存储函数
      
    • 导入初始数据:
      zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
  3. 核心配置文件修改

    • Server 配置(/etc/zabbix/zabbix_server.conf):
      DBPassword=zabbix(与数据库授权密码一致)
    • Web 配置(/etc/nginx/conf.d/zabbix.conf):
      listen 8080;(自定义端口,避免冲突)
  4. 服务启动与验证

    systemctl restart zabbix-server zabbix-agent nginx php-fpm
    systemctl enable zabbix-server zabbix-agent nginx php-fpm
    

    访问http://192.168.207.137:8080,默认账号Admin、密码zabbix

5.3 Proxy 与 Agent 部署要点

  • Proxy 部署
    需配置 Server 地址(Server=192.168.207.137)、数据库连接(与 Server 共享或独立),启动后在 Web 端 “管理 - Proxy” 中添加,类型选 “主动式”。
  • Agent 部署
    配置Server=192.168.207.137(目标 Server/Proxy 地址)、Hostname=server01(与 Web 端主机名一致),启动后在 Web 端 “数据采集 - 主机” 中添加,关联对应模板(如 “Linux by Zabbix agent”)。

5.4 常见问题解决:字体显示异常

Zabbix 默认字体可能导致中文乱码,解决步骤:

  1. 定位字体配置文件:/usr/share/zabbix/include/defines.inc.php,确认字体路径(ZBX_FONTPATH)和字体名(ZBX_GRAPH_FONT_NAME=graphfont);
  2. 上传中文字体(如msyh1.ttc)至/usr/share/zabbix/assets/fonts
  3. 创建软链接:ln -snf msyh1.ttc graphfont.ttf(替换默认字体引用)。

六、总结与扩展

Zabbix 作为企业级监控解决方案,其优势在于分布式架构的灵活性、全栈监控的完整性及开源生态的可扩展性。在实际应用中,需结合业务场景设计监控策略:

  • 中小规模环境:直接采用 “Server+Agent” 架构,聚焦系统与应用监控;
  • 大规模 / 跨地域环境:引入 Proxy 实现分层管理,重点关注网络延迟与数据同步效率;
  • 业务驱动场景:通过自定义监控项(如 “下单接口成功率”)将业务指标纳入监控体系,实现从技术指标到业务价值的映射。

通过深入理解监控本质、Zabbix 架构及部署细节,可构建稳定、高效的 IT 运维监控体系,为业务连续性提供坚实保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915640.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915640.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915640.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 .NET 6.0 的简单 WebSocket 客户端和服务器应用程序

几个月前&#xff0c;有同事来找我&#xff0c;问能否用 .NET 创建一个简单的 WebSocket 服务器&#xff08;以及之后的客户端&#xff09;。据我了解&#xff0c;他想用它来控制对方电脑上的进程。或许对其他人也有用&#xff0c;所以我把它发布在这里。让我们从服务器开始。我…

【ASP.NET Core】ASP.NET Core中Redis分布式缓存的应用

系列文章目录 链接: 【ASP.NET Core】REST与RESTful详解&#xff0c;从理论到实现 链接: 【ASP.NET Core】深入理解Controller的工作机制 链接: 【ASP.NET Core】内存缓存&#xff08;MemoryCache&#xff09;原理、应用及常见问题解析 文章目录系列文章目录前言一、Redis1.1 …

5.6 指令流水线 (答案见原书 P267)

5.6 指令流水线 (答案见原书 P267) 01. 下列关于流水CPU基本概念的描述中&#xff0c;正确的是&#xff08; D &#xff09;。 题目原文 下列关于流水CPU基本概念的描述中&#xff0c;正确的是&#xff08; &#xff09;。 A. 流水CPU是以空间并行性为原理构造的处理器 B. 流水…

NIO简单介绍和运用

NIO简单介 NIO 非阻塞IO模型&#xff0c;基于缓冲区(Buffer)读写数据&#xff0c;读写后的数据通过通道(Channel)进行传输&#xff0c;采用选择器(Selector)管理多个通道从而实现高并发。 核心组件&#xff1a;1. Buffer 为一个内存数组作为数据容器&#xff0c;代替传统的Inpu…

LeetCode 658.找到K个最接近的元素

给定一个 排序好 的数组 arr &#xff0c;两个整数 k 和 x &#xff0c;从数组中找到最靠近 x&#xff08;两数之差最小&#xff09;的 k 个数。返回的结果必须要是按升序排好的。 整数 a 比整数 b 更接近 x 需要满足&#xff1a; |a - x| < |b - x| 或者 |a - x| |b - x| …

制作一款打飞机游戏83:炸弹机制

游戏中的炸弹系统&#xff0c;包括以下核心功能&#xff1a;炸弹爆炸效果与动画实现炸弹伤害范围判定机制子弹转化为能量道具的系统炸弹使用时的无敌帧处理各种边界情况的修复与优化技术实现细节1. 炸弹基础系统‌炸弹动画状态机‌&#xff1a; 我们采用三阶段状态机控制炸弹效…

Linux CentOS 虚拟机升级内核至4.x以上版本

1、安装组件 yum install -y wget && yum install -y net-tools yum groupinstall “Development Tools” yum install ncurses-devel bc openssl-devel elfutils-libelf-devel yum install -y ncurses-devel yum install -y elfutils-libelf-devel yum install -y ope…

QT跨平台应用程序开发框架(11)—— Qt系统相关

目录 一&#xff0c;事件 1.1 关于事件 1.2 处理事件 1.3 处理鼠标事件 1.3.1 点击事件 1.3.2 释放事件 1.3.3 双击事件 1.3.4 滚轮事件 1.3.5 注意事项 1.4 处理键盘事件 1.5 定时器事件 1.6 窗口移动和大小改变事件 二&#xff0c;文件操作 2.1 文件操作概述 2.2 QFile 介绍…

sqli-labs通关笔记-第11关 POST字符型注入(单引号闭合 手工注入+脚本注入两种方法)

目录 一、字符型注入 二、limit函数 三、GET方法与POST方法 四、源码分析 1、代码审计 2、SQL注入安全分析 五、渗透实战 1、进入靶场 2、注入点分析 &#xff08;1&#xff09;SQL语句 &#xff08;2&#xff09;万能密码登录 3、手工注入 &#xff08;1&#xf…

网络安全基础作业三

回顾web前端的代码<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用户登录</title><st…

基于单片机的温湿度报警系统设计与实现

摘 要 本项研究对温湿度警报系统的需求进行了详尽分析&#xff0c;并成功研制出一套以单片机为技术核心的温湿度警报系统。该系统由硬件搭建和软件编程两大模块构成。在硬件搭建方面&#xff0c;系统整合了STM32主控芯片、DS18B20温度传感器、湿敏电阻、按键组件、OLED显示屏、…

(八)复习(拆分微服务)

文章目录项目地址一、Ticketing模块拆分1.1 创建web api1. 添加引用2. 添加需要的包和配置3. program.cs4. docker-compose修改项目地址 教程作者&#xff1a;教程地址&#xff1a; 代码仓库地址&#xff1a; 所用到的框架和插件&#xff1a; dbt airflow一、Ticketing模块拆…

DearMom以“新生儿安全系统”重塑婴儿车价值,揽获CBME双项大奖

7月16日&#xff0c;在刚刚开幕的2025 CBME中国孕婴童展上&#xff0c;备受瞩目的CBME中国孕婴童产业奖正式揭晓。深耕婴儿车品类的专业品牌DearMom&#xff0c;凭借其卓越的创新实力与对新生儿安全出行的深刻洞察&#xff0c;一举摘得重量级奖项——“杰出品牌创新奖”。同时&…

瀚高数据库开启Oracle兼容模块

文章目录环境症状问题原因解决方案环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5 症状 不能使用Oracle兼容&#xff1b; 问题原因 在瀚高数据库V45中oracle兼容模块需要单独开启默认是关闭状态。 解决方案 使用sysdba执行修改…

final修饰符不可变的底层

final修饰符的底层原理在 Java 中&#xff0c;final 修饰符的底层实现涉及 编译器优化 和 JVM 字节码层面的约束其核心目标是保证被修饰元素的【不可变性】或 【不可重写 / 继承性】一、final 修饰类&#xff1a;禁止继承的底层约束当一个类被 final 修饰时&#xff0c;例如 St…

如何排查服务器 CPU 飙高

服务器 CPU 飙高&#xff08;CPU 使用率持续超过 80% 甚至接近 100%&#xff09;是典型的性能瓶颈问题&#xff0c;可能由应用逻辑缺陷、资源竞争、外部压力或硬件/系统异常引起。以下是系统化的排查步骤&#xff0c;覆盖从现象确认到根因定位的全流程。​一、确认 CPU 飙高的现…

【DataWhale】快乐学习大模型 | 202507,Task05笔记

前言 今天是Transformer的编码实战阶段&#xff0c;照着示例代码执行一遍吧 embedding self.tok_embeddings nn.Embedding(args.vocab_size, args.dim)把token向量转为embedding矩阵&#xff08;一个token一个embedding向量&#xff09; 位置编码 为了解决“我喜欢你”和…

用ffmpeg 进行视频的拼接

author: hjjdebug date: 2025年 07月 22日 星期二 17:06:02 CST descrip: 用ffmpeg 进行视频的拼接 文章目录1. 指定协议为concat 方式.1.1 协议为concat 模式,会调用 concat_open 函数1.2 当读数据时,会调用concat_read2. 指定file_format 为 concat 方式2.1 调用concat_read_…

HTTP与HTTPS技术细节及TLS密钥交换与证书校验全流程

HTTP与HTTPS技术细节及TLS密钥交换与证书校验全流程 引言 文档目的与范围 核心技术栈概述 本文档的核心技术栈围绕传输层安全协议&#xff08;TLS&#xff09;展开。TLS协议作为安全套接字层&#xff08;SSL&#xff09;的后继标准&#xff0c;是现代网络安全通信的基础&am…

广播分发中心-广播注册流程

广播是怎么注册的呢&#xff1f;阶段组件/数据结构作用描述存储位置/关联关系App进程阶段BroadcastReceiver开发者自定义的广播接收器&#xff0c;实现onReceive方法处理事件。App进程&#xff08;Activity/Service等组件内&#xff09;ReceiverDispatcher将BroadcastReceiver封…