一种批量生成告警信息的方法及装置与流程

文档序号:11864886阅读:250来源:国知局
一种批量生成告警信息的方法及装置与流程

本发明属于软件开发技术领域,更具体的涉及一种批量生成告警信息的方法及装置。



背景技术:

在网络行为分析产品中,需要根据已有的规则定义,在接收到的日志中查找告警关键字。当接收到的日志中存在告警关键字时,网络行为分析产品从接收到的日志中抽取部分信息项,根据抽取的部分信息项生成告警记录。

现有的告警信息生成方法,主要包括以下方法:1)、网络行为分析产品接收到日志时,会根据接收到的日志,进行逐条判断,判断每个日志内是否存在已有的规则定义的告警关键字,若从日志中找到告警关键字,则根据找到的关键字,生成告警记录,然后将接收到的日志和生成的告警记录同时存储到数据库内;2)、网络行为分析产品将接收到的日志,先存储到数据库内,然后单独使用进程或线程创建一个扫描任务,该扫描任务采用轮询的方式,对存储到数据库内的日志逐条扫描,判断存储到数据库内的日志中是否存在已有的规则定义的告警关键字,若从日志中找到告警关键字,则根据找到的关键字,生成告警记录,并将生成的告警记录存储在数据库内。

上述告警信息的生成方法存在以下问题:第一种方法中,若接收到的日志数据量比较大的时候,一边接收日志,一边判断并生成告警关键字记录,会影响接收到的日志存储到数据库的速度,同时,当告警关键字数量比较多时,判断时匹配关键字的效率会比较低;第二种方法中,由于扫描任务没有对数据库内已经扫描日志和未扫描日志进行区分,当出现异常情况时,可能会导致重复扫描日志,并生成重复告警记录的问题,同时,致使扫描任务需要频繁执行,存在效率低的问题。

综上所述,现有的告警信息生成方法存在匹配效率低,生成告警信息速度慢的问题。



技术实现要素:

本发明实施例提供一种批量生成告警信息的方法及装置,用以解决现有的告警信息生成方法存在匹配效率低,生成告警信息速度慢的问题。

本发明实施例提供一种批量生成告警信息的方法,包括:

建立第一任务和第二任务,当所述第一任务接收到信息日志时,确定每条所述信息日志内的待告警数据以及与所述待告警数据对应的日志数据的唯一标识,将所述信息日志存储至数据库后,将所述待告警数据和所述日志数据的唯一标识写入缓冲区;

所述第二任务按照设定的时间查询所述缓冲区,从所述缓冲区内获取所述待告警数据,采用正则表达式对所述待告警数据进行匹配,若匹配成功,将所述缓冲区内所述待告警数据确定为告警信息;从所述缓冲区内获取与所述告警信息对应的日志数据的唯一标识;

根据所述告警信息对应的日志数据的唯一标识更新所述数据库,删除缓冲区内与告警信息对应的待告警数据和日志数据的唯一标识。

优选地,所述确定每条所述信息日志内的待告警数据以及与所述待告警数据对应的日志数据的唯一标识,包括:

抽取每条所述信息日志中待告警信息字段,将所述待告警信息字段内容使用换行符连接起来形成一个字符串,将所述字符串确定为所述待告警数据对应的日志数据的唯一标识。

优选地,所述第二任务按照设定的时间查询所述缓冲区之前,还包括:

根据规则定义确定告警关键字,根据所述告警关键字构建所述正则表达式。

本发明实施例还提供一种批量生成告警信息的装置,包括:

存储单元,用于建立第一任务和第二任务,当所述第一任务接收到信息日志时,确定每条所述信息日志内的待告警数据以及与所述待告警数据对应的日志数据的唯一标识,将所述信息日志存储至数据库后,将所述待告警数据和所述日志数据的唯一标识写入缓冲区;

确定单元,用于所述第二任务按照设定的时间查询所述缓冲区,从所述缓冲区内获取所述待告警数据,采用正则表达式对所述待告警数据进行匹配,若匹配成功,将所述缓冲区内所述待告警数据确定为告警信息;从所述缓冲区内获取与所述告警信息对应的日志数据的唯一标识;

处理单元,用于根据所述告警信息对应的日志数据的唯一标识更新所述数据库,删除缓冲区内与告警信息对应的待告警数据和日志数据的唯一标识。

优选地,所述存储单元具体用于:

抽取每条所述信息日志中待告警信息字段,将所述待告警信息字段内容使用换行符连接起来形成一个字符串,将所述字符串确定为所述待告警数据对应的日志数据的唯一标识。

优选地,所述确定单元还用于:

根据规则定义确定告警关键字,根据所述告警关键字构建所述正则表达式。

