云原生NPM与传统NPM的差异

简介: 本文对比传统NPM与云原生NPM在部署、流量采集、资源影响等方面的差异,聚焦Packet处理,分析二者优劣。随着eBPF等新技术应用,云原生NPM正加速发展,助力高效网络监控与故障定位。

摘要:以eBPF技术为主的NPM监控在市场日趋火热,本文主要以Packet作为处理目标展开对传统NPM与云原生NPM的差异化分析,带领大家了解二者的优劣势。

网络性能监控 (Network Performance Monitoring - NPM) 是一种用来采集、监控、诊断网络相关的技术和方法,可以帮助IT运维人员方便观察所管理网络的运行状态,了解潜在的故障点和风险,并有助于快速定位故障原因。此外,也能为最大化/调优网络性能、可用性和服务质量提供支撑。

为了更好的监控网络运行状态,NPM产品会采用多种方法来采集多种指标和数据,如SNMP、NetFlow / sFlow、Packet Capture等。这些数据中,SNMP指标需要采集设备主动向被管理的设备去请求,Flow信息由网络设备采样和推送,而Packet通常由独立设备通过网络设备的镜像端口进行流量获取。可见,Packet的方式能提供更多和更完整的网络真实面貌,但是对采集设备的要求也更多,不仅要处理大流量,计算各种网络指标,还需要能深度解析各种网络协议,从而提取更多的信息。因此,市场上不同的NPM产品,主要的竞争差异也是对包的处理,比较先进的NPM产品,从网络包中提取大量的信息之后,通过机器学习和AI的方式,实现自动风险识别,事件提醒等高级功能。

因此,本文主要以Packet 作为处理目标来分析传统NPM与云原生NPM的差异。虽然传统网络和云原生的基础设施环境不一样,但是NPM的目标是一样的:更好地了解网络实时运行状态,为扩容/缩容提供依据,为快速故障诊断提供支持,等等。但也正是IT基础设施环境的不一样,导致了两种环境下NPM的巨大差异,主要体现在以下几方面:

1) 部署方式

传统NPM需要独立硬件连接网络设备的镜像端口,此外,为了能进行多段分析(同一个网络包通过多个网络设备之后,需要计算每个网络设备的转发时延),就需要有多台物理设备连接不同网络设备的镜像端口,如果不同网络设备的物理位置比较近,可以连接至同一个NPM设备的不同抓包端口。

云原生NPM通常以纯软件方式形式存在,部署在业务系统的主机内,如果业务系统已经采用Docker, K8S等集群方式,那么部署起来将更加方便。由于每个主机都会进行部署,因此天生就可以从多处采集不同的流量,实现类似传统NPM中的多段分析。

2) 采集的流量内容

传统NPM可以采集到所有的物理网络流量,包括网络设备之间的路由协议数据。

云原生NPM主要采集所在(虚拟)主机的网络流量,包括主机与外部的通信流量,也包括主机内部通过虚拟网络设备互相连接的容器。

3) 业务影响

从1)中可知,传统NPM使用专用硬件设备来处理和分析网络数据,因此完全不会影响原先的系统运行。

云原生NPM运行在原有的系统中,会占用原有系统的资源,如果NPM占用太多的资源,很有可能会影响系统的运行。

4) 优/劣势

传统NPM可以捕获到更多种类的网络流量,不仅可以分析路由协议,观察网络转发的性能;也可以分析业务的流量,评估客户端和服务端的网络处理性能。另外,传统NPM可以使用更多的资源,对捕获的数据包做更详细的分析;甚至可以将所有捕获的数据进行存储,便于事后更丰富的分析和调查取证使用。相比于软件部署的云原生NPM,硬件成本比较高,升级维护也没那么方便。

云原生NPM部署在业务系统主机内,不仅可以捕获主机与外界的通信流量,还可以捕获主机内部的网络流量,尤其微服务架构流行的时代,主机内部的通信流量也日益增多。缺点是要保持实现的轻量,以免消耗过多的资源,影响业务系统。另外,一般部署的节点较多,对NPM的管理也有较高要求。

5) 实现技术

传统NPM大多采用一台配置较高的服务器硬件,甚至在特别大的流量场景下会使用专业的抓包网卡来捕获数据包,专业网卡一般还会提供高精度的网络包时间戳功能,为计算网络时延、抖动等功能提供帮助。有时,还会配备大容量的磁盘阵列,用于存储捕获的数据包。在软件层面,目前使用DPDK技术捕获数据包比较流行。

