一种日志处理方法及装置与流程

文档序号:17475376发布日期:2019-04-20 06:05阅读:164来源:国知局
一种日志处理方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种日志处理方法及装置。



背景技术:

诊断日志(本文中简称日志)是协助分析系统故障,保障系统可维护的基本手段。

日志通常保存在持久文件、持久数据库等媒介中。卸载系统时,会删除全部日志。由于随着系统持续运行,日志会持续增加。因此,需要周期性地清理所保存的日志。若无法及时清理日志,则可能会出现磁盘空间不足导致系统崩溃的问题。若在定时清理期间,即上一次清理动作之后,下一次清理动作启动之前,短时间出现大量日志,则也可能导致磁盘空间不足,进而导致系统崩溃。



技术实现要素:

本发明提供一种日志处理方法及装置,以解决日志处理方案中应用程序在短时间内产生大量日志导致日志存储空间不足的问题。

根据本发明实施例的第一方面,提供一种日志处理方法,包括:

监控应用程序在预设监控周期内产生的日志量;

若所述应用程序在所述预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

根据本发明实施例的第一方面,提供一种日志处理方法,应用于日志处理系统中的任一日志监控器,所述日志处理系统中包括多个容器,各容器中均部署有所述日志监控器,所述方法包括:

监控自身所属容器中的应用程序在预设监控周期内产生的日志量;

若所述应用程序在所述预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

根据本发明实施例的第三方面,提供一种日志处理装置,包括:

监控单元,用于监控应用程序在预设监控周期内产生的日志量;

判断单元,用于判断所述应用程序在预设监控周期内产生的日志量是否超过预设阈值;

处理单元,用于若所述应用程序在所述预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

根据本发明实施例的第四方面,提供一种日志处理装置,应用于日志处理系统中的任一日志监控器,所述日志处理系统中包括多个容器,各容器中均部署有所述日志监控器,所述装置包括:

监控单元,用于监控所述日志处理器所属容器中的应用程序在预设监控周期内产生的日志量;

判断单元,用于判断所述应用程序在预设监控周期内产生的日志量是否超过预设阈值;

处理单元,用于若所述应用程序在所述预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

应用本发明公开的技术方案,通过监控应用程序在预设监控周期内产生的日志量,并当应用程序在预设监控周期内产生的日志量超过预设阈值时,进行日志采集抑制,以减少采集的日志量,在日志采集阶段对日志量进行了控制,避免了应用程序短时间内产生大量日志导致的日志存储空间不足,提高了系统稳定性。

附图说明

图1是本发明实施例提供的一种日志处理方法的流程示意图;

图2是本发明实施例提供的一种具体应用场景的架构示意图;

图3是本发明实施例提供的一种图2所示应用场景下的日志处理方法的流程示意图;

图4是本发明实施例提供的另一种具体应用场景的架构示意图;

图5是本发明实施例提供的一种图4所示应用场景下的日志处理方法的流程示意图;

图6是本发明实施例提供的一种日志处理装置的结构示意图;

图7是本发明实施例提供的一种日志处理装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。

请参见图1,为本发明实施例提供的一种日志处理方法的流程示意图,如图1所示,该日志处理方法可以包括:

步骤101、监控应用程序在预设监控周期内产生的日志量。

本发明实施例中,为了避免应用程序在短时间内产生大量日志导致日志存储空间不足,可以对应用程序产生的日志量进行监控,并当应用程序产生的日志量过大时候,减少需要存储的日志量。

相应地,在本发明实施例中,可以监控应用程序在预设监控周期(可以根据实际场景设定,如1s、2s等)内产生的日志量。

在一个示例中,日志量可以包括但不限于日志字节数或/和日志报文数。

在该示例中,考虑到应用程序产生的日志可以包括文件类型的日志或/和报文类型的日志。

对于文件类型的日志,可以通过统计日志字节数确定日志量;对于报文类型的日志,一方面可以统计日志字节数,另一方面,可以统计报文数量(本文中称为日志报文数)。

步骤102、若应用程序在预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

