CN116016702A - 一种应用可观测数据采集处理方法、装置及介质 - Google Patents

一种应用可观测数据采集处理方法、装置及介质 Download PDF

Info

Publication number
CN116016702A
CN116016702A CN202211674914.7A CN202211674914A CN116016702A CN 116016702 A CN116016702 A CN 116016702A CN 202211674914 A CN202211674914 A CN 202211674914A CN 116016702 A CN116016702 A CN 116016702A
Authority
CN
China
Prior art keywords
network data
data packet
application
protocol
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211674914.7A
Other languages
English (en)
Inventor
窦洋
杨继伟
祝乃国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202211674914.7A priority Critical patent/CN116016702A/zh
Publication of CN116016702A publication Critical patent/CN116016702A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种应用可观测数据采集处理方法、装置及介质,涉及云计算、微服务和云原生应用领域,本申请通过采集socket连接建立过程中产生的网络数据包;对网络数据包协议所属的网络协议进行初步判断,得到协议类型;根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;将网络数据包与进程元数据关联;将网络数据包发送至用户态;在用户态对网络数据包进行处理以进行查询,本申请通过在内核态对网络数据包进行协议分析、预过滤,支持精准采样,不需要对代码层面进行字节修改,在字节码层面为非入侵式的,且不限制语言类型,能够较大的减少CPU等系统资源的消耗。

Description

一种应用可观测数据采集处理方法、装置及介质
技术领域
本申请涉及云计算、微服务和云原生应用领域,特别是涉及一种应用可观测数据采集处理方法、装置及介质。
背景技术
在当今互联网技术(Internet Technology,IT)系统中,云原生应用和微服务系统越来越普及,服务的数量越来越多,复杂性越来越高。尤其是云计算环境中,从物理住机到云服务器,再到kubernetes编排的容器,以及上层各种服务进程,传统的以确保服务稳定性为主的监控系统已经不能满足需求,各种应用可观测性技术发展迅速。所谓应用可观测性,是指如果对于状态和控制向量的任何可能演变,仅使用来自输出的信息可以估计当前状态,旨在努力是应用白盒化,还原应用的各类行为、特性。Kubernetes,简称k8s,是一个开源的系统,主要用于集群中跨主机的集成应用的管理。
当前的常用的应用观测技术主要通过某种语言的字节码方式全自动注入,可以在java语言编译阶段,自动进行埋点,注入java字节码,实现服务观测。
这种方式虽然不需要手动修改代码,但是需要对代码进行编译。因此在字节码层面仍然是入侵式的,会对业务系统造成一定影响,并且只能适用于一种特定的语言。
由此可见,提供一种不需要对代码进行编译的应用可观测数据采集处理方法、装置及介质,是本领域人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种应用可观测数据采集处理方法、装置及介质,不需要对代码进行编译。
为解决上述技术问题,本申请提供一种应用可观测数据采集处理方法,包括:
采集socket连接建立过程中产生的网络数据包;
对网络数据包协议所属的网络协议进行初步判断,得到协议类型;
根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;
将网络数据包与进程元数据关联;
将网络数据包发送至用户态;
在用户态对网络数据包进行处理以进行查询。
优选地,上述的应用可观测数据采集处理方法中,在用户态对网络数据包进行处理以进行查询,包括:
根据协议类型对网络数据包进行数据解析;
对网络数据包的数据请求与应答进行聚合分析;
对进行数据解析后的网络数据包进行过滤,以得到预设指定类型协议的网络数据包;
将进程元数据与应用元数据进行关联。
优选地,上述的应用可观测数据采集处理方法中,将进程元数据与应用元数据进行关联之后,还包括:
对网络数据包的数据来源进行聚合分类;
将网络数据包装载至时序数据库。
优选地,上述的应用可观测数据采集处理方法中,采集socket连接建立过程中产生的网络数据包,包括:
部署agent采集端;
控制agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包。
优选地,上述的应用可观测数据采集处理方法中,控制agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包之后,还包括:
建立eBPF Map;
对应地,将网络数据包与进程元数据关联,包括:
通过eBPF Map将网络数据包与进程元数据关联,其中,进程元数据包括进程标识符与文件描述符。
优选地,上述的应用可观测数据采集处理方法中,将网络数据包发送至用户态之后,根据协议类型对网络数据包进行数据解析之前,还包括:
将网络数据包复制到缓存;
分析网络数据包所属的具体应用来源。
优选地,上述的应用可观测数据采集处理方法中,根据协议类型对网络数据包进行数据解析之后,还包括:
删除缓存中进行数据解析后的网络数据包的原始数据。
为解决上述技术问题,本申请还提供一种应用可观测数据采集处理装置,包括:
采集模块,用于采集socket连接建立过程中产生的网络数据包;
判断模块,用于对网络数据包协议所属的网络协议进行初步判断,得到协议类型;
第一过滤模块,用于根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;
第一关联模块,用于将网络数据包与进程元数据关联;
发送模块,用于将网络数据包发送至用户态;
处理模块,用于在用户态对网络数据包进行处理以进行查询。
为解决上述技术问题,本申请还提供一种应用可观测数据采集处理装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述的应用可观测数据采集处理方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的应用可观测数据采集处理方法的步骤。
本申请所提供的应用可观测数据采集处理方法,包括:采集socket连接建立过程中产生的网络数据包;对网络数据包协议所属的网络协议进行初步判断,得到协议类型;根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;将网络数据包与进程元数据关联;将网络数据包发送至用户态;在用户态对网络数据包进行处理以进行查询,本申请通过在内核态对网络数据包进行协议分析、预过滤,支持精准采样,不需要对代码层面进行字节修改,在字节码层面为非入侵式的,且不限制语言类型,能够较大的减少CPU等系统资源的消耗。
另外,本申请还提供一种装置及介质,与上述方法对应,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用可观测数据采集处理方法的流程图;
图2为本申请实施例提供的另一种应用可观测数据采集处理方法的流程图;
图3为本申请实施例提供的一种进程元数据与应用元数据关联的示意图;
图4为本申请实施例提供的一种应用可观测数据采集处理装置的结构图;
图5为本申请实施例提供的另一种应用可观测数据采集处理装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种应用可观测数据采集处理方法、装置及介质。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
在当今互联网技术系统中,云原生应用和微服务系统越来越普及,服务的数量越来越多,复杂性越来越高。尤其是云计算环境中,从物理住机到云服务器,再到kubernetes编排的容器,以及上层各种服务进程,传统的以确保服务稳定性为主的监控系统已经不能满足需求,各种应用可观测性技术发展迅速。所谓应用可观测性,是指如果对于状态和控制向量的任何可能演变,仅使用来自输出的信息可以估计当前状态,旨在努力是应用白盒化,还原应用的各类行为、特性。
云原生是基于分布部署和统一运管的分布式云,以容器、微服务等技术为基础建立的一套云技术产品体系。
Kubernetes,简称k8s,是一个开源的系统,主要用于集群中跨主机的集成应用的管理。k8s的一个核心的特性是它动态地管理着容器来保证集群的状态是满足用户需求的。Pod是集群当中调度和管理的最小单元,所有的容器都在Pod里面运行,每个Pod里可以运行一到多个容器。
当前的常用的应用观测技术主要分为如下几类:1.手动方式,每个接口、调用处都需要手动埋点,这种方式非常不方便,需要大量修改代码,影响程序运行。2.半自动方式,基于某语言的开发框架,需要修改部分代码,比如在超文本传输协议(Hyper Text TransferProtocol,HTTP)层进行埋点,获得某持续的业务数据。3.通过某种语言的字节码方式全自动注入,可以在java语言编译阶段,自动进行埋点,注入java字节码,实现服务观测。
以上3种方式中,都会系统资源占用不小的开销,前两种方式需要手动修改代码,第3种方式虽然不需要手动修改代码,但是需要对代码进行编译。因此在字节码层面仍然是入侵式的,会对业务系统造成一定影响,并且只能适用于一种特定的语言。
为解决上述技术问题,本申请提供一种应用可观测数据采集处理方法,图1为本申请实施例提供的一种应用可观测数据采集处理方法的流程图,如图1所示,包括:
S11:采集socket连接建立过程中产生的网络数据包;
套接字(socket)是对传输控制协议/网际协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)协议的封装,Socket本身并不是协议,而是一个应用程序接口(Application Programming Interface,API),通过Socket,我们才能使用TCP/IP协议。socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机死机了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。所以当一个socket连接中没有数据的传输,那么为了维持连接需要发送心跳消息,具体心跳消息格式是可以自定义的。
步骤S11采集socket连接建立过程中产生的网络数据包,即完成当前操作系统(Operating System,OS)下所有应用进程的原始数据采集,socket连接的各个阶段的内核函数(例如connect(),accept(),recv(),sendto()..)。
优选地,采集socket连接建立过程中产生的网络数据包支持按需采样,不完全依赖网络事件驱动。根据预设采样周期采集socket连接建立过程中产生的网络数据包。
步骤S11的过程发生在内核态。
S12:对网络数据包协议所属的网络协议进行初步判断,得到协议类型;
步骤S12对网络数据包协议所属的网络协议进行初步判断,得到网络数据包中各进程对应的协议类型,例如对于HTTP,TCP之类的协议可以通过数据包协议头的字符串匹配来判断。对于二进制类型的数据包类型的协议,不能直接用字符串匹配来处理。需要判断报文的signiture是不是符合相对应报文的格式。
S13:根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;
步骤S13预过滤指的是,对采集的数据包排除无效的协议和非配置的协议,比如我们只想保留HTTP类型的协议,根据实际需求设置即可。
S14:将网络数据包与进程元数据关联;
步骤S14提到的进程元数据指的是表征该进程的meta数据。meta是超文本标记语言(Hyper Text Markup Language,HTML)语言头文件(head)区的一个辅助性标签,位于文档的头部,不包含任何内容。标签的属性定义了与文档相关联的名称/值对。meta元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。进程元数据包括进程号(pid)和socket连接的文件描述符(fd)
S15:将网络数据包发送至用户态;
S16:在用户态对网络数据包进行处理以进行查询。
将处理后的网络数据包发送至用户态,可在用户态根据网络数据包实现应用观测。
根据本申请提供的应用可观测数据采集处理方法,包括:采集socket连接建立过程中产生的网络数据包;对网络数据包协议所属的网络协议进行初步判断,得到协议类型;根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;将网络数据包与进程元数据关联;将网络数据包发送至用户态;在用户态对网络数据包进行处理以进行查询,本申请通过在内核态对网络数据包进行协议分析、预过滤,支持精准采样,不需要对代码层面进行字节修改,在字节码层面为非入侵式的,且不限制语言类型,能够较大的减少CPU等系统资源的消耗。
2、根据权利要求1的应用可观测数据采集处理方法,在用户态对网络数据包进行处理以进行查询,包括:
S21:根据协议类型对网络数据包进行数据解析;
S22:对网络数据包的数据请求与应答进行聚合分析;
S23:对进行数据解析后的网络数据包进行过滤,以得到预设指定类型协议的网络数据包;
S24:将进程元数据与应用元数据进行关联。
在步骤S12对网络数据包协议所属的网络协议进行初步判断,得到协议类型,步骤S21根据协议类型对网络数据包进行数据解析,按照协议推导的类型,进行数据解析,通过不同协议类型格式,解析数据包里的具体内容。
步骤S22对网络数据包的数据请求与应答进行聚合分析,对数据请求进行聚合分析。比如要分析出哪些数据包属于同一次请求,进行请求(request)和应答(response)匹配。在数据包乱序下如何关联这些数据请求是个难题,我们这里采用多种方式。1.对于头文件中带有request-id的请求,可以通过request-id来识别对应的request和response。2.对数据包按照时间戳就行排序,通常来说同一请求的request和response总是间隔一个固定时间范围,request在前面,由此来匹配request和response。3.如果本次request没有匹配到response,可以间隔一段时间观察下一次返回报文能否匹配。
步骤S23对进行数据解析后的网络数据包进行过滤,以得到预设指定类型协议的网络数据包;协议解析之后进行后置过滤,这里能更准确的过滤出我们指定的协议类型。
步骤S24将进程元数据与应用元数据进行关联。
在用户态层面,对进程数据和应用元数据进行关联。首先,如图3所示,建立一套独立的维护应用meta信息的配置管理数据库(Configuration Management Database,CMDB)以及有向无环图(DAG)模型,其中包括各种应用元数据,比如容器和容器的镜像信息、k8s集群以及其中各个命名空间(namespace)、pod(Pod是Kubernetes中创建和管理的、最小的可部署的计算单元,Pod是一组容器)、可分级的视频编码基础(Scalable Video Coding,SVC)、Deployment(Deployment是k8s中用来管理发布的控制器)等资源。DAG模型包含各种应用的依赖关系。关联应用原数据这里分为关联进程meta和关联网络地址(remoteaddress)。
a).关联进程meta具体步骤,我们在内核态拿到的eBPF meta中的pid(进程号)可以直接关联到某应用。具体路径为,通过pid查询linux目录
/proc/${PID},在这个目录下,
1.如果是通过容器或者k8s方式起动的应用进程,则通过查询本路径下的cgroup查到这个进程的K8s Metas和Container Metas,其中K8s Metas包括Namespcae、Pod、Deployment等信息,Container Metas包含容器信息,如Container,Image等信息。这些meta信息在上文提到的CMDB模型和DAG模型中指向具体的应用。
2.如果应用进程不是通过容器而是通过命令行直接地调用启动,则在/proc/${PID}目录下查询cmdline信息,可以查到进程的Process Meta,包括启动命令和参数等,同样可以关联到具体的应用。
b)关联remote address目的是通过网络原地址和目的地址定位到具体的云服务、host主机或者k8s pod。这里分为监控在请求连接(connect、accept函数)建立之前和监控在请求连接(connect、accept函数)建立之后两种情况。
如果这里监控在请求连接(connect、accept函数)建立之前,那么我们可以从socket这些函数调用栈中通过解析参数直接拿到Remote Address信息。
如果监控在请求连接(connect、accept函数)建立之后,这时,通过在第一步中拿到的pid和fd来进行关联。具体为查询系统/proc/${PID}/${FD}目录下的文件inode信息,从inode拿到netlink信息,从netlink中可以拿到remote address信息。
拿到remote address之后我们通过CMDB模型关联到具体云服务器、主机host后者k8s的pod。
之后,还包括:
S25:对网络数据包的数据来源进行聚合分类;
S26:将网络数据包装载至时序数据库。
步骤S25对网络数据包的数据来源进行聚合分类,例如对Pod、虚拟机、机房等指标进行聚合分类,也可以和应用自身日志进行交叉验证,步骤S26将网络数据包装载至时序数据库,时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。这样就可以给下游服务如实时拓扑,服务应用质效,巡检等系统提供原始性能数据和资源数据的数据支撑。下游服务通过查询时序数据库里的数据,可以在系统产生告警时进行根因溯源分析。
优选地,采集socket连接建立过程中产生的网络数据包,包括:
部署agent采集端;
控制agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包。
采集端agent通过守护进程集(Daemonset)的方式部署在每个节点上。该模式下,通常是由agent主动采集的方式来获取指标,通常用来采集节点级别的指标,例如:节点资源指标、节点上的容器资源指标、节点的性能指标等。
扩展的伯克利数据包过滤器(Extended Berkeley Packet Filter,eBPF)”是一种数据包过滤技术,是从柏克莱封包过滤器(Berkeley Packet Filter,BPF)技术扩展而来的,BPF提供了一种在内核事件和用户程序事件发生时安全注入代码的机制,这就让非内核开发人员也可以对内核进行控制。eBPF则是对BPF的一些扩展,将原本单一的数据包过滤事件逐步扩展到了内核态函数、用户态函数、跟踪点、性能事件(perf_events)以及安全控制等。eBPF程序架构强调安全性和稳定性,看上去更像内核模块,但与内核模块不同,eBPF程序不需要重新编译内核,并且可以确保eBPF程序运行完成,而不会造成系统的崩溃。eBPF程序并不像常规的线程那样,启动后就一直运行在那里,它需要事件触发后才会执行。这些事件包括系统调用、内核跟踪点、内核函数和用户态函数的调用退出、网络事件,等等。借助于强大的内核态插桩(kprobe)和用户态插桩(uprobe),eBPF程序几乎可以在内核和应用的任意位置进行插桩。
本实施例,在所有应用所在的宿主机os上,只需要部署一套agent即可完成当前os下所有应用进程的原始数据采集。我们采用eBPF技术在os内核进行网络连接的过程,即socket连接的各个阶段的内核函数使用光盘测试软件(kprobe)追踪拿到网络数据包。
根据上述实施例,控制agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包之后,还包括:
建立eBPF Map;
对应地,将网络数据包与进程元数据关联,包括:
通过eBPF Map将网络数据包与进程元数据关联,其中,进程元数据包括进程标识符与文件描述符。
使用eBPF的kprobe从内核态socket函数拿到网络数据包只是第一步,拿到数据包之后紧接着在内核中建立一系列的eBPF Map来关联这些网络数据包和进程元数据数据。
根据上述实施例,将网络数据包发送至用户态之后,根据协议类型对网络数据包进行数据解析之前,还包括:
将网络数据包复制到缓存;
分析网络数据包所属的具体应用来源。
将网络数据包复制到缓存后分析网络数据包所属的具体应用来源。
另外,根据协议类型对网络数据包进行数据解析之后,还包括:
删除缓存中进行数据解析后的网络数据包的原始数据。
从内存中及时回收掉在用户态缓存已经解析过的数据包,以及时释放内存。
在上述实施例中,对于应用可观测数据采集处理方法进行了详细描述,本申请还提供应用可观测数据采集处理装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
基于功能模块的角度,图4为本申请实施例提供的一种应用可观测数据采集处理装置的结构图,如图4所示,应用可观测数据采集处理装置,包括:
采集模块41,用于采集socket连接建立过程中产生的网络数据包;
判断模块42,用于对网络数据包协议所属的网络协议进行初步判断,得到协议类型;
第一过滤模块43,用于根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;
第一关联模块44,用于将网络数据包与进程元数据关联;
发送模块45,用于将网络数据包发送至用户态;
处理模块46,用于在用户态对网络数据包进行处理以进行查询。
具体地,采集模块41采集socket连接建立过程中产生的网络数据包;判断模块42对网络数据包协议所属的网络协议进行初步判断,得到协议类型;第一过滤模块43根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;第一关联模块44将网络数据包与进程元数据关联;发送模块45将网络数据包发送至用户态;处理模块46在用户态对网络数据包进行处理以进行查询。本申请通过在内核态对网络数据包进行协议分析、预过滤,支持精准采样,不需要对代码层面进行字节修改,在字节码层面为非入侵式的,且不限制语言类型,能够较大的减少CPU等系统资源的消耗。
优选地,还包括:
解析子单元,用于根据协议类型对网络数据包进行数据解析;
聚合分析子单元,用于对网络数据包的数据请求与应答进行聚合分析;
预过滤子单元,用于对进行数据解析后的网络数据包进行过滤,以得到预设指定类型协议的网络数据包;
第一关联子单元,用于将进程元数据与应用元数据进行关联。
聚合分类子单元对网络数据包的数据来源进行聚合分类;
装载子单元,用于将网络数据包装载至时序数据库。
部署子单元,用于部署agent采集端;
采集子单元,用于控制agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包。
建立子单元,用于建立eBPF Map;
对应地,将网络数据包与进程元数据关联,包括:
第二关联子单元,用于通过eBPF Map将网络数据包与进程元数据关联,其中,进程元数据包括进程标识符与文件描述符。
复制模块,用于将网络数据包复制到缓存;
分析模块,用于分析网络数据包所属的具体应用来源。
删除模块,用于删除缓存中进行数据解析后的网络数据包的原始数据。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图5为本申请实施例提供的另一种应用可观测数据采集处理装置的结构图,如图5所示,应用可观测数据采集处理装置包括:存储器50,用于存储计算机程序;
处理器51,用于执行计算机程序时实现如上述实施例(应用可观测数据采集处理方法)获取用户操作习惯信息的方法的步骤。
本实施例提供的应用可观测数据采集处理装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器51可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器51可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器51也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器51可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器51还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器50可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器50还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器50至少用于存储以下计算机程序501,其中,该计算机程序被处理器51加载并执行之后,能够实现前述任一实施例公开的应用可观测数据采集处理方法的相关步骤。另外,存储器50所存储的资源还可以包括操作系统502和数据503等,存储方式可以是短暂存储或者永久存储。其中,操作系统502可以包括Windows、Unix、Linux等。数据503可以包括但不限于实现应用可观测数据采集处理方法所涉及到的数据等。
在一些实施例中,应用可观测数据采集处理装置还可包括有显示屏52、输入输出接口53、通信接口54、电源55以及通信总线56。
本领域技术人员可以理解,图5中示出的结构并不构成对应用可观测数据采集处理装置的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的应用可观测数据采集处理装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:应用可观测数据采集处理方法,包括:采集socket连接建立过程中产生的网络数据包;对网络数据包协议所属的网络协议进行初步判断,得到协议类型;根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;将网络数据包与进程元数据关联;将网络数据包发送至用户态;在用户态对网络数据包进行处理以进行查询,本申请通过在内核态对网络数据包进行协议分析、预过滤,支持精准采样,不需要对代码层面进行字节修改,在字节码层面为非入侵式的,且不限制语言类型,能够较大的减少CPU等系统资源的消耗。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述应用可观测数据采集处理方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的计算机可读存储介质,其上存储有计算机程序,当处理器执行该程序时,可实现以下方法:应用可观测数据采集处理方法,包括:采集socket连接建立过程中产生的网络数据包;对网络数据包协议所属的网络协议进行初步判断,得到协议类型;根据协议类型对网络数据包进行预过滤,以排除无效协议与非配置协议;将网络数据包与进程元数据关联;将网络数据包发送至用户态;在用户态对网络数据包进行处理以进行查询,本申请通过在内核态对网络数据包进行协议分析、预过滤,支持精准采样,不需要对代码层面进行字节修改,在字节码层面为非入侵式的,且不限制语言类型,能够较大的减少CPU等系统资源的消耗。
以上对本申请所提供的应用可观测数据采集处理方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种应用可观测数据采集处理方法,其特征在于,包括:
采集socket连接建立过程中产生的网络数据包;
对所述网络数据包协议所属的网络协议进行初步判断,得到协议类型;
根据所述协议类型对所述网络数据包进行预过滤,以排除无效协议与非配置协议;
将所述网络数据包与进程元数据关联;
将所述网络数据包发送至用户态;
在所述用户态对所述网络数据包进行处理以进行查询。
2.根据权利要求1所述的应用可观测数据采集处理方法,其特征在于,所述在所述用户态对所述网络数据包进行处理以进行查询,包括:
根据所述协议类型对所述网络数据包进行数据解析;
对所述网络数据包的数据请求与应答进行聚合分析;
对进行数据解析后的所述网络数据包进行过滤,以得到预设指定类型协议的所述网络数据包;
将所述进程元数据与应用元数据进行关联。
3.根据权利要求2所述的应用可观测数据采集处理方法,其特征在于,所述将所述进程元数据与应用元数据进行关联之后,还包括:
对所述网络数据包的数据来源进行聚合分类;
将所述网络数据包装载至时序数据库。
4.根据权利要求1所述的应用可观测数据采集处理方法,其特征在于,所述采集socket连接建立过程中产生的网络数据包,包括:
部署agent采集端;
控制所述agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包。
5.根据权利要求4所述的应用可观测数据采集处理方法,其特征在于,所述控制所述agent采集端通过eBPF采集socket连接建立过程中产生的网络数据包之后,还包括:
建立eBPF Map;
对应地,所述将所述网络数据包与进程元数据关联,包括:
通过所述eBPF Map将所述网络数据包与进程元数据关联,其中,所述进程元数据包括进程标识符与文件描述符。
6.根据权利要求2所述的应用可观测数据采集处理方法,其特征在于,所述将所述网络数据包发送至用户态之后,所述根据所述协议类型对所述网络数据包进行数据解析之前,还包括:
将所述网络数据包复制到缓存;
分析所述网络数据包所属的具体应用来源。
7.根据权利要求6所述的应用可观测数据采集处理方法,其特征在于,所述根据所述协议类型对所述网络数据包进行数据解析之后,还包括:
删除所述缓存中进行数据解析后的所述网络数据包的原始数据。
8.一种应用可观测数据采集处理装置,其特征在于,包括:
采集模块,用于采集socket连接建立过程中产生的网络数据包;
判断模块,用于对所述网络数据包协议所属的网络协议进行初步判断,得到协议类型;
第一过滤模块,用于根据所述协议类型对所述网络数据包进行预过滤,以排除无效协议与非配置协议;
第一关联模块,用于将所述网络数据包与进程元数据关联;
发送模块,用于将所述网络数据包发送至用户态;
处理模块,用于在所述用户态对所述网络数据包进行处理以进行查询。
9.一种应用可观测数据采集处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的应用可观测数据采集处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的应用可观测数据采集处理方法的步骤。
CN202211674914.7A 2022-12-26 2022-12-26 一种应用可观测数据采集处理方法、装置及介质 Pending CN116016702A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211674914.7A CN116016702A (zh) 2022-12-26 2022-12-26 一种应用可观测数据采集处理方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211674914.7A CN116016702A (zh) 2022-12-26 2022-12-26 一种应用可观测数据采集处理方法、装置及介质

Publications (1)

Publication Number Publication Date
CN116016702A true CN116016702A (zh) 2023-04-25

Family

ID=86031080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211674914.7A Pending CN116016702A (zh) 2022-12-26 2022-12-26 一种应用可观测数据采集处理方法、装置及介质

Country Status (1)

Country Link
CN (1) CN116016702A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737523A (zh) * 2023-08-10 2023-09-12 中国电子投资控股有限公司 一种基于边缘计算的可观测性数据采集方法
CN117544506A (zh) * 2023-11-09 2024-02-09 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法
CN117743181A (zh) * 2023-12-25 2024-03-22 杭州云掣科技有限公司 一种构建可观测控制面的系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019609A1 (en) * 2012-07-10 2014-01-16 Nathaniel C. Williams Methods and Computer Program Products for Analysis of Network Traffic by Port Level and/or Protocol Level Filtering in a Network Device
CN108712459A (zh) * 2018-03-30 2018-10-26 深圳市风云实业有限公司 协议报文跨层通信方法、装置及电子设备
CN109086193A (zh) * 2017-06-13 2018-12-25 阿里巴巴集团控股有限公司 监控方法、装置及系统
CN111917777A (zh) * 2020-08-03 2020-11-10 中国电子科技集团公司第三十六研究所 网络数据解析方法、装置和电子设备
CN113467964A (zh) * 2021-05-24 2021-10-01 派日科技(广州)有限公司 接入用户态协议栈的实现方法、系统、装置及存储介质
CN115002186A (zh) * 2022-05-17 2022-09-02 深信服科技股份有限公司 网络信息采集方法、装置、电子设备及可读存储介质
WO2022257643A1 (zh) * 2021-06-11 2022-12-15 中兴通讯股份有限公司 网络传输层数据处理方法、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019609A1 (en) * 2012-07-10 2014-01-16 Nathaniel C. Williams Methods and Computer Program Products for Analysis of Network Traffic by Port Level and/or Protocol Level Filtering in a Network Device
CN109086193A (zh) * 2017-06-13 2018-12-25 阿里巴巴集团控股有限公司 监控方法、装置及系统
CN108712459A (zh) * 2018-03-30 2018-10-26 深圳市风云实业有限公司 协议报文跨层通信方法、装置及电子设备
CN111917777A (zh) * 2020-08-03 2020-11-10 中国电子科技集团公司第三十六研究所 网络数据解析方法、装置和电子设备
CN113467964A (zh) * 2021-05-24 2021-10-01 派日科技(广州)有限公司 接入用户态协议栈的实现方法、系统、装置及存储介质
WO2022257643A1 (zh) * 2021-06-11 2022-12-15 中兴通讯股份有限公司 网络传输层数据处理方法、设备及存储介质
CN115002186A (zh) * 2022-05-17 2022-09-02 深信服科技股份有限公司 网络信息采集方法、装置、电子设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘畅: "基于 eBPF 的容器网络可观测性方法与实践", 中国优秀硕士论文全文库,信息科技辑, 15 February 2022 (2022-02-15), pages 1 - 73 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737523A (zh) * 2023-08-10 2023-09-12 中国电子投资控股有限公司 一种基于边缘计算的可观测性数据采集方法
CN116737523B (zh) * 2023-08-10 2023-12-01 中国电子投资控股有限公司 一种基于边缘计算的可观测性数据采集方法
CN117544506A (zh) * 2023-11-09 2024-02-09 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法
CN117544506B (zh) * 2023-11-09 2024-05-24 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法
CN117743181A (zh) * 2023-12-25 2024-03-22 杭州云掣科技有限公司 一种构建可观测控制面的系统