云原生NPM大多采用libpcap/winpcap抓包技术,近年来基于eBPF的XDP技术也很受关注。

欢迎各位来乘云伙伴群分享交流,评论区留言即可获得加群方式!
乘云数字是一家可观测软件服务商,专注于为企事业用户提供一站式的IT性能监测与人工智能运维分析服务。云原生环境作为目前主流的基础设施发展方向,我们也十分重视在云原生场景中采集各种主机、容器、POD等各种维度的数据,其中NPM相关的指标和数据也是我们重点关注的一个方向,这些数据被用来观测复杂的云原生网络环境的动态,同时也帮助快速定位网络相关的故障和性能问题。乘云数字的NPM功能,不仅采集操作系统提供的详细指标数据,还结合了旁路抓包的深度流量解析技术和基于eBPF的系统可观测技术。以较少的资源开销,将应用层与网络层进行关联,将网络故障和事件定位至具体的应用,极大地缩短了定位网络异常的时间。

相关文章
|
1月前
|
运维 监控 数据可视化
别让运维跪着查日志了!给老板看的“业务观测”大盘才是真香
深夜告警、业务暴跌、全员背锅?一次支付故障暴露传统监控盲区。我们通过业务观测,将技术指标转化为老板听得懂的“人话”,实现从被动救火到主动洞察的跨越。让技术团队不再跪着查日志,而是站着驱动业务增长。
别让运维跪着查日志了!给老板看的“业务观测”大盘才是真香
|
2月前
|
存储 SQL Prometheus
图文解析带你精通时序PromQL语法
[阿里云SLS可观测团队发布] 本文通过图文解析深入讲解PromQL的计算原理,涵盖其与SQL的差异、时间线模型、选点机制、聚合函数、窗口函数及常见非预期场景,帮助用户掌握PromQL的核心语法与执行逻辑。
683 10
|
SQL 存储 监控
深入可观测底层:OpenTelemetry 链路传递核心原理
本文会系统讲解链路传递一些基本概念,同时结合案例讲解链路传递的过程。
3396 1
深入可观测底层:OpenTelemetry 链路传递核心原理
|
2月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
Apache Fluss是由阿里巴巴与Ververica合作开发的Flink表存储引擎,旨在提供低延迟、高效率的实时数据存储与变更日志支持。其采用TabletServer与CoordinatorServer架构,结合RocksDB和列式存储,实现主键表与日志表的统一管理,并通过客户端抽象整合湖仓历史数据,弥补Paimon在实时场景下的性能短板。
457 22
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
|
4天前
|
运维 Prometheus 数据可视化
如何一键接入opentelemetry项目,实现可观测分析
本文揭秘如何通过Databuff实现OpenTelemetry的无缝接管,无需改造现有Collector,10分钟完成部署,实现服务与资源间的因果可观测性,呈现云网空间地图,助力运维智能化。
|
1月前
|
存储 算法 Java
深入理解JVM:内存管理与垃圾回收机制探索
JVM是Java程序的运行核心,实现跨平台、自动内存管理与高效执行。其架构包括类加载、运行时数据区、执行引擎等模块。内存模型历经演变,JDK 8起以元空间替代永久代,优化GC性能。JVM通过分代回收机制,结合标记清除、复制、整理等算法,管理对象生命周期,提升系统稳定性与性能。
|
2月前
|
运维 监控 数据可视化
从巴比馒头的“洗菜流水线”,来看“telemetry pipeline”工具的火热兴起
以巴比馒头自动化洗菜为喻,探讨运维领域“数据清洗”难题。DataHub作为国产可视化遥测管道工具,支持多源数据接入与低代码编排,实现日志、指标、链路等数据的高效处理与统一管理,助力企业构建高质量可观测体系。(238字)
|
8月前
|
人工智能 API 数据库
MCP Server 开发实战 | 大模型无缝对接 Grafana
以 AI 世界的“USB-C”标准接口——MCP(Model Context Protocol)为例,演示如何通过 MCP Server 实现大模型与阿里云 Grafana 服务的无缝对接,让智能交互更加高效、直观。
2512 116
|
11天前
|
机器学习/深度学习 人工智能 运维
AIOps已逝,欢迎进入AgenticOps(运维智能体)时代
GenAI和智能体技术的爆发,为IT运维打开了一扇新的大门,一个更具主动性、自治性和协作性的新时代已经来临,这就是AgenticOps(基于智能体的IT运维)。