日志处理方法、装置、存储介质及电子设备与流程

文档序号:26003991发布日期:2021-07-23 21:21阅读:67来源:国知局
日志处理方法、装置、存储介质及电子设备与流程

本申请涉及计算机技术领域,具体涉及一种日志处理方法、装置、存储介质及电子设备。



背景技术:

随着信息技术的发展,数据量迅速增长,数据的积累也越来越大。在进行数据的传输、交换和处理时,安全性是一个重要的考虑因素,为此,许多与信息处理相关的设备都会产生日志,其中记录了设备上和网络中的日期、时间、使用者及动作等相关操作,可以通过对日志的查询和统计来了解各个设备和整个网络的运行状态。

现有技术中主要通过logstash系统对日志数据进行传输和解析,但随着业务量的增加以及分布式设备的部署,logstash系统在日志数据清理转化过程中会出现占用物理中央处理器资源较高的情况,以及在日志处理高峰时段经常出现消费kafka系统延迟高,甚至崩溃等现象,无法满足用户需求。



技术实现要素:

本申请实施例提供了一种日志处理方法、装置、存储介质及电子设备,可解决日志处理过程中效率低、资源占用率高等技术问题。所述技术方案如下:

第一方面,本申请实施例提供了一种日志处理方法,包括:

从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件;

通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据;

从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。

第二方面,本申请实施例提供了一种日志处理装置,所述装置包括:

确定模块,用于从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件;

接收模块,用于通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据;

发送模块,用于从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。

第三方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第四方面,本申请实施例提供了一种电子设备,包括:存储器和处理器;其中,所述存储器存储有计算机程序,所述计算机程序适用于由所述处理器加载并执行上述的方法步骤。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

上述日志处理方法、装置、存储介质及电子设备工作时,从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据,从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。本申请中电子设备根据日志数据的输入源和输出源,预先生成不同的输入组件、处理组件和输出组件,在处理不同输入源和输出源的日志数据时,调用相对应的组件,相对于调用统一的日志处理模块,可以灵活高效地实现对日志数据的传输解析处理。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种处理系统的网络架构示意图;

图2是本申请实施例提供的一种日志处理方法的交互示意图;

图3是本申请实施例提供的一种日志处理方法的另一交互示意图;

图4是本申请实施例提供的一种获取属性示意图;

图5是本申请实施例提供的一种日至组件库示意图;

图6是本申请实施例提供的一种组件配置示意图;

图7是本申请实施例提供的一种短线超批量处理示意图;

图8是本申请实施例提供的一种组件修改示意图;

图9是本申请实施例提供的一种日志系统平台示意图;

图10是本申请实施例提供的一种日志处理装置的结构示意图;

图11是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。

下面的描述设计附图时,除非另有表示,不同附图中的相同数字表示相同的或相似的要素。以下示例性实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

下面结合具体的实施例对本申请进行详细说明。

图1示出了可以应用于本申请的日志处理方法的示例性系统架构100。

如图1所示,系统架构100可以包括生产端101、电子设备102、消费端103、用户104和监控端105。其中,系统构架100可以应用于各种实际应用场景,例如,当系统构架100应用于线上直播系统时,生产端101可以为老师端、学生端以及后台管理服务器等各种设备,生产端101可以但不限于用于消息(文件/数据/信息等)的发布或者生产等,例如:当生产端进行加载服务执行业务时,产生的请求消息、日志数据等。电子设备102也可以为老师客户端、学生客户端或者后台处理服务器等设备,电子设备102可以但不限于用于负责处理来至于生产端101的消息等。消费端103也可以为老师端、学生端以及后台管理服务器等各种设备,消费端103可以但不限于用于对来自电子设备102处理后的消息的消费或者接收等,例如:学生客户端发送成绩查询请求后,接收到的成绩结果等信息。用户104可以为在进行线上直播课程中的老师或者学生或者家长以及各部门研发人员等,用户104可以用于触发电子设备102上的各种指令,然后电子设备102可以但不限于用于负责读取用户104触发的各种指令,对指令译码并执行指令,选择对应的组件来处理与生产端101和消费端103之间的消息等。监控端105可以为用于监控、存储服务的服务器等设备,监控端105可以但不限于接收来自电子设备102检测的自身处理状态,然后进行分析等处理。