本发明实施例提供一种批量生成告警信息的方法及装置,包括建立第一任务和第二任务,当所述第一任务接收到信息日志时,确定每条所述信息日志内的待告警数据以及与所述待告警数据对应的日志数据的唯一标识,将所述信息日志存储至数据库后,将所述待告警数据和所述日志数据的唯一标识写入缓冲区;所述第二任务按照设定的时间查询所述缓冲区,从所述缓冲区内获取所述待告警数据,采用正则表达式对所述待告警数据进行匹配,若匹配成功,将所述缓冲区内所述待告警数据确定为告警信息;从所述缓冲区内获取与所述告警信息对应的日志数据的唯一标识;根据所述告警信息对应的日志数据的唯一标识更新所述数据库,删除缓冲区内与告警信息对应的待告警数据和日志数据的唯一标识。在本发明实施例中,通过将信息日志中需要告警的新型串联成一个字符串,并把规则定义的告警关键字组成一个正则表达式,通过正则表达式和字符串匹配的方式生成告警信息,上述方法中,通过两个线程,能够快速生成告警信息,并且不影响日志存储至数据库的速度,同时,提高的告警信息的匹配效率,且降低了内存和CPU的占用率。

附图说明

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

图1为本发明实施例提供的一种批量生成告警信息的方法流程示意图;

图2为本发明实施例提供的一种批量生成告警信息的装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例所涉及的术语:

缓冲区,是设备之间进行沟通的中间地带,用于协调不同设备之间运行速度的差异,它通常独立于设备而存在。

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

图1示例性的示出了本发明实施例提供的一种批量生成告警信息的方法流程示意图,该方法至少可以应用于软件开发技术中。

如图1所示,本发明实施例提供的一种批量生成告警信息的方法包括以下步骤:

步骤101,建立第一任务和第二任务,当所述第一任务接收到信息日志时,确定每条所述信息日志内的待告警数据以及与所述待告警数据对应的日志数据的唯一标识,将所述信息日志存储至数据库后,将所述待告警数据和所述日志数据的唯一标识写入缓冲区;

步骤102,所述第二任务按照设定的时间查询所述缓冲区,从所述缓冲区内获取所述待告警数据,采用正则表达式对所述待告警数据进行匹配,若匹配成功,将所述缓冲区内所述待告警数据确定为告警信息;从所述缓冲区内获取与所述告警信息对应的日志数据的唯一标识;

步骤103,根据所述告警信息对应的日志数据的唯一标识更新所述数据库,删除缓冲区内与告警信息对应的待告警数据和日志数据的唯一标识。

需要说明的是,本发明实施例中,执行主体可以是服务器。

需要说明的是,本发明实施例中,第一任务,第二任务,可以同时是第一线程,第二线程;也可以同时是第一进程,第二进程;在本发明实施例中,对第一任务和第二任务的具体形式不做限定。

需要说明的是,缓冲区至少可以包括以下实现方式:1)以文件形式存储在物理硬盘的固定位置;2)采用自定义数据结构保存在内存中;3)采用Redis等内存数据库进行存储。在本发明实施例中,对缓冲区的实现方法不做具体的限定。

在步骤101中,服务器在处理端建立第一任务和第二任务,其中,第一任务负责接收和保存信息日志,而第二任务负责生成告警信息。

具体地,第一任务在确认接收到信息日志之前,需要判断是否接收到信息日志,在本发明实施例中,第一任务可以按照设定时间,判断是否接收到信息日志,或者根据是否接收到触发信号,确定是否接收到信息日志,其中,触发信号时信息日志携带的某个信号。在本发明实施例中,对第一任务判断是否接收到信息日志时所采用的判断方法不做具体的限定。

进一步地,当第一任务根据判断方法,确定接收到信息日志之后,则第一任务根据接收到的信息日志的先后顺序,逐条扫描信息日志,确定每条信息日志内包括的待告警数据,将每条信息日志内的待告警数据保存在内存中,并将每条信息日志内的待告警数据使用换行符连接起来,形成一个字符串,在本发明实施例中,为了将待告警数据与日志对应起来,为每条日志生成一个唯一标识。

在本发明实施例中,第一任务确定每条信息日志的唯一标识之后,将日志记录存储到数据库,将确定的每条信息日志内的待告警数据和日志数据唯一标识写入缓冲区。

需要说明的是,上述第一任务将日志记录存储到数据库和将确定的每条信息日志内的待告警数据、日志数据唯一标识写入缓冲区需要同步执行,即先将日志记录存储到数据库中,存储完成后将日志内的告警数据和日志数据唯一标识写入缓冲区。

在实际应用中,当第一任务将日志记录存储到数据库和将确定的每条信息日志内的待告警数据、日志数据唯一标识写入缓冲区之后,第一任务可以进行下一轮的处理,即,继续确定接收到的信息日志内的待告警数据以及日志数据的唯一标识,并将待告警数据和日志数据的唯一标识保存缓冲区内。

在步骤102中,第二任务按照设定的时间查询数据库之前,需要根据规则定义确定告警关键字,根据告警关键字生成正则表达式。

第二任务按照设定的时间查询缓冲区,采用根据告警关键字生成的正则表达式,与缓冲区内缓存待告警数据进行匹配,若正则表达式与缓冲区内缓存的待告警数据匹配成功,则将待告警数据确定为告警信息。

需要说明的是,在本发明实施例中,第二任务可以按照设定的时间去数据库查询,还可以根据内存使用情况去查询缓冲区,在本发明实施例中,对第二任务查询缓冲区时所遵循的条件不做限定。

需要说明的是,在本发明实施例中,存储在数据库内的日志记录可以包括很多条,而每条日志记录内只包括一个唯一标识;存储在数据库内的日志记录可以只包括一条,而该条日志记录内包括多个告警记录。在本发明实施例中,对存储在缓冲区内的日志记录的条数不做限定。

需要说明的,第二任务将正则表达式与缓冲区内待告警数据进行匹配比较时,采用的是逐条对比匹配的方法,若当前条匹配成功,则将匹配成功的待告警数据确定为告警信息;并从缓冲去中获取与告警信息对应的日志数据的唯一标识;若当前匹配失败,则正在匹配的待告警数据不生成告警信息,继续取出下一条待告警数据进行匹配。

在步骤103中,根据所述告警信息对应的日志数据的唯一标识更新所述数据库,删除缓冲区内与告警信息对应的待告警数据和日志数据的唯一标识。

需要说明的是,第二任务可以在正则表达式与缓冲区缓存的待告警数据匹配成功之后,直接根据告警信息对应的日志数据唯一标识更新数据库中日志记录的告警信息,并将缓冲区内与告警信息对应的待告警数据和日志数据唯一标识删除;也可以将缓冲区缓存的待告警数据全部进行匹配之后,批量根据告警信息对应的日志数据唯一标识更新数据库中多条日志记录的告警信息,并将缓冲区内与告警信息对应的待告警数据和日志数据唯一标识删除;在本发明实施例中,上述步骤不做具体的限定。

需要说明的是,当第二任务根据告警信息对应的日志数据唯一标识更新数据库中日志记录的告警信息,并删除缓冲区内与告警信息对应的待告警数据和日志数据唯一标识之后,第二任务可以进行下一轮处理,即,继续将正则表达式与缓冲区内待告警数据进行匹配,并将匹配成功的待告警数据生成告警信息。

综上所述,本发明实施例通过将信息日志中需要告警的新型串联成一个字符串,并把规则定义的告警关键字组成一个正则表达式,通过正则表达式和字符串匹配的方式生成告警信息,上述方法中,通过两个线程,能够快速生成告警信息,并且不影响日志存储至数据库的速度,同时,提高的告警信息的匹配效率,且降低了内存和CPU的占用率。

基于同一发明构思,本发明实施例提供了一种批量生成告警信息的装置,由于该装置解决技术问题的原理与一种批量生成告警信息的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图2为本发明实施例提供的一种批量生成告警信息的装置结构示意图,如图2所示,本发明实施例提供的一种批量生成告警信息的装置包括:存储单元20,确定单元21和处理单元22。

存储单元20,用于建立第一任务和第二任务,当所述第一任务接收到信息日志时,确定每条所述信息日志内的待告警数据以及与所述待告警数据对应的日志数据的唯一标识,将所述信息日志存储至数据库后,将所述待告警数据和所述日志数据的唯一标识写入缓冲区;

确定单元21,用于所述第二任务按照设定的时间查询所述缓冲区,从所述缓冲区内获取所述待告警数据,采用正则表达式对所述待告警数据进行匹配,若匹配成功,将所述缓冲区内所述待告警数据确定为告警信息;从所述缓冲区内获取与所述告警信息对应的日志数据的唯一标识;

处理单元22,用于根据所述告警信息对应的日志数据的唯一标识更新所述数据库,删除缓冲区内与告警信息对应的待告警数据和日志数据的唯一标识。

优选地,所述存储单元20具体用于:

抽取每条所述信息日志中待告警信息字段,将所述待告警信息字段内容使用换行符连接起来形成一个字符串,将所述字符串确定为所述待告警数据对应的日志数据的唯一标识。

优选地,所述确定单元21还用于:

根据规则定义确定告警关键字,根据所述告警关键字构建所述正则表达式。

应当理解,以上一种批量生成告警信息的装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种批量生成告警信息的装置所实现的功能与上述实施例提供的一种批量生成告警信息的方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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