本发明实施例中,为了避免应用程序在短时间内产生大量日志导致日志存储空间不足,可以在日志采集阶段对日志量进行控制。

相应地,在本发明实施例中,若应用程序在预设监控周期内产生的日志量超过预设阈值(可以根据实际场景设定),则可以进行日志采集抑制,以减少采集的日志量,进而,可以减少需要存储的日志量。

在一个示例中,上述应用程序在预设监控周期内产生的日志量超过预设阈值,可以包括:

应用程序在预设监控周期内产生的日志字节数超过预设字节数阈值。

在该示例中,可以根据应用程序产生的文件类型的日志或/和报文类型的日志统计应用程序产生的日志字节数,并确定应用程序在预设监控周期内产生的日志字节数是否超过预设字节数阈值。

其中,若应用程序在预设监控周期内产生的日志字节数超过预设字节数阈值,则可以进行日志采集抑制,以减少采集的日志量。

在另一个示例中,上述应用程序在预设监控周期内产生的日志量超过预设阈值,可以包括:

应用程序在预设监控周期内产生的日志报文数超过预设报文数阈值。

在该示例中,可以根据应用程序产生的报文类型的日志统计应用程序产生的日志报文数,并确定应用程序在预设监控周期内产生的日志报文数是否超过预设报文数阈值。

其中,若应用程序在预设监控周期内产生的日志报文数超过预设报文数阈值,则可以进行日志采集抑制,以减少采集的日志量。

需要说明的是,在本发明实施例中,也可以同时对应用程序在预设监控周期内的产生的日志字节数和日志报文数进行监控,并当应用程序在预设监控周期内产生的日志字节数超过预设字节数阈值,或,日志报文数超过预设报文数阈值时,进行日志采集抑制;或者,可以当应用程序在预设监控周期内产生的日志字节数超过预设字节数阈值,且日志报文数超过预设报文数阈值时,进行日志采集抑制,其具体实现在此不做赘述。

此外,在本发明实施例中,若应用程序在预设监控周期内产生的日志量未超过预设阈值,则日志监控器不会进行日志采集抑制,应用程序产生的日志由日志处理器处理后,存储至日志存储器。

其中,日志处理器可以为运行在物理服务器或物理服务器上运行的容器内的一个进程。日志处理器根据日志配置对接收到的日志进行处理,如将接收到的日志存储至指定日志存储器。

举例来说,可以在日志配置中配置syslog服务器的ip地址、文件目录、socket服务端端口号等等,以及指定日志级别或日志类型与日志存储器的对应关系,从而,日志处理器可以根据日志配置以及日志级别或日志类型将接收到的日志存储至对应的日志存储器。

例如,假设日志配置中指定日志类型a和日志类型b的日志需要存储至syslog服务器,并配置了syslog服务器的ip地址,日志处理器接收到日志类型a和日志类型b的日志时,可以根据syslog服务器的ip地址将其发送至syslog服务器。

此外,日志处理器还可以配置有日志清理策略。对于存储到本地的日志,由日志处理器做定时清理,删除过旧日志等等,以免本地日志量无限增长,其具体实现在此不做赘述。

进一步地,在本发明实施例中,考虑到日志的重要性通常与日志的级别正相关,即通常级别越高的日志的重要性会越高,因此,当日志存储空间不足时,应尽量保证高级别的日志能够被存储。

相应地,在本发明其中一个实施例中,上述进行日志采集抑制,可以包括:

提高当前生效日志级别;

丢弃应用程序产生的级别低于当前生效日志级别的日志。

在该实施例中,为了减少采集的日志量,可以根据日志的级别对所采集的日志进行抑制。

其中,生效日志的级别用于对日志进行过滤,即每一个日志都会有一个级别,日志监控器设定了当前生效的日志级别之后,应用程序产生的日志中级别低于该当前生效的日志级别的日志将会被日志监控器丢弃,不会再送往日志处理器。具体的生效日志级别的作用在后面的实施例中具体说明。

相应地,在该实施例中,若应用程序在预设监控周期内产生的日志量超过预设阈值,则可以提高当前生效日志级别,并丢弃应用程序产生的级别低于当前生效日志级别的日志。

其中,当前生效日志级别的初始值为预先针对各应用程序配置的日志级别(本文中可以称为配置日志级别),即应用程序产生的日志的级别不低于该配置日志级别。

进一步地,在该实施例中,考虑到日志是协助分析系统故障,保障系统可维护的基本手段,因此,当日志存储空间充足时,将应用程序产生的日志均进行存储能更好地实现设备维护。

相应地,上述提高当前生效日志级别之后,还可以包括:

若应用程序在预设监控周期内产生的日志量未超过预设阈值时,降低当前生效日志级别。

具体地,在提高生效日志级别之后,若应用程序在预设监控周期内产生的日志量未超过预设阈值,可以降低当前生效日志级别,以保证更多的日志被存储,以便能更好地实现设备维护。

在一个示例中,上述应用程序在预设监控周期内产生的日志量未超过预设阈值,可以包括:

应用程序在预设监控周期内产生的日志量未超过预设日志字节数阈值;或/和,

应用程序在预设监控周期内产生的日志报文数未超过预设报文数阈值。

需要说明的是,在本发明实施例中,由于应用程序产生的日志的最低级别为配置日志级别,因此,当需要降低当前生效日志级别时也可以以配置日志级别为最低级别进行级别降低,即当前生效日志所能降低的最低级别即为配置日志级别。

但应用认识到,在本发明实施例中,若配置日志级别不是系统支持的最低日志级别,则需要降低当前生效日志级别时,也可以将当前生效日志降低至低于配置日志级别(即当前生效日志所能降低的最低级别可以低于配置日志级别),由于降低后的当前生效日志的级别低于配置日志级别,即应用程序所产生的日志的级别均会高于当前生效日志级别,因此,应用程序产生的日志会被全部采集。

进一步地,在本发明实施例中,为了避免单个应用程序产生的过量日志影响其他应用程序的日志的采集和存储,可以分别针对各应用程序进行日志产生监控和采集控制。

相应地,在本发明其中一个实施例中,上述监控应用程序在预设周期内产生的日志量,可以包括:

分别监控各应用程序在预设监控周期内产生的日志量;

上述若应用程序在预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,可以包括:

对于任一应用程序,若该应用程序在预设监控周期内产生的日志量超过预设阈值,则针对该应用程序进行日志采集阈值。

在该实施例中,可以分别各应用程序在预设监控周期产生的日志量进行监控。

例如,可以分别对应各应用程序部署日志监控器,由各日志监控器监控对应的应用程序在预设监控周期产生的日志量。

对于任一应用程序,若该应用程序在预设监控周期内产生的日志量超过预设阈值,则针对该应用程序进行日志采集抑制。

在一个示例中,可以通过在日志处理系统中运行多个容器,并在各容器中均运行日志监控器的方式,实现日志监控器对指定应用进程的日志量的监控。

在该示例中,日志监控器可以监控自身所属容器中的应用程序在预设监控周期内产生的日志量,并根据自身所属容器的应用程序在预设监控周期内产生的日志量是否超过预设阈值确定是否进行日志采集抑制。

可选地,各容器中可以均运行单个应用程序,从而,各容器中部署的日志监控器均需监控自身所属容器中运行的单个应用程序在预设监控周期内产生的日志量,避免了单个应用程序产生的过量日志影响其他应用程序的日志的采集和存储。

需要说明的是,在本发明实施例中,当分别针对各应用程序进行日志量监控时,各应用程序对应的预设监控周期可以相同,也可以不同;同理,各应用程序对应的预设阈值可以相同,也可以不同,对此,本发明不做限定。

为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行说明。

实施例一

请参见图2,为本发明实施例提供的一种具体应用场景的架构示意图,如图2所示,在该实施例中,假设系统中运行有应用程序211~215,日志采集器221~223分别用于采集应用程序211~213产生的日志,应用程序214和应用程序215产生的日志为报文类型日志,通过tcp(transmissioncontrolprotocol,传输控制协议)/udp(userdatagramprotocol,用户数据报协议)或http(hypertexttransferprotocol,超文本传输协议)/https(hypertexttransferprotocoloversecuresocketlayer,安全版http协议)方式传输给日志处理器230;日志处理器230用于对日志进行处理后保存至日志存储器240。

在该实施例中,为了实现日志采集控制,可以在系统中部署日志监控器250,用于监控各应用程序在预设监控周期(以1s为例)内产生的日志量,并根据各应用程序每秒产生的日志量进行日志采集控制。

基于图2所示应用场景,本发明实施例提供的日志处理流程可以如图3所示,其可以包括以下步骤:

步骤301、日志监控器250监控应用程序211~215产生的日志。

步骤302、日志监控器250统计应用程序211~215每秒产生的日志字节数。若超过预设字节数阈值,则转至步骤305;否则,转至步骤303。

步骤303、日志监控器250统计应用程序211~215每秒产生的日志报文数。若超过预设报文数阈值,则转至步骤305;否则,转至步骤304。

需要说明的是,在该实施例中,步骤302和步骤303中记载的操作之间并不存在必然的时序关系,即可以先执行步骤302中记载的操作,后执行步骤303中记载的操作;也可以先执行步骤303中记载的操作,后执行步骤302中记载的操作;还可以并发执行步骤302和步骤303中记载的操作。

在该实施例中,日志监控器250可以包括计数器模块、限速器模块以及级别调整器模块;其中:

计数器模块一方面可以统计应用程序211~215每秒产生的日志字节数,另一方面,可以统计应用程序211~215每秒产生的日志报文数。

其中,日志监控器250每接收到一条日志数据(包括文件类型日志或报文类型日志),计数器模块可以根据日志数据中包括的日志的字节数更新所统计的监控周期内的日志字节数;日志监控器250每接收到一条报文类型日志数据,计数器模块将所统计的监控周期内的日志报文数加1。

限速器模块可以判断应用程序211~215每秒产生的日志字节数是否超过预设字节数阈值,以及每秒产生的报文日志数是否超过预设报文数阈值。

若应用程序211~215每秒产生的日志字节数超过预设字节数阈值,或/和,每秒产生的报文日志数超过预设报文数阈值,则限速器模块一方面可以触发级别调整器模块提高当前生效日志级别;另一方面,可以丢弃应用程序211~215产生的级别低于当前生效日志级别的日志。

若应用程序211~215每秒产生的日志字节数未超过预设字节数阈值,且每秒产生的报文日志数未超过预设报文数阈值,则限速器模块可以触发级别调整器模块将当前生效日志级别恢复为配置日志级别。

级别调整器模块记录当前生效日志级别和配置日志级别,用于根据限速器模块的指令设置当前生效日志级别。

其中,在该实施例中,系统日志级别遵循syslog(系统日志)协议规范,取值范围0到7。0表示最高级别,7表示最低级别。从0到7对应的级别依次为:系统已经不可用、必须进行立即处理、严重错误、错误、警告、正常信息,但较为重要、正常信息、调试信息。

步骤304、日志监控器250判断当前生效日志级别是否高于配置日志级别;若高于,则将当前生效日志级别恢复为配置日志级别,并转至步骤301;否则,转至步骤301。

步骤305、提高当前生效日志级别,并丢弃应用程序211~215产生的级别低于当前生效日志级别的日志,转至步骤301。

实施例二

请参见图4,为本发明实施例提供的一种具体应用场景的架构示意图,如图4所示,在该实施例中,假设系统中运行有应用程序411~415,日志采集器421~423分别用于采集应用程序411~413产生的日志,应用程序414和应用程序415产生的日志为报文类型日志,通过tcp/udp或http(hypertexttransferprotocol,超文本传输协议)/https方式传输给日志处理器430;日志处理器430用于对日志进行处理后保存至日志存储器440。

在该实施例中,为了实现日志采集控制,可以在系统中部署日志监控器,用于监控各应用程序在预设监控周期(以1s为例)内产生的日志量,并根据各应用程序每秒产生的日志量进行日志采集控制。

此外,为了避免单个应用程序产生的过量日志影响其他应用程序,可以分别针对各应用程序部署日志监控器,日志监控器和对应的应用程序部署在同一个容器内,不同容器可以分别部署在不同主机,也可以部署在同一主机。

如图4所示,应用程序411~415分别部署于容器451~455,日志监控器461~465分别用于监控应用程序411~415每秒产生的日志量,并根据对应的应用程序每秒产生的日志量进行日志采集抑制。

基于图4所示应用场景,本发明实施例提供的日志处理流程可以如图5所示,其可以包括以下步骤(以应用程序411为例):

步骤501、日志监控器461监控应用程序411产生的日志。

步骤502、日志监控器461统计应用程序411每秒产生的日志字节数。若超过预设字节数阈值,则转至步骤505;否则,转至步骤503。

步骤503、日志监控器461统计应用程序411每秒产生的日志报文数。若超过预设报文数阈值,则转至步骤505;否则,转至步骤504。

步骤504、日志监控器461判断当前生效日志级别是否高于配置日志级别;若高于,则将当前生效日志级别恢复为配置日志级别,并转至步骤501;否则,转至步骤501。

步骤505、提高当前生效日志级别,并丢弃应用程序411产生的级别低于当前生效日志级别的日志,转至步骤501。

通过以上描述可以看出,在本发明实施例提供的技术方案中,通过监控应用程序在预设监控周期内产生的日志量,并当应用程序在预设监控周期内产生的日志量超过预设阈值时,进行日志采集抑制,以减少采集的日志量,在日志采集阶段对日志量进行了控制,避免了应用程序短时间内产生大量日志导致的日志存储空间不足,提高了系统稳定性。

请参见图6,为本发明实施例提供的一种日志处理装置的结构示意图,如图6所示,该装置可以包括:

监控单元610,用于监控应用程序在预设监控周期内产生的日志量;

判断单元620,用于判断所述应用程序在预设监控周期内产生的日志量是否超过预设阈值;

处理单元630,用于若所述应用程序在所述预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

在可选实施例中,所述日志量包括日志字节数或/和日志报文数;

所述判断单元620,具体用于若所述应用程序在所述预设监控周期内产生的日志字节数超过预设字节数阈值;或/和,所述应用程序在所述预设监控周期内产生的日志报文数超过预设报文数阈值,确定所述应用程序在所述预设监控周期内产生的日志量超过预设阈值。

在可选实施例中,所述处理单元630,具体用于提高当前生效日志级别;丢弃所述应用程序产生的级别低于当前生效日志级别的日志。

在可选实施例中,所述处理单元630,还用于在提高当前生效日志级别之后,若所述应用程序在所述预设监控周期内产生的日志量未超过所述预设阈值时,降低当前生效日志级别。

在可选实施例中,所述监控单元610,具体用于分别监控各应用程序在预设监控周期内产生的日志量;

所述处理单元630,具体用于对于任一应用程序,若该应用程序在预设监控周期内产生的日志量超过预设阈值,则针对该应用程序进行日志采集抑制。

请参见图7,为本发明实施例提供的一种日志处理装置的结构示意图,其中,该日志处理装置可以应用于日志处理系统中的任一日志监控器,该日志处理系统中可以包括多个容器,各容器中均部署有日志监控器,如图7所示,该装置可以包括:

监控单元710,用于监控所述日志处理器所属容器中的应用程序在预设监控周期内产生的日志量;

判断单元720,用于判断所述应用程序在预设监控周期内产生的日志量是否超过预设阈值;

处理单元730,用于若所述应用程序在所述预设监控周期内产生的日志量超过预设阈值,则进行日志采集抑制,以减少采集的日志量。

在可选实施例中,各容器中均运行单个应用程序。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,通过监控应用程序在预设监控周期内产生的日志量,并当应用程序在预设监控周期内产生的日志量超过预设阈值时,进行日志采集抑制,以减少采集的日志量,在日志采集阶段对日志量进行了控制,避免了应用程序短时间内产生大量日志导致的日志存储空间不足,提高了系统稳定性。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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