示例性的,在进行线上直播课程的过程中电子设备102可以接收来自用户104的配置指令,基于所述配置指令确定对应的输入组件和处理组件,再通过对应的输入组件和处理组件接收并处理来自生产端101的日志数据,然后通过对应的输出组件将处理后的日志文件发送到消费端103,在电子设备102执行业务的过程中,电子设备102还可以将运行状态上报到监控端105等。

生产端101可以是硬件,也可以是软件。当生产端101为硬件时,可以是具有消息生产能力的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当生产端101为软件时,可以实现成多个软件或软件模块(例如:用来提供分布式处理服务),也可以实现成单个软件或软件模块,在此不作具体限定。

电子设备102可以是硬件,也可以是软件。当电子设备102为硬件时,可以是具有本申请日志处理能力的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当电子设备102为软件时,可以实现成多个软件或软件模块(例如:用来提供分布式消息生产服务),也可以实现成单个软件或软件模块,在此不作具体限定。

消费端103可以是硬件,也可以是软件。当消费端103为硬件时,可以是具有消息消费能力的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当消费端103为软件时,可以实现成多个软件或软件模块(例如:用来提供分布式消息消费服务),也可以实现成单个软件或软件模块,在此不作具体限定。

监控端105可以是硬件,也可以是软件。当监控端105为硬件时,可以是具有数据监控能力的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当监控端105为软件时,可以实现成多个软件或软件模块(例如:用来提供分布式数据监控、存储服务),也可以实现成单个软件或软件模块,在此不作具体限定。

电子设备102与生产端101、消费端103、用户104和监控端105之间可以通过网络进行数据交互,网络可以用于在进行数据传输之间提供通信链路的介质,网络可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(wireless-fidelity,wi-fi)通信链路或微波通信链路等。

应理解,图1中的生产端101、电子设备102、消费端103、用户104和监控端105的数目仅是示意性的。根据实现需要,可以是任意数量的生产端101、电子设备102、消费端103、用户104和监控端105,且都支持分布式集群方式部署。

在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为电子设备进行介绍说明。

下面将结合附图2至图3,对本申请实施例提供的日志处理方法进行详细介绍。

请参见图2,为本申请实施例提供了一种日志处理方法的交互示意图。所述方法可以包括以下步骤:

s201、从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件。

一般的,组件可以是指对数据和方法的简单封装,组件可以有自己的属性和方法,属性可以是组件数据的简单访问特征,方法可以是组件的一些简单而可见的功能,用于加载对应的服务执行业务。组件可以分为复合组件(可以是指将现有的各种组件组合起来,集中组件的性能等)、扩展组件(可用是指在现有组件的基础上增加新的性能或者更改原有的控能等)和自定义组件(可以是指根据用户自定义处理某一业务的组件等)等类型。例如:输入(input)组件可以用于接收来自其它设备的数据等,电子设备可以根据接收数据的接收属性(例如但不限于数据格式、数据大小、传输协议、传输方式等)来设置不同的输入组件。管道(channel)组件可以用于存放来自其它设备的数据(例如但不限于消息请求、日志数据等),电子设备可以通过队列、表格等形式进行存放,根据不同的数据属性(例如但不限于数据类型、格式和大小等),可以设置对应的存放方式(例如但不限于存储位置、保存时间、存储格式和备份策略等)。处理(filter)组件可以是指用来对数据进行处理(例如但不限于过滤、统计等预处理)的组件,电子设备可以根据不同的数据属性定义不同的处理组件,有助于提高业务处理的效率。输出(output)组件可以用来将处理后的数据发送到其它设备,电子设备可以根据发送数据的发送属性(例如但不限于数据格式、数据大小、传输协议、传输方式等)定义不同的输入组件,提高输出效率。电子设备基于不同功能或者业务采用组件化方式来实现对应业务的明确处理,有助于提高业务处理的灵活性,减少对电子设备的维护,提高业务处理效率。

日志组件库可以是指存储有各种组件的集合,存储方式可以为顺序存储、链接存储、索引存储和散列式存储等,电子设备可以将日志组件库存储在本地,便于查询,也可以将日志组件库存储在云端等设备,有助于减少电子设备存储空间,提高运行效率。日志组件库与各组件可以是包含关系,例如:日志组件库中包括三个组件,可以在库目录中通过查询获取对应组件,各组件与日志组件库也可以为对应关系,例如:日志组件库对应三个组件,可以根据具体的对应关系获取对应组件,有助于电子设备快速准确确定对应组件。日志数据可以是指系统产生的过程性事件记录数据等,也可以包括请求消息、文件数据等,本申请目标日志数据的数量可以为一条也可以为多条,这里不作具体限定。

所述目标日志数据可以是电子设备接收到的任意一种日志数据,这里的目标日志数据不具体是指某一种或一类具体日志数据,并没有作具体限定,可以是针对电子设备当前的获取的日志数据,为了与其它正在获取或者之前、之后获取的另外用途的日志数据作区别。所述目标输入组件可以是日志组件库中的任意一种输入组件,这里的目标输入组件不具体是指某一种或一类具体输入组件,并没有作具体限定,可以是针对电子设备当前的确定的处理组件,为了与其它正在执行的另外用途的输入组件作区别,为了与所述目标日志数据作对应。所述目标处理组件可以是日志组件库中的任意一种处理组件,这里的目标处理组件不具体是指某一种或一类具体处理组件,并没有作具体限定,可以是针对电子设备当前的确定的处理组件,为了与其它正在执行的另外用途的处理组件作区别,为了与所述目标日志数据作对应。

在本申请中,电子设备首先需要从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,例如:电子设备确定目标日志数据为在网课直播过程中,下午14时进行英语课的2班所有学生客户端产生的日志数据,然后电子设备从日志组件库中确定对应的目标输入组件为2号输入组件,目标处理组件为5号处理组件。

s202、通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据。

一般的,电子设备在确定目标日志数据对应的目标输入组件和目标处理组件后,需要进行接收并处理所述目标日志数据。电子设备可以基于所述目标输入组件的配置消息(例如但不限于互联网协议地址、端口编号和传输协议等)与生产端建立数据传输端口连接,然后根据端口连接接收来自生产端的目标日志数据。在一种可能的实施例中,电子设备可以先检测资源状态(例如但不限于中央处理器资源、接收数据优先级和数据量大小等因素中至少一个或者组合形式),基于所述资源状态确定接收线程数量,例如:电子设备通过所述目标输入组件采用5线程方式解锁所述目标日志文件,有助于提高接收效率。在一个可能的实施例中电子设备还可以通过分段接收方式解锁所述目标日志数据,例如:电子设备可以同时接收所述目标日志数据的分段数据1和分段数据2,然后再将分段数据1和分段数据2进行合并处理得到完整的所述目标日志数据。电子设备还可以基于加密接收方式保证接收数据的安全性,可以通过随机重复接收来判断接收的完整性,例如:电子设备每隔60分钟,将接收到的预设数据量(例如但不限于5m等)的所述目标日志数据进行完整性验证,以保证接收数据的完整性。

电子设备在通过所述目标输入组件接收所述目标日志数据后,还需要基于所述目标处理组件处理所述目标日志数据,处理可以包括排序处理、过滤处理、格式转换、压缩解压以及各种自定义处理。电子设备可以通过所述目标处理组件采用多线程、批量等方式处理所述目标日志数据,例如:电子设备将所述目标日志数据分为两份(文件1和文件2),采用两个线程同时处理所述目标日志数据,线程1处理文件1,线程2处理文件2,有助于提高处理效率。

s203、从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。

一般的,电子设备基于所述目标处理组件处理所述目标日志数据后,可以从日志组件库中确定所述目标日志数据对应的目标输出组件,例如:电子设备确定消费端为kafka系统,则可以从日志组件库中确定所述目标日志数据对应7号输出组件。最后电子设备再通过所述目标输出组件发送处理后的所述目标日志数据,例如:电子设备确定所述目标日志数据对应的目标输出组件为输出组件2,然后电子设备通过输出组件2中预存的配置消息与老师客户端a进行端口连接,通过所述端口连接将处理后的所述目标日志数据发送到所述老师客户端a。本申请中的发送方式可以为主动发送(push)和被动发送(pull)等,这里不作具体限定。

在一种可能的实施例中,电子设备还可以预设备用组件,所述备用组件可以用于在所述目标输入组件、所述目标处理组件或所述目标输出组件中至少一种出现故障的情况时,将服务的所述目标日志数据的流量切换到对应的备用组件中进行服务,例如:当电子设备检测到所述目标处理组件出现故障,电子设备将所述目标处理组件处理的所述目标日志数据的流量切换到对应的备用处理组件1中,由备用处理组件1来处理所述目标日志数据。或者电子设备也可以接收来自用户的切换指令,基于所述切换指令进行切换,由对应的备用组件来处理所述目标日志数据,有助于电子设备在故障自动发现时,实现智能流量调度,快速将流量切换到备用组件,省去了现有技术中需要人工切换的时间,大大提高了逃生效率,同时也减少人工手动修改配置带来误操作的风险。其中各备用组件可以存储在所述日志组件库中,也可以存储在所述日志组件库之外(例如但不限于电子设备处日志组件库的其它存储区域、云端服务器等),可以根据实际使用情况由用户自定义设置。

现有技术主要通过统一的模块来接收、处理和发送所述目标日志数据,由于存在不同的输入源和输出源以及自定义处理需求等,每种日志数据都需要进行统一标准的固定处理,模块体量过大无用功能较多,因此需要使用更多的电子设备资源,导致处理效率很低。

由上述内容可知,从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据,从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。本申请中电子设备根据日志数据的输入源和输出源,预先生成不同的输入组件、处理组件和输出组件,在处理不同输入源和输出源的日志数据时,调用相对应的组件,相对于调用统一的日志处理模块,可以灵活高效地实现对日志数据的传输解析处理。

请参见图3,为本申请实施例提供了一种日志处理方法的另一交互示意图。该日志处理方法可以包括以下步骤:

s301、获取至少一个样本日志数据的样本输入源属性以及样本输出源属性。

一般的,样本日志数据可以是指用来定义对应的输入组件和处理组件的日志数据,电子设备可以通过接收来自用户的样本信息来确定样本日志数据,也可以通过检测本地的存储信息来确定样本日志数据,电子设备还可以通过爬取互联网上指定内容来确定样本日志数据,有助于电子设备准确灵活多样地确定样本数据数据。输入源可以是指日志数据的生产来源,例如:学生客户端、老师客户端、监控端等设备,以及kafka系统、logstash服务、kibana服务等。样本输入源属性可以是指用来描述输入源的属性,包括:输入类型、输入方式、输入速率和输入数据量等,电子设备可以根据其中至少一种来确定样本输入属性,也可以根据多种组合计算参考系数,再比较各种组合的参考系数大小来最终确定样本输入属性。

输出源可以是指日志数据的消费去向,例如:学生客户端、老师客户端、监控端等设备,以及kafka系统、logstash服务、kibana服务等。样本输出源属性可以是指用来描述输出源的属性,包括:输出类型、输出方式、输出速率和输出数据量等,电子设备可以根据其中至少一种来确定样本输出属性,也可以根据多种组合计算参考系数,再比较各种组合的参考系数大小来最终确定样本输出属性。例如:电子设备确定样本日志数据1对应的样本输入源属性包含输入类型为学生客户端a,对应的样本输出源属性包括输出类型为老师客户端a,电子设备确定样本日志数据2对应的样本输入源属性包含输入类型为elasticsearch服务,对应的样本输出源属性包括输出类型为阿里日志产品(sls)。如图4所示,用户可以在电子设备显示屏的样本源属性配置界面上,自定义属性信息,例如:在输入源属性一侧确定输入类型可以为kafka服务、输入方式为无线保真(wirelessfidelity,wifi)连接、最大输入速率为5m/s等,在输出源属性一侧确定输出类型可以为kibana服务、输入方式为第四代移动通信技术(the4thgenerationmobilecommunicationtechnology,4g)连接、最大输入速率为20m/s等,然后用户可以通过点击电子设备显示屏上的“确定上传”按钮,将各属性信息上传到电子设备。

s302、基于各样本日志数据的样本输入源属性生成样本输入组件集合和样本处理组件集合,以及基于各样本日志数据的样本输出源属性生成样本输出组件集合。

一般的,电子设备获取至少一个样本日志数据的样本输入源属性以及样本输出源属性后,可以生成对应的样本输入组件集合、样本处理组件集合和样本输出组件集合。集合可以是指一个或多个确定输入组件、处理组件或输出组件所构成的整体,例如:电子设备可以通过设置输入组件表来表示所述样本输入组件集合,电子设备也可以确定每个处理组件的路径信息来确定所述样本处理组件集合,电子设备还可以通过调用唯一接口来确定所述样本输出组件集合,所述集合的形式、数量、以及逻辑关系并不具体限定,有助于点设备确实准确在各个集合中获取到对应的组件。

在本申请中电子设备可以通过样本输入源属性对应的生成样本输入组件集合和样本处理组件集合,根据样本输出源属性生成样本输出组件集合,例如:电子设备确定样本日志数据1的样本输入源属性包括输入类型为kafka服务,输入格式为messageset,输入方式为加密传输,输入端口为9000,关键字为“错误”,过滤内容可以从尾部开始等,然后电子设备基于所述样本输入源属性生成对应的样本输入组件1和样本处理组件1,然后电子设备确定样本日志数据1的样本输出源属性包括输入类型为elasticsearch集群,基于所述样本输出源属性确定对应的样本输出组件1。最后,电子设备通过大量的样本数据生成对应的集合,有助于电子设备能够提前设置对应的组件,在使用时可以快速准确地进行调用。

s303、将所述样本输入组件集合、所述样本处理组件集合以及所述样本输出组件集合保存至日志组件库。

一般的,电子设备在基于各样本日志数据的样本输出源属性生成样本输出组件集合后,可以将所述样本输入组件集合、所述样本处理组件集合以及所述样本输出组件集合保存至日志组件库,例如:电子设备确定样本输入组件集合有10个组件,样本处理组件集合有8个组件,样本输出组件集合有5个集合,那么电子设备可以将所有组件全部存储在日志组件库中,并进行编号处理,得到样本输入组件为1-10,样本处理组件为11-18,样本输出组件为19-23。电子设备还可以将三个不同的组件集合分别存储在日志组件库的不同区域,样本输入组件集合为a区域,样本处理组件集合为b区域,样本输出组件集合为c区域,这样有助于电子设备快速准确查询对应的组件,以及便于管理维护。所述日志组件库可以存储在电子设备本地,也可以存储在其它设备(例如但不限于云端服务器等)。如图5所示,日志组件库中,输入组件集合可以存放在区域a,处理组件集合可以存放在区域b,输出组件集合可以存放在区域c等,还可以对各组件进行编号,例如:输入组件1、输入组件2、输入组件3、输入组件4、处理组件1、处理组件2、输出组件1、输出组件2、输出组件3等,然后电子设备可以根据编号在日志组件库中快速查询对应的组件。

s304、接收组件配置指令,基于所述组件配置指令从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件。

一般的,组件配置指令可以是指用户预先收集的关于确定对应的组件的指令,电子设备可以实时接收来自用户的组件配置指令,也可以在满足预设条件下,触发预先存储的组件配置指令的读取。电子设备将所述样本输入组件集合、所述样本处理组件集合以及所述样本输出组件集合保存至日志组件库后,可以接收来自用户的组件配置指令,然后基于所述组件配置指令从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,例如:电子设备接收来自用户自定义的组件配置指令,包括目标输入组件为编号5的输入组件,目标处理组件为编号3的处理组件等,然后电子设备可以通过组件编号在日志组件库中获取对应的组件。本步骤中方式能准确地确定对应的组件,减少了检测识别的时间,提高了运行效率。如图6所示,用户可以在电子设备显示屏的组件配置界面上,自定义组件配置,例如:确定策略1可以是目标输入组件为输入组件3,目标处理组件为处理组件2,目标输出组件为输出组件1,然后电子设备按照策略1进行配置,电子设备也可以确定策略2可以是目标输入组件为输入组件1,目标处理组件为处理组件2,目标输出组件为输出组件3等,策略2可以为策略1的备用策略或者后续侧率,例如:在12时至18时电子设备使用策略1,其它时间段使用策略2等,然后用户可以通过点击电子设备显示屏上的“确定配置”按钮,将配置消息上传到电子设备。

s305、获取目标日志数据对应的输入源的连接请求,基于所述连接请求从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件。

一般的,电子设备在基于各样本日志数据的样本输出源属性生成样本输出组件集合后,还可以获取目标日志数据对应的输入源的连接请求,基于所述连接请求从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,例如:电子设备接收来自学生客户端a的连接请求,所述连接请求中至少包含所述输入源属性信息(例如但不限于传输方式、处理方式等),然后电子设备根据所述输入源属性信息在所述日志组件库中确定对应的目标输入组件2和目标处理组件3。在本申请中所述输入源属性与所述日志组件库中各组件存在对应关系,通过所述对应关系可以快速准确确定对应的组件。本步骤中方式能智能地在输入源发送日志数据时,可以自适应确定对应的组件,不需要手动进行设置,再有大量输入源接入时,保证了运行效率。

s306、通过所述目标输入组件采用至少两个线程接收所述目标日志数据,以及基于所述目标处理组件批量处理所述目标日志数据。

一般的,电子设备在确定目标日志数据对应的目标输入组件和目标处理组件后,可以通过所述目标输入组件采用至少两个线程接收所述目标日志数据,以及基于所述目标处理组件批量处理所述目标日志数据,例如:电子设备可以采用3个接收线程接收来自输入源的所述目标日志数据,通过接收线程1保存到队列a,通过接收线程2保存到队列b,通过接收线程3保存到队列c,然后电子设备可以通过处理线程1保存到队列a中日志数据,通过处理线程2保存到队列b中日志数据,通过处理线程3保存到队列c中日志数据,实现批量处理,提高处理效率。其中,电子设备确定线程的数量以及批量处理的数量都可以根据电子设备的当前处理状态和资源分配状态等信息来自适应调节。如图7所示,电子设备可以将所述目标日志数据分为t1、t2、t3和t4四个批量部分,把整个处理所述目标日志数据的任务分为3个处理阶段(处理阶段1、处理阶段2和处理阶段3等),对应同一个任务来说,任务是串行执行的,但对于多个部分来说,各个阶段是并行执行的,所以任务从整体上看是并行执行的,由于是并行执行,所以能够充分利用cpu资源,在pipeline多线程方式中,对于任务不同的处理阶段,电子设备还可以进行异步化,池化改造,从而实现不同阶段并行计算,同一阶段池化运算,进一步充分利用多核cpu的处理能力。

s307、从日志组件库中确定所述目标日志数据对应的目标输出组件,通过所述目标输出组件采用至少两个线程发送处理后的所述目标日志数据。

一般的,电子设备在基于所述目标处理组件批量处理所述目标日志数据后,可以从日志组件库中确定所述目标日志数据对应的目标输出组件,例如:电子设备接收来自用户的组件配置指令,确定所述目标输出组件为输出组件4,或者电子设备也可以获取目标日志数据对应的输出源的连接请求,基于所述请求连接确定所述目标输出组件为输出组件6。然后电子设备通过所述目标输出组件采用至少两个线程发送处理后的所述目标日志数据,例如:电子设备确定发送线程为5,再采用多线程并发pipeline方式发送所述目标日志数据到老师客户端h,通过多线程、批量等方式有助于提高电子设备的运行效率。

s308、通过预设的监控程序获取各组件的状态信息,以及将所述状态信息进行上报。

一般的,状态信息可以是指各组件的工作信息,例如:接收、处理和发送日志数据的数量、速率、格式、类型、时间、线程数量、耗时和错误数等信息。电子设备可以将在接收、处理和发送所述目标日志数据过程中,通过预设的监控程序获取各组件的状态信息,例如:电子设备可以在系统代码中通过定义监控事件,然后通过检测监控函数的参数来确定所述状态信息。在通过所述目标输出组件采用至少两个线程发送处理后的所述目标日志数据后,也可以在各组件运行的过程中,将所述状态信息进行上报,例如:电子设备将所述目标输入组件30分钟接收500m的所述目标日志数据等的状态数据,所述目标处理组件30分钟处理5m的所述目标日志数据,以及所述目标输出组件30分钟处理1m的所述目标日志数据等状态信息上报给监控服务器,有助于对各组件运行状态进行监控分析,计时维护和调整。

s309、接收组件修改指令,以及基于所述组件修改指令对所述目标输入组件、所述目标处理组件以及所述目标输出组件中的一种或者多种进行修改处理。

一般的,电子设备也可以实时接收来自用户的组件修改指令,以及基于所述组件修改指令对所述目标输入组件、所述目标处理组件以及所述目标输出组件中的一种或者多种进行修改处理(例如但不限于增加、修改、删除等),例如:电子设备通过执行组件修改指令,对所述目标输入组件的单线程接收方式修改为多线程接收方式等。如图8所示,用户可以在电子设备显示屏的组件修改界面上,修改组件配置,例如:电子设备上的历史配置可以是目标输入组件为输入组件3,目标处理组件为处理组件2,目标输出组件为输出组件1,然后电子设备在当前配置测进行配置,电子设备也可以修改目标输入组件为输入组件1,目标处理组件为处理组件2,目标输出组件为输出组件3等,然后用户可以通过点击电子设备显示屏上的“确定修改”按钮,将修改消息上传到电子设备。

s310、通过预设的监控程序获取各组件的状态信息,基于各组件的状态信息分别确定所述目标输入组件、所述目标处理组件和所述目标输出组件的工作模式。

一般的,电子设备还可以通过预设的监控程序获取各组件的状态信息,然后基于各组件的状态信息分别确定所述目标输入组件、所述目标处理组件和所述目标输出组件的工作模式,例如:电子设备确定在每天的12时-16时,接收日志数据的数据量很小(例如但不限于参考系数为30m),小于电子设备预设的模式调整阈值(例如但不限于600m),那么这个时间段可以将所述目标输入组件的工作模式由加速状态调整到普通状态。其中,电子设备确定参数系数的方式可以由状态信息中一种或多种参数来确定,也可以通过不同的组合计算出最佳参考系数,然后再判断属于模式调整阈值的那个范围,来确定对应的工作模式,所述工作模式的数量、形式不作具体限定,可以根据实际使用情况实时自定义。其中不同工作状态的组件可以为预先定义在日志组件库中的不同组件,有助于快速确定对应的组件进行切换,保证日志数据处理额连续性,也可以为当前组件通过调节配置参数来转换,有助于节省电子设备内存。如图9所示,可以为基于本申请设计的日志平台技术架构方案,日志采集模块可以为flumeagent服务,可以用于采集数据源的日志数据,日志汇总模块可以为flumecollector服务,可以用于接收来自flumeagent服务的日志数据并进行汇总处理,日志接入模块可以为kafka服务,可以用于接收来自flumecollector服务的日志数据并进行缓存处理,日志处理分析模块可以为自定义的translog服务,可以通过对应的输入组件、管道组件、处理组件以及输出组件等接收来自kafka服务的日志数据并进行相应处理后发送出去,日志查询模块可以为es集群服务,可以用于接收来自translog服务的日志数据并进行分析、显示以及查询等处理。

本申请实施例的方案在执行时,从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据,从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。本申请中电子设备根据日志数据的输入源和输出源,预先生成不同的输入组件、处理组件和输出组件,在处理不同输入源和输出源的日志数据时,调用相对应的组件,相对于调用统一的日志处理模块,可以灵活高效地实现对日志数据的传输解析处理。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参见图10,其示出了本申请一个示例性实施例提供的日志处理装置的结构示意图,以下简称处理装置10。处理装置10可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。包括:

确定模块1001,用于从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件;

接收模块1002,用于通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据;

发送模块1003,用于从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。

在一种可能的实施例中,所述处理装置10还包括:

获取模块,用于获取至少一个样本日志数据的样本输入源属性以及样本输出源属性;

生成模块,用于基于各样本日志数据的样本输入源属性生成样本输入组件集合和样本处理组件集合,以及基于各样本日志数据的样本输出源属性生成样本输出组件集合;

保存模块,用于将所述样本输入组件集合、所述样本处理组件集合以及所述样本输出组件集合保存至日志组件库。

在一种可能的实施例中,所述确定模块1001包括:

接收单元,用于接收组件配置指令,基于所述组件配置指令从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件;

获取单元,用于获取目标日志数据对应的输入源的连接请求,基于所述连接请求从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件。

在一种可能的实施例中,所述接收模块1002包括:

接收单元,用于通过所述目标输入组件采用至少两个线程接收所述目标日志数据,以及基于所述目标处理组件批量处理所述目标日志数据。

在一种可能的实施例中,所述发送模块1003包括:

发送单元,用于通过所述目标输出组件采用至少两个线程发送处理后的所述目标日志数据。

在一种可能的实施例中,所述处理装置10还包括:

上报模块,用于通过预设的监控程序获取各组件的状态信息,以及将所述状态信息进行上报。

在一种可能的实施例中,所述处理装置10还包括:

修改模块,用于接收组件修改指令,以及基于所述组件修改指令对所述目标输入组件、所述目标处理组件以及所述目标输出组件中的一种或者多种进行修改处理。

在一种可能的实施例中,所述处理装置10还包括:

切换模块,用于通过预设的监控程序获取各组件的状态信息,基于各组件的状态信息分别确定所述目标输入组件、所述目标处理组件和所述目标输出组件的工作模式;

其中,所述目标输入组件、所述目标处理组件和所述目标输出组件分别对应至少两种工作模式。

本申请实施例和图2至图3的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图2至图3的方法实施例的描述,此处不再赘述。

所述装置10可以为实现相关功能的现场可编程门阵列(field-programmablegatearray,fpga),专用集成芯片,系统芯片(systemonchip,soc),中央处理器(centralprocessorunit,cpu),网络处理器(networkprocessor,np),数字信号处理电路,微控制器(microcontrollerunit,mcu),还可以采用可编程控制器(programmablelogicdevice,pld)或其他集成芯片。

本申请实施例的方案在执行时,从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据,从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。本申请中电子设备根据日志数据的输入源和输出源,预先生成不同的输入组件、处理组件和输出组件,在处理不同输入源和输出源的日志数据时,调用相对应的组件,相对于调用统一的日志处理模块,可以灵活高效地实现对日志数据的传输解析处理。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述的方法步骤,具体执行过程可以参见图2或图3所示实施例的具体说明,在此不进行赘述。

本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的模板的控制方法。

请参见图11,为本申请实施例提供了一种电子设备的结构示意图。如图11所示,所述电子设备11可以包括:至少一个处理器1101,至少一个网络接口1104,用户接口1103,存储器1105,至少一个通信总线1102。

其中,通信总线1102用于实现这些组件之间的连接通信。

其中,用户接口1103可以包括显示屏(display)、摄像头(camera),可选用户接口1103还可以包括标准的有线接口、无线接口。

其中,网络接口1104可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器1101可以包括一个或者多个处理核心。处理器1101利用各种借口和线路连接整个终端1100内的各个部分,通过运行或执行存储在存储器1105内的指令、程序、代码集或指令集,以及调用存储在存储器1105内的数据,执行终端1100的各种功能和处理数据。可选的,处理器1101可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1101可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1101中,单独通过一块芯片进行实现。

其中,存储器1105可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1105包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1105可用于存储指令、程序、代码、代码集或指令集。存储器1105可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1105可选的还可以是至少一个位于远离前述处理器1101的存储装置。如图11所示,作为一种计算机存储介质的存储器1105中可以包括操作系统、网络通信模块、用户接口模块以及日志处理应用程序。

在图11所示的电子设备1100中,用户接口1103主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1101可以用于调用存储器1105中存储的日志处理应用程序,并具体执行以下操作:

从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件;

通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据;

从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。

在一个实施例中,处理器1101执行所述从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件之前,还用于执行:

获取至少一个样本日志数据的样本输入源属性以及样本输出源属性;

基于各样本日志数据的样本输入源属性生成样本输入组件集合和样本处理组件集合,以及基于各样本日志数据的样本输出源属性生成样本输出组件集合;

将所述样本输入组件集合、所述样本处理组件集合以及所述样本输出组件集合保存至日志组件库。

在一个实施例中,处理器1101执行所述从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件时,具体执行:

接收组件配置指令,基于所述组件配置指令从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件;或

获取目标日志数据对应的输入源的连接请求,基于所述连接请求从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件。

在一个实施例中,处理器1101执行所述通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据时,具体执行:

通过所述目标输入组件采用至少两个线程接收所述目标日志数据,以及基于所述目标处理组件批量处理所述目标日志数据

在一个实施例中,处理器1101执行所述通过所述目标输出组件发送处理后的所述目标日志数据时,具体执行:

通过所述目标输出组件采用至少两个线程发送处理后的所述目标日志数据。

在一个实施例中,处理器1101执行所述通过所述目标输出组件发送处理后的所述目标日志数据之后,还用于执行:

通过预设的监控程序获取各组件的状态信息,以及将所述状态信息进行上报。

在一个实施例中,处理器1101执行所述通过所述目标输出组件发送处理后的所述目标日志数据之后,还用于执行:

接收组件修改指令,以及基于所述组件修改指令对所述目标输入组件、所述目标处理组件以及所述目标输出组件中的一种或者多种进行修改处理。

在一个实施例中,处理器1101执行所述通过所述目标输出组件发送处理后的所述目标日志数据之后,还用于执行:

通过预设的监控程序获取各组件的状态信息,基于各组件的状态信息分别确定所述目标输入组件、所述目标处理组件和所述目标输出组件的工作模式;

其中,所述目标输入组件、所述目标处理组件和所述目标输出组件分别对应至少两种工作模式。

本申请实施例的技术构思和图2或图3的技术构思相同,具体过程可参照图2或图3的方法实施例,此处不再赘述。

在本申请实施例中,从日志组件库中确定目标日志数据对应的目标输入组件和目标处理组件,通过所述目标输入组件接收所述目标日志数据,以及基于所述目标处理组件处理所述目标日志数据,从日志组件库中确定所述目标日志数据对应的目标输出组件,以及通过所述目标输出组件发送处理后的所述目标日志数据。本申请中电子设备根据日志数据的输入源和输出源,预先生成不同的输入组件、处理组件和输出组件,在处理不同输入源和输出源的日志数据时,调用相对应的组件,相对于调用统一的日志处理模块,可以灵活高效地实现对日志数据的传输解析处理。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1