Similar Documents

Publication Publication Date Title
US11474673B1 (en) Handling modifications in programming of an iterative message processing system
US11194552B1 (en) Assisted visual programming for iterative message processing system
US11113353B1 (en) Visual programming for iterative message processing system
CN108920259B (zh) 深度学习作业调度方法、系统和相关设备
CN116016702A (zh) 一种应用可观测数据采集处理方法、装置及介质
US8812627B2 (en) System and method for installation and management of cloud-independent multi-tenant applications
US10776170B2 (en) Software service execution apparatus, system, and method
US20200410031A1 (en) Systems and methods for cloud computing
JP2020091902A (ja) 分散型データストアのバージョン化された階層型データ構造
CN101799751B (zh) 一种构建主机监控代理软件的方法
CN109634718B (zh) 云平台创建镜像的方法及系统
US11630695B1 (en) Dynamic reassignment in a search and indexing system
US20150370885A1 (en) Method and system for clustering event messages and managing event-message clusters
CN110971939B (zh) 一种违规图片的识别方法及相关装置
US20220179991A1 (en) Automated log/event-message masking in a distributed log-analytics system
CN111258627A (zh) 一种接口文档生成方法和装置
CN109783562B (zh) 一种业务处理方法和装置
CN112465046B (zh) 海量小文件的人工智能训练的方法、系统、设备及介质
WO2022165168A1 (en) Configuring an instance of a software program using machine learning
CN113656673A (zh) 面向广告投放的主从分布内容爬取机器人
US11385936B1 (en) Achieve search and ingest isolation via resource management in a search and indexing system
EP4163798A1 (en) Method and apparatus for managing model file in inference application
CN112883088B (zh) 一种数据处理方法、装置、设备及存储介质
CN109189652A (zh) 一种封闭网络终端行为数据的采集方法及系统
CN112487218A (zh) 内容处理方法、系统、装置、计算设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination