CN118093221A - 分布式信息搜集方法、装置、电子设备和存储介质 - Google Patents

分布式信息搜集方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN118093221A
CN118093221A CN202410055469.9A CN202410055469A CN118093221A CN 118093221 A CN118093221 A CN 118093221A CN 202410055469 A CN202410055469 A CN 202410055469A CN 118093221 A CN118093221 A CN 118093221A
Authority
CN
China
Prior art keywords
data
information
event processing
processing information
kernel
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
CN202410055469.9A
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.)
Beijing MetarNet Technologies Co Ltd
Original Assignee
Beijing MetarNet Technologies 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 Beijing MetarNet Technologies Co Ltd filed Critical Beijing MetarNet Technologies Co Ltd
Priority to CN202410055469.9A priority Critical patent/CN118093221A/zh
Publication of CN118093221A publication Critical patent/CN118093221A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机技术领域,提供一种分布式信息搜集方法、装置、电子设备和存储介质,该方法包括:确定目标内核事件的内核函数;基于内核态中的eBPF采集器,采集内核函数的第一事件处理信息;接收多个主机节点发送的第二事件处理信息;基于第一事件处理信息和第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;目标数据表征所需搜集的异常数据。本申请基于eBPF采集器在内核中采集目标内核事件的事件处理信息,并基于事件处理信息过滤无用信息;同时基于分布式信息同步机制让所有的主机节点能够进行无用信息过滤,最终得到所需搜集的异常数据,从而减少来自分布式系统的信息搜集数量,提高数据搜集效率。

Description

分布式信息搜集方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式信息搜集方法、装置、电子设备和存储介质。
背景技术
目前,信息搜集和输出的框架(exporter),该框架在各个系统上搜集系统数据和服务数据,并将搜集的数据上传到一个统一的数据集中点进行存储和展现。该框架的问题在于搜集所有的数据并存储,但是在实际应用中,大部分数据是无效的且在短期存储后被删除,然而该框架依然会为这些无效数据做出存储、索引和展现的计划,从而降低数据搜集效率。
发明内容
本申请提供一种分布式信息搜集方法、装置、电子设备和存储介质,用以解决现有技术中数据搜集效率低的问题,通过基于eBPF采集器在内核中采集目标内核事件的事件处理信息,并基于事件处理信息过滤无用信息;同时基于分布式信息同步机制让所有的主机节点能够进行无用信息过滤,最终得到所需搜集的异常数据,从而减少来自分布式系统的信息搜集数量,提高数据搜集效率。
本申请提供一种分布式信息搜集方法,应用于分布式系统中的主机节点,包括:
确定目标内核事件的内核函数;
基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收多个主机节点发送的第二事件处理信息;
基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
根据本申请提供的一种分布式信息搜集方法,所述基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据,包括:
基于所述第一事件处理信息和所述第二事件处理信息,确定所述缓存数据中的异常数据;
基于所述异常数据,过滤所述缓存数据中的正常数据,得到所述目标数据。
根据本申请提供的一种分布式信息搜集方法,所述基于所述第一事件处理信息和所述第二事件处理信息,确定所述缓存数据中的异常数据,包括:
确定所述第一事件处理信息和所述第二事件处理信息中的预设的异常数据;所述预设的异常数据至少包括异常内核函数、异常参数值以及异常返回值;
将与所述预设的异常数据匹配的缓存数据作为所述异常数据。
根据本申请提供的一种分布式信息搜集方法,所述基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息,包括:
基于所述eBPF采集器,监测所述内核函数的调用信息;
基于所述调用信息确定所述内核函数被调用,则运行所述eBPF采集器中的eBPF程序,以采集所述内核函数的第一事件处理信息。
根据本申请提供的一种分布式信息搜集方法,确定所述目标内核事件的步骤包括:
确定待追踪数据;
基于所述待追踪数据与内核事件的关联信息,确定所述目标内核事件。
根据本申请提供的一种分布式信息搜集方法,所述基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据之后,还包括:
向信息汇总器发送所述目标数据;
其中,所述信息汇总器接收各主机节点发送的所述目标数据,并对显示所述目标数据。
根据本申请提供的一种分布式信息搜集方法,所述基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息之后,还包括:
基于消息同步机制,将所述第一事件处理信息同步至各主机节点的搜集器。
本申请提供一种分布式信息搜集装置,包括:
内核函数确定模块,用于确定目标内核事件的内核函数;
采集模块,用于基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收模块,用于接收多个主机节点发送的第二事件处理信息;
过滤模块,用于基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述分布式信息搜集方法。
本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述分布式信息搜集方法。
本申请提供的分布式信息搜集方法、装置、电子设备和存储介质,通过确定目标内核事件的内核函数;基于内核态中的eBPF采集器,采集内核函数的第一事件处理信息;接收多个主机节点发送的第二事件处理信息;基于第一事件处理信息和第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;目标数据表征所需搜集的异常数据。本申请基于eBPF采集器在内核中采集目标内核事件的事件处理信息,并基于事件处理信息过滤无用信息;同时基于分布式信息同步机制让所有的主机节点能够进行无用信息过滤,最终得到所需搜集的异常数据,从而减少来自分布式系统的信息搜集数量,提高数据搜集效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的分布式信息搜集方法的流程示意图;
图2是本申请提供的基于eBPF的分布式信息过滤与搜集系统的结构示意图;
图3是本申请提供的分布式信息搜集装置的结构示意图;
图4是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请的描述中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合图1-图4描述本申请的分布式信息搜集方法、装置、电子设备和存储介质。
具体地,本申请提供了一种分布式信息搜集方法,参照图1,图1是本申请提供的分布式信息搜集方法的流程示意图。
本申请实施例提供的分布式信息搜集方法,包括:
步骤100,确定目标内核事件的内核函数。
本申请实施例应用于分布式系统中的主机节点,该主机节点可以理解为主机系统或计算节点操作系统。主机节点包括内核态和用户态,其中,内核态中包含多种内核事件,每种内核事件对应不同的内核函数,如表1所示。内核函数是操作系统内核的一部分,用于处理特定的内核事件或提供特定的功能。
表1
在表1中仅列举了部分内核事件,还包括网络事件、系统调用处理、信号处理、定时器管理、电源管理、文件系统、设备驱动等事件。
确定待追踪数据,然后基于待追踪数据与内核事件的关联信息,确定目标内核事件。其中,待追踪数据可以理解为待追踪的特定行为或问题,如系统性能瓶颈、应用程序崩溃等。例如,基于数据搜集需求信息,确定待追踪的特定行为或问题,进一步确定待追踪的特定行为或问题对应的内核事件,即目标内核事件,例如,假设待追踪的问题为中断问题,则确定中断事件为目标内核事件。
在确定目标内核事件后,定位目标内核事件对应的内核函数。例如,参考表1,基于内核事件与内核函数的映射关系,确定目标内核事件的内核函数。
可选地,如果目标内核事件不可以直接映射至特定的内核函数,则需要通过分析内核堆栈信息或其他相关数据来确定内核事件的来源,再确定内核函数。
步骤200,基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息。
扩展的伯克利数据包过滤器(Extended Berkeley Packet Filter,eBPF)采集器位于主机节点的内核态中。其中,eBPF采集器是指通过使用eBPF技术来进行数据采集和分析的工具或程序,eBPF是一种在Linux内核中运行的虚拟机技术,它允许用户编写并加载自定义的程序代码到内核中,以对网络数据包、系统调用和其他内核事件进行实时跟踪和监控。
基于eBPF采集器,对内核函数进行追踪,以采集内核函数的第一事件处理信息,其中,第一事件处理信息至少包括以下信息:
(1)函数调用路径:eBPF程序通过跟踪内核堆栈信息,记录函数调用的路径,这可以帮助了解内核函数之间的关系和执行顺序。
(2)函数执行时间:eBPF程序通过在函数入口和出口处插入时间戳,可以测量内核函数的执行时间,以评估其性能和效率。
(3)参数和返回值:eBPF程序可以捕获内核函数的参数和返回值,以便分析函数的输入和输出数据。
(4)调用频率和计数:eBPF程序可以统计内核函数的调用次数,以及每个函数调用的频率,这有助于确定热点函数,或者检测异常调用。
(5)状态和变量:eBPF程序可以监控和记录内核函数中的状态和变量的值,这提供了对函数执行期间内部状态的可见性和分析能力。
(6)运行环境参数:eBPF程序可以捕获运行环境的一些参数和上下文信息,包括:
进程信息:eBPF程序可以获取调用者的进程ID、线程ID、用户ID等信息,以及进程的命令行参数、执行路径等;
文件描述符和文件信息:使用eBPF程序,可以追踪进程打开的文件描述符,并获取文件的元数据,如文件名、文件大小、文件类型等;
网络信息:eBPF程序可以捕获网络数据包的相关信息,如源IP地址、目标IP地址、协议类型、端口号等。
内存和CPU性能指标:通过与eBPF等工具集结合,eBPF程序可以收集内存和CPU的性能指标,如内存使用量、CPU利用率、缓存命中率等。
步骤300,接收多个主机节点发送的第二事件处理信息。
在分布式系统中,各主机节点的用户态中的搜集器接收到eBPF采集器上报的第二事件处理信息后,通过消息同步机制将第二事件处理信息共享至分布式系统中的其他主机节点的搜集器。其中,第二事件处理信息同样包括函数调用路径、函数执行时间、参数和返回值、调用频率和计数、状态和变量以及运行环境参数等信息。
可以理解的是,各主机节点之间共享第二事件处理信息的原因包括以下几个方面:
(1)当分布式系统中的某一主机节点出现异常或错误时,需要综合考虑多个主机节点的数据来确定问题的根源。基于此,通过共享eBPF采集器的采集的第二事件处理信息,可以跟踪故障,快速定位问题。
(2)在分布式系统中,一些操作可能需要跨多个主机节点进行,例如分布式事务或并行计算。通过共享eBPF采集器的采集的第二事件处理信息,可以用于确保数据一致性、协调节点之间的操作,并处理可能的冲突和异常情况。
(3)分布式系统的性能优化需要全局视角,而不仅关注单个主机节点的指标。通过共享eBPF采集器的采集的第二事件处理信息,可以对整个系统的性能进行监控和分析,识别性能瓶颈、优化热点,从而改进系统的整体性能。
步骤400,基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据。
需要说明的是,目标数据表征所需搜集的异常数据,例如,功能性失效数据,包括发送数据包失败、存储读取失败等数据;性能异常数据,包括数据包传输时延长、IO读取耗时高以及分布失衡等数据。
基于第一事件处理信息和第二事件处理信息,确定用户态中的缓存数据的正常数据,过滤正常数据得到目标数据,即得到异常数据。进一步地,向信息汇总器发送目标数据,其中,信息汇总器接收各主机节点发送的目标数据,并对显示目标数据。
本申请实施例提供的分布式信息搜集方法,通过确定目标内核事件的内核函数;基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集内核函数的第一事件处理信息;接收多个主机节点发送的第二事件处理信息;基于第一事件处理信息和第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;目标数据表征所需搜集的异常数据。本申请实施例基于eBPF采集器在内核中采集目标内核事件的发生情况以及相关的环境信息,并基于采集信息过滤无用信息;同时基于分布式信息同步机制让所有的主机节点能够进行无用信息过滤,最终得到所需搜集的异常数据,从而减少来自分布式系统的信息搜集数量,提高数据搜集效率。
基于上述实施例,所述基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据,包括:
步骤411,基于所述第一事件处理信息和所述第二事件处理信息,确定所述缓存数据中的异常数据;
步骤412,基于所述异常数据,过滤所述缓存数据中的正常数据,得到所述目标数据。
确定第一事件处理信息和第二事件处理信息中的预设的异常数据,然后将与预设的异常数据匹配的缓存数据作为异常数据。其中,预设的异常数据至少包括异常内核函数、异常参数值以及异常返回值。进一步,基于异常数据,过滤缓存数据中的正常数据,得到目标数据。例如,搜集器首先基于eBPF采集器发送的第一事件处理信息过滤缓存数据中的正常数据,然后基于其他主机节点的搜集器共享的第二事件处理信息过滤缓存数据中的正常数据,从而得到缓存数据中的异常数据,即目标数据。
一示例中,首先,确定所需目标数据的类型特征,包括某个内核函数被触发、触发参数中包含某个值、返回值的某个字段等。确保对特征进行准确规范,以便筛选和捕获目标数据。然后,使用eBPF采集器来监控和搜集操作系统中满足特定类型特征的数据,根据预先定义的特征条件,捕捉符合条件的数据即可视为目标数据(异常数据)。同时,将捕捉到的目标数据的相关内容共享到其他搜集器中,确保目标数据得到适当的处理和分析,进一步挖掘其潜在的异常或错误特征。对于没有匹配到任何类型特征的数据,可以将其视为正常数据,不满足特定类型特征的数据可以在后续处理中丢弃或忽略。
可选地,还可以通过预先定义的规则或模式,对参数、返回值和环境信息等事件处理信息进行匹配。例如,对于某个系统调用,可以定义一个规则,如果其返回值为负数,则表示该操作失败;如果返回值为正数,则表示该操作成功。如果有大量的系统调用返回值不符合这个规则,则可以将其视为异常数据。
可选地,还可以通过分析参数、返回值和环境信息等事件处理信息的数据分布,来检测异常数据。例如,对于某个系统调用的返回值,可以计算其平均值、标准差等统计指标,如果某个返回值偏离统计指标,可以将其视为异常数据。
可选地,还可以通过设置阈值,对参数、返回值和环境信息等事件处理信息进行检测。例如,对于某个系统调用的返回值,可以设置一个阈值,如果该返回值超过该阈值,则可以将其视为异常数据。
可选地,还可以通过监督学习、无监督学习等方法来识别异常数据。例如,使用分类或聚类算法,将数据分类为正常和异常两类,然后对新数据进行分类,如果被分类为异常,则可以将其视为异常数据。
本申请实施例在分布式系统中,通过搜集器之间的信息同步和筛选条件的共享,实现从内核到用户应用的全系统异常逻辑构建,并减少所需搜集的信息总量,提高了数据搜集效率。
基于上述实施例,所述基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息,包括:
步骤211,基于所述eBPF采集器,监测所述内核函数的调用信息;
步骤212,基于所述调用信息确定所述内核函数被调用,则运行所述eBPF采集器中的eBPF程序,以采集所述内核函数的第一事件处理信息。
本申请实施例通过使用eBPF采集器,追踪内核函数的参数和返回值等第一事件处理信息,包括以下步骤:
(1)创建一个eBPF程序,用于在特定内核函数调用时捕获参数和返回值。例如,可以使用C语言编写程序,并将其编译为eBPF字节码。
(2)在eBPF程序中,可以使用特定的eBPF函数来访问函数的参数和返回值。例如,可以使用bpf_probe_read()函数来读取参数的值,使用bpf_get_retval()函数来获取返回值。
(3)将编译好的eBPF程序加载到内核中,例如,使用bpftool或ip命令来完成加载操作。
(4)在eBPF程序被加载到内核中后,开始监测并捕获指定内核函数的调用信息。当内核函数被调用时,eBPF程序会运行,并提取参数和返回值的具体信息。
(5)使用eBPF的用户空间工具(如bpftrace或bcc)来解析和分析捕获的参数和返回值。
本申请实施例通过在内核中运行eBPF程序,对内核函数进行实时监控和追踪,以采集内核函数的第一事件处理信息,基于此,可以确定内核函数的行为、调用原因以及所处环境,有助于故障排查、性能优化等方面的工作。
基于上述实施例,所述基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息之后,还包括:
步骤421,基于消息同步机制,将所述第一事件处理信息同步至各主机节点的搜集器。
本申请实施例通过消息同步机制将第一事件处理信息同步至所有主机节点上的搜集器。例如,借助分布式消息队列(Distributed Message Queue)等技术来完成信息共享操作,具体包括以下步骤:
(1)消息队列设置:首先,需要在各主机节点中设置一个消息队列,用于存储和传递消息。其中,消息队列可以为RabbitMQ、Apache Kafka等。
(2)数据发布:在第一事件处理信息产生的主机节点上,将数据封装成消息,并发布到消息队列中。这可以通过使用消息队列提供的客户端库实现,例如,使用RabbitMQ提供的AMQP协议进行数据发布。
(3)消息订阅:在各个主机节点的搜集器节点上,创建相应的订阅者,订阅消息队列中的数据。通过订阅者,主机节点可以接收并处理从消息队列中传递过来的消息。
(4)消息处理:每个搜集器接收到消息后,可以根据需要进行相应的处理。例如,将消息存储到数据库中、进行实时分析等。
(5)消息确认:在消息处理完成后,主机节点可以向消息队列发送确认消息,表示已成功处理该消息。基于此,消息队列可以将已确认的消息从队列中移除。
通过上述步骤,第一事件处理信息可以通过消息同步机制传输到所有主机节点的搜集器,该方式可以实现数据的分布式收集和处理,提高系统的可伸缩性和灵活性。
一实施例中,在主机节点上设置一个Kafka消息队列作为中间件,然后,使用Kafka客户端库将第一事件处理信息封装成消息并发布到Kafka队列中。在其他主机节点上,创建Kafka消费者来订阅Kafka队列中的第一事件处理信息。其他主机节点接收到第一事件处理信息后,可以将其存储到数据库中或进行实时分析。基于此,当主机节点产生第一事件处理信息时,消息会通过Kafka消息队列被传递到所有的主机节点的搜集器上,实现了第一事件处理信息的同步。
本申请实施例采用消息同步机制同步第一事件处理信息至分布式系统中其他主机节点的搜集器中,确保各主机节点可以筛选出异常数据,从而提高数据搜集的效率。
为了进一步对本申请提出的分布式信息搜集方法进行解析说明,参考图2和以下实施例。
本申请实施例的目的是在分布式系统中,通过搜集器之间的信息同步和筛选条件的共享,实现从内核到用户应用的全系统异常逻辑构建,并减少所需搜集的信息总量。具体目标包括:
专注于异常信息:通过定义和传递筛选条件,只搜集异常信息而不搜集正常信息。这样可以减少对正常运行数据的处理和存储,集中关注系统的异常情况,有助于故障排查、性能优化等方面的工作。
全系统异常逻辑构建:通过从内核到用户应用的全方位搜集和同步,可以获得更完整和细粒度的异常信息。这对于分布式系统的监控、调试和故障排查非常重要,可以快速定位问题并采取相应的措施。
减少搜集信息总量:通过共享筛选条件,搜集器之间可以相互协作,避免重复搜集和处理相同的数据。这样可以减少分布式系统中所需搜集的信息总量,节省存储和计算资源。
通过实现上述目标,可以提高分布式系统的效率和准确性,降低资源消耗,并使异常处理和故障排查更加高效和精确。同时,也可以减少正常数据的处理负担,集中精力关注系统异常情况,提高数据搜集效率。
本申请实施例具体提供一种基于eBPF的分布式信息过滤与搜集方法,涉及云计算、微服务、互联网等领域,包括对系统状态和系统上运行的服务状态的所有信息进行搜集,基于eBPF对内核事件进行监控并过滤出重要事件的相关信息,通过消息同步机制将重要信息传递到分布式的主机节点中,各个主机节点基于重要的信息对所有信息进行过滤从而得到过滤后的信息,最后各个主机节点汇总过滤后的信息并完成分布式系统的信息搜集。
为了减少正确但是无效的信息搜集,本申请实施例还提出一种基于eBPF的分布式信息过滤与搜集系统,如图2所示,该系统是一个分布式系统,包括信息汇总器和多个计算机节点操作系统(即主机节点),其中,每个计算机节点操作系统分为用户态和内核态,搜集器位于用户态,eBPF采集器位于内核态。各组件的功能如下:
(1)eBPF采集器:针对所需要追踪的信息,定位所需要的内核函数,通过eBPF采集器追踪该内核函数的参数、返回值的具体信息,从而定义这一类信息出现的原因以及环境信息,同时,将所定义的这一类信息的内容以及相关的环境信息传递至用户态的搜集器。
具体地,构建一个内核关键事件的内核函数以及相应的参数和返回值的关系。首先确定需要追踪的内核事件(即核心内核事件)以及对应的内核函数;然后根据其参数和返回值获得运行环境参数;通过eBPF程序捕捉运行环境参数,并将事件记录与环境参数全部记录下之后传递至用户态运行的搜集器。
例如,假设有一个内核函数do_something(),它在内核态中执行某个关键任务。当前需要追踪这个函数的参数和返回值,并将相关信息传递给用户态的搜集器。
通过eBPF采集器,在内核中插入一段eBPF程序,该eBPF程序针对do_something()函数进行追踪。具体步骤如下:
1)定位内核函数:确定需要追踪的内核函数do_something()的位置。
2)编写eBPF程序:编写eBPF程序,通过在do_something()函数的入口和出口处插入代码来捕获参数和返回值。例如,使用eBPF程序捕获函数的参数值和返回值,并将其保存在内存中。
3)确定出现原因和环境信息:根据需求信息,在eBPF程序中添加额外的代码来获取函数调用发生的原因和所在的特定环境信息。例如,可以获取函数调用的进程ID、线程ID,或者当前的系统时间等。
4)传递给用户态的搜集器:eBPF程序捕获到参数、返回值以及其他相关的环境信息后,这些信息传递给用户态的搜集器。
通过eBPF采集器追踪内核函数的参数和返回值等信息,并将相关信息传递给用户态的搜集器,可以帮助获取特定内核事件的执行情况并进行进一步分析,同时,可以更好地理解特定内核函数的行为、调用原因以及所处环境,有助于故障排查、性能优化等方面的工作。
(2)搜集器:搜集器基于已有的搜集方式(如exporter)集中存储(可暂存)用户所需求的数据,然后基于eBPF采集器传递的信息过滤暂存的数据,从而筛选出有必要向用户报告的内容。同时,通过消息同步机制将事件处理信息同步到所有各个主机节点上的搜集器;搜集器将本地过滤的结果和基于收到的事件处理信息过滤的结果上传到信息汇总器。
具体地,分布式的搜集器需要互相同步来自eBPF的事件处理信息,直到每个搜集器都拿到相同的信息。搜集器需要通过事件处理信息来过滤已经接收到的其他数据源的信息,同时,将过滤后的信息汇总到信息汇总器。
(3)信息汇总器:汇总各个主机节点上的搜集器传递过来的信息,进行信息归类、处理、输出和展示。例如,信息汇总器的工作流程如下:
数据接收:通过网络或其他通信方式接收来自各个搜集器的数据。例如,每个搜集器将数据封装为特定格式(如JSON、XML等)进行传输。
数据归类:将接收到的数据进行归类,例如,根据数据的类型和来源将其分组,以便后续处理。
数据处理:针对每个数据组,执行一系列的处理操作。
数据输出和展示:处理后的数据可以以不同的形式进行输出和展示,可以生成报告、图表、图像等形式,以便用户更好地理解和分析系统的状态,也可以将数据保存到数据库中,以供后续查询和使用。
本申请实施例基于eBPF采集器在内核中采集目标内核事件的发生情况以及相关的环境信息,并基于采集信息过滤无用信息;同时基于分布式信息同步机制让所有的主机节点能够进行无用信息过滤,最终得到所需搜集的异常数据,从而减少来自分布式系统的信息搜集数量,提高数据搜集效率。
图3是本申请提供的分布式信息搜集装置的结构示意图,参照图3,本申请的实施例提供了一种分布式信息搜集装置,包括内核函数确定模块301、采集模块302、接收模块303和过滤模块304。
内核函数确定模块301,用于确定目标内核事件的内核函数;
采集模块302,用于基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收模块303,用于接收多个主机节点发送的第二事件处理信息;
过滤模块304,用于基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
本申请实施例提供的分布式信息搜集装置,通过确定目标内核事件的内核函数;基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集内核函数的第一事件处理信息;接收多个主机节点发送的第二事件处理信息;基于第一事件处理信息和第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;目标数据表征所需搜集的异常数据。本申请实施例基于eBPF采集器在内核中采集目标内核事件的发生情况以及相关的环境信息,并基于采集信息过滤无用信息;同时基于分布式信息同步机制让所有的主机节点能够进行无用信息过滤,最终得到所需搜集的异常数据,从而减少来自分布式系统的信息搜集数量,提高数据搜集效率。
在一个实施例中,过滤模块304,还用于:
基于所述第一事件处理信息和所述第二事件处理信息,确定所述缓存数据中的异常数据;
基于所述异常数据,过滤所述缓存数据中的正常数据,得到所述目标数据。
在一个实施例中,过滤模块304,还用于:
确定所述第一事件处理信息和所述第二事件处理信息中的预设的异常数据;所述预设的异常数据至少包括异常内核函数、异常参数值以及异常返回值;
将与所述预设的异常数据匹配的缓存数据作为所述异常数据。
在一个实施例中,采集模块302,还用于:
基于所述eBPF采集器,监测所述内核函数的调用信息;
基于所述调用信息确定所述内核函数被调用,则运行所述eBPF采集器中的eBPF程序,以采集所述内核函数的第一事件处理信息。
在一个实施例中,内核函数确定模块301,还用于:
确定待追踪数据;
基于所述待追踪数据与内核事件的关联信息,确定所述目标内核事件。
在一个实施例中,过滤模块304,还用于:
向信息汇总器发送所述目标数据;
其中,所述信息汇总器接收各主机节点发送的所述目标数据,并对显示所述目标数据。
在一个实施例中,采集模块302,还用于:
基于消息同步机制,将所述第一事件处理信息同步至各主机节点的搜集器。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(CommunicationsInterface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行分布式信息搜集方法,该方法包括:
确定目标内核事件的内核函数;
基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收多个主机节点发送的第二事件处理信息;
基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的分布式信息搜集方法,该方法包括:
确定目标内核事件的内核函数;
基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收多个主机节点发送的第二事件处理信息;
基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种分布式信息搜集方法,其特征在于,应用于分布式系统中的主机节点,包括:
确定目标内核事件的内核函数;
基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收多个主机节点发送的第二事件处理信息;
基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
2.根据权利要求1所述的分布式信息搜集方法,其特征在于,所述基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据,包括:
基于所述第一事件处理信息和所述第二事件处理信息,确定所述缓存数据中的异常数据;
基于所述异常数据,过滤所述缓存数据中的正常数据,得到所述目标数据。
3.根据权利要求2所述的分布式信息搜集方法,其特征在于,所述基于所述第一事件处理信息和所述第二事件处理信息,确定所述缓存数据中的异常数据,包括:
确定所述第一事件处理信息和所述第二事件处理信息中的预设的异常数据;所述预设的异常数据至少包括异常内核函数、异常参数值以及异常返回值;
将与所述预设的异常数据匹配的缓存数据作为所述异常数据。
4.根据权利要求1所述的分布式信息搜集方法,其特征在于,所述基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息,包括:
基于所述eBPF采集器,监测所述内核函数的调用信息;
基于所述调用信息确定所述内核函数被调用,则运行所述eBPF采集器中的eBPF程序,以采集所述内核函数的第一事件处理信息。
5.根据权利要求1所述的分布式信息搜集方法,其特征在于,确定所述目标内核事件的步骤包括:
确定待追踪数据;
基于所述待追踪数据与内核事件的关联信息,确定所述目标内核事件。
6.根据权利要求1所述的分布式信息搜集方法,其特征在于,所述基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据之后,还包括:
向信息汇总器发送所述目标数据;
其中,所述信息汇总器接收各主机节点发送的所述目标数据,并对显示所述目标数据。
7.根据权利要求1所述的分布式信息搜集方法,其特征在于,所述基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息之后,还包括:
基于消息同步机制,将所述第一事件处理信息同步至各主机节点的搜集器。
8.一种分布式信息搜集装置,其特征在于,包括:
内核函数确定模块,用于确定目标内核事件的内核函数;
采集模块,用于基于内核态中的扩展的伯克利数据包过滤器eBPF采集器,采集所述内核函数的第一事件处理信息;
接收模块,用于接收多个主机节点发送的第二事件处理信息;
过滤模块,用于基于所述第一事件处理信息和所述第二事件处理信息,对用户态中的缓存数据进行过滤,得到目标数据;所述目标数据表征所需搜集的异常数据。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项所述分布式信息搜集方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述分布式信息搜集方法。
CN202410055469.9A 2024-01-15 2024-01-15 分布式信息搜集方法、装置、电子设备和存储介质 Pending CN118093221A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410055469.9A CN118093221A (zh) 2024-01-15 2024-01-15 分布式信息搜集方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410055469.9A CN118093221A (zh) 2024-01-15 2024-01-15 分布式信息搜集方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN118093221A true CN118093221A (zh) 2024-05-28

Family

ID=91158070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410055469.9A Pending CN118093221A (zh) 2024-01-15 2024-01-15 分布式信息搜集方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN118093221A (zh)

Similar Documents

Publication Publication Date Title
CN110245078B (zh) 一种软件的压力测试方法、装置、存储介质和服务器
US9672085B2 (en) Adaptive fault diagnosis
US20190279098A1 (en) Behavior Analysis and Visualization for a Computer Infrastructure
US9369356B2 (en) Conducting a diagnostic session for monitored business transactions
CN109388537B (zh) 运行信息跟踪方法、装置及计算机可读存储介质
CN101997925A (zh) 具有预警功能的服务器监控方法及其系统
CN113836044B (zh) 一种软件故障采集和分析的方法及系统
CN112506915B (zh) 一种应用数据的管理系统以及处理方法、装置和服务器
CN102999314A (zh) 立即延迟跟踪器工具
CN111614483A (zh) 链路监控方法、装置、存储介质及计算机设备
US20100180158A1 (en) Managing Statistical Profile Data
US9600523B2 (en) Efficient data collection mechanism in middleware runtime environment
CN112699007A (zh) 监控机器性能的方法、系统、网络设备及存储介质
Fu et al. Performance issue diagnosis for online service systems
CN114356499A (zh) Kubernetes集群告警根因分析方法及装置
CN111970151A (zh) 虚拟及容器网络的流量故障定位方法及系统
CN114253806A (zh) 一种接入层日志收集分析预警系统
CN110011845B (zh) 日志采集方法及系统
CN111901172A (zh) 基于云计算环境下的应用服务监控方法及系统
CN118093221A (zh) 分布式信息搜集方法、装置、电子设备和存储介质
CN112543127A (zh) 一种微服务架构的监控方法及装置
CN108289035B (zh) 一种直观的网络及业务系统运行状态展现方法及系统
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN114090382B (zh) 超融合集群健康巡检方法和装置
CN117240695B (zh) 基于eBPF的持续性能剖析方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication