CN109213736B - 日志的压缩方法和装置 - Google Patents

日志的压缩方法和装置 Download PDF

Info

Publication number
CN109213736B
CN109213736B CN201710515680.4A CN201710515680A CN109213736B CN 109213736 B CN109213736 B CN 109213736B CN 201710515680 A CN201710515680 A CN 201710515680A CN 109213736 B CN109213736 B CN 109213736B
Authority
CN
China
Prior art keywords
log
log information
logs
query
merging
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.)
Active
Application number
CN201710515680.4A
Other languages
English (en)
Other versions
CN109213736A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710515680.4A priority Critical patent/CN109213736B/zh
Publication of CN109213736A publication Critical patent/CN109213736A/zh
Application granted granted Critical
Publication of CN109213736B publication Critical patent/CN109213736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种日志的压缩方法和装置。其中,该方法包括:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;将压缩结果写入预定的位置。本发明解决了现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的技术问题。

Description

日志的压缩方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种日志的压缩方法和装置。
背景技术
对互联网应用来说,对应用程序的运行日志进行分析是非常重要的工作。现有技术中可以通过Syslog记录系统日志,Syslog能够接收远程系统的日志记录,在一个日志中按时间顺序处理包括多个系统的记录,并以文件形式存储。
在采集系统日志之后,需要对日志进行分析处理,得到系统运行的状况等信息。例如:为了对一个应用程序进行分析,获取该应用程序的运行日志。而该应用程序具有100个服务器,且每个服务器都有两份日志,那么为了全面的分析该应用程序的运行日志,需要登录每一台服务器,这个过程复杂繁琐,且花费较长时间。进一步地,每个服务器的日志中都具有大量的无用日志,从而需要逐一排查,才能查找到对日志分析有帮助的日志。因此,从上面的示例可以显而易见的看出,系统日志中的无用日志较多,且文件数量较大。
而现有技术中采用与elk(Eladticsearch、Logstash和Kibana)日志分析系统类似的方案来查找有用的日志,elk的工作流程是需要收集日志在所有服务器上部署的Logstash,用于监控并收集日志,然后再将收集的内容发送至Redis(存储系统),然后通过Logstash indexer将日志统一交给全文搜索服务ElasticSearch,可以使用ElasticSearch进行自定义搜索。也即,现有技术中查询日志的方式是收集系统中所有服务器的日志,再从收集的所有日志中进行统一查询。
结合现有技术中日志复杂程度高,无用日志多,且日志数据量大的特点,以及现有技术中查询日志的方式可以知晓,现有技术中查询日志的效率较低,花费时间较长,且占用系统资源较多。
针对现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种日志的压缩方法和装置,以至少解决现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的技术问题。
根据本发明实施例的一个方面,提供了一种日志的压缩方法,包括:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;将压缩结果写入预定的位置。
根据本发明实施例的另一方面,还提供了一种日志的压缩装置,包括:采集模块,用于实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;压缩处理模块,用于对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;写入模块,用于将压缩结果写入预定的位置。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的日志的压缩方法。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行上述的日志的压缩方法。
根据本发明实施例的另一方面,还提供了一种系统,包括:处理器;以及存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作所述前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的所述至少一条日志信息进行压缩处理,得到压缩结果;将所述压缩结果写入预定的位置。
在本发明实施例中获取操作前端的应用程序生成的日志信息之后,对日志信息进行压缩处理,再将压缩处理后的压缩结果写入预定的位置。由于写入预定的位置的日志进行过压缩处理,使写入预定的位置的日志相对于直接获取的日志来说结构较为简单,且具有一定的规范,并能够减少在日志查询界面中日志显示的条目数量,从而减少查询日志所耗费的时间。进一步的,由于在上述方案中,日志的获取和压缩处理都是实时进行的,因此可以避免现有技术中对日志进行离线运算产生数据量大,查找速度慢等弊端。
由此,上述实施例提出的日志的压缩方法解决了现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的技术问题,从而达到了提高日志查询效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例1的一种对日志进行处理的示意图;
图2是根据本申请实施例2的一种用于实现日志的压缩方法的计算机终端(或移动设备)的硬件结构框图;
图3是根据本发明实施例2的一种日志的压缩方法的流程图;
图4是根据本发明实施例2的一种可选的对运行日志进行格式化处理后的示意图;
图5是根据本申请实施例4的一种系统的示意图;
图6是根据本申请实施例5的一种日志的查询方法的流程图;以及
图7是根据本发明实施例5的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
日志:日志是记录web服务器接收处理请求以及运行错误等各种原始信息的文件,通常以.log结尾,通过日志可以知晓访问web服务器的操作的访问时间、终端的操作系统、浏览器、显示器分辨率,访问的页面以及访问是否成功等信息。通过对日志进行分析,能够知晓应用程序在终端和服务器是否运行正常,以及应用程序存在的缺陷等信息。
SysLog:SysLog中记录着系统中的任何事件,可以通过查看系统日志随时了解系统运行状况。系统日志通过SysLog进程记录程序的运作事件。
hbase:Hadoop database,即Hadoop数据库,是一个分布式的、基于列的开源数据库,适合于非结构化数据存储。
实施例1
在现有技术中采用的查询日志的方式是收集系统中所有服务器的日志,再从收集的所有日志中进行统一查询。结合现有技术中日志复杂程度高,无用日志多,且日志数据量大的特点可以知晓,现有技术中查询日志的方式效率较低,花费时间较长,且占用系统资源较多。
为了解决上述问题,本申请提供一种日志的压缩方法的实施例,图1是根据本发明实施例1的一种对日志进行处理的示意图,下面结合图1所示的示例,对本申请上述日志的处理方法进行描述。
步骤S11,采集日志。
具体的,上述日志可以是前端设备上的至少一条日志,前端设备可以是目标应用程序的所有服务器。在一种可选的实施例中,以目标应用程序为京东、唯品会以及中通为例,前端设备为京东、唯品会以及中通的所有服务器,用于进行日志分析的服务器与目标应用程序的所有服务器通信,以采集目标应用程序的所有服务器上记录的日志,从而获取目标应用程序完整的日志。以下实施例以如下的5条日志进行说明。
2016-11-04 10:53:28.601[thread-2]INFO com.impl.Dispatcher-dispatchingtasks 123
2016-11-04 10:53:28.601[thread-2]INFO com.impl.Dispatcher-dispatchingtasks 123
2016-11-04 10:53:28.601[thread-2]INFO com.impl.Dispatcher-dispatchingtasks 123
2018-03-01 09:40:59.694[EventThread]ERROR org.Cnxn-Error whilecalling watcher fu@qq.com
2018-03-01 09:40:59.694[EventThread]ERROR org.Cnxn-Error whilecalling watcher fu@qq.com
步骤S12,对不同应用程序的日志进行预处理。
步骤S121,对采集的日志进行格式化处理。具体的,在这一步骤中,剔除每个应用程序的日志中的属性信息,例如:线程、level、类、时间等信息,而保留日志中的实体信息,得到实体日志。
例如:上述实施例中的5个日志经过格式化处理后,得到如下五个实体日志:
dispatching tasks 123
dispatching tasks 123
dispatching tasks 123
Error while calling watcher fu@qq.com
Error while calling watcher fu@qq.com
步骤S122,对格式化后的日志信息进行过滤。
服务器经过一段时间的沉淀,可以确定有些日志对于最终的查询任务来说是不需要的,因此指定需要过滤掉的日志的类型,并当SmartLog采集日志时将属于指定类型的日志过滤掉。例如:可以指定将分发任务类的日志过滤掉,即将包含“dispatching tasks”的日志过滤掉。仍在上述实施例中,将分发任务类的日志过滤掉之后,5条实体日志成为如下2条:
Error while calling watcher fu@qq.com
Error while calling watcher fu@qq.com
步骤S123,使用正则表达式对过滤后的日志进行格式置换,并当日志过于复杂时对日志进行定向优化。
具体的,上述置换可以通过正则表达式来实现,对于符合预设规则的日志用预设的正则表达式进行替换。在一种可选的实施例中,上述实施例中的“watcher fu@qq.com”可以由“EMAIL”置换,进行置换后的2条日志如下:
Error while calling EMAIL
Error while calling EMAIL
而当日志过于复杂时候,采用正则表达式无法进行统一处理,则可以采用占位符号替换的方式对日志的内容进行替换。
仍在上述实施例中,将“Error while calling”开头的日志,都替换成“call”,替换之后的2条日志如下:
call
call
步骤S214,对替换后的日志进行合并同类处理。
具体的,合并同类处理即为将同类的日志进行合并,从而实现了日志按照类型的分类。上述合并同类处理分别对每一个应用程序进行,最终会得到与每个应用程序对应的处理的结果。
在这一步骤中,日志在通过正则表达式替换,或通过占位符号替换之后,会出现同类的日志内容,上述步骤将同类的日志内容进行合并,从而将每个应用程序的日志进行了分类。
仍在上述实施例中,在进行合并同类日志之后,上述的日志如下,可以表明该类的日志出现过2次。
2,Error while calling EMAIL(未进行定向优化)
或者
2,call(进行定向优化)
步骤S13,将各个应用程序的日志的分类结果进行合并。
仍在上述实施例中,如果5个应用程序中,每个应用程序都包括上述2条日志,则合并后的日志为:10,Error while calling EMAIL或者10,call。
步骤S14,将合并后的日志写入数据库中,并在数据库中进行合并。
具体的,上述数据库可以为hbase,在上述步骤中,可以按照预定周期,将周期时间内的日志写到hbase中,然后将按照预定周期合并后的日志再次进行合并。
在一种可选的实施例中,预定周期可以为10s,可以将合并之后的日志每10s写入hbase一次,也即,每10s会生成一个新版本的日志,然后再将写入6次的日志进行合并,得到以每分钟为应用维度的日志。
例如,仍在上述实施例中,每10s写入的日志为:10,Error while calling EMAIL,则再次合并之后,得到:60,Error while calling EMAIL。由此,hbase得到了以每分钟为应用维度的日志。
在上述步骤中,还可以按照可变周期,将周期时间内的日志写到hbase中,然后将按照预定周期合并后的日志再次进行合并,其中,可变周期根据日志信息生成的数量进行变化。
具体的,上述日志信息生成的数量可以根据服务器的访问量来确定,服务器的访问量越大,对应的可变周期的时间约短,服务器的访问量越小,对应的可变周期的时间约长。而服务器的访问量可以根据当前时间或覆盖在访问页面的热力图来确定。
此处需要说明的是,如果上述预定周期或可变周期较长,则日志的实时性较差,但如果预定周期或可变周期较短,则数据库中存储的日志的时间维度也较短,导致用户在进行查询时需要进行较多的运算,例如,如果用户需要查询最近1min中的日志,则需要将最近六个合并版本再次合并,因此,上述步骤将按照预定周期合并的多个合并版本再进行合并,从而在保证日志的实时性的同时,减少用户查询日志时的数据运算量。
步骤S15,根据查询条件,对日志进行再次合并。
具体的,上述查询条件可以是选择的应用程序的类型,时间段和/或查询对象的权限。在步骤S14中,由于hbase中已经得到了以每分钟为应用维度的日志,因此,当用户在进行日志查看时,选择需要查看到应用程序,以及需要查看的时间段,则能够得到最终的查询结果。
例如,仍在上述实施例中,如果用户选择查询最近2分钟的日志如下:
60,Error while calling EMAIL
120,Error while calling EMAIL
在web端返回给用户之前,客户端会对这2分钟的日志再次进行合并,用户得到的日志如下:
180,Error while calling EMAIL
此处要是需要说明的是,本申请上述实施例在获取操作前端的应用程序生成的日志信息之后,对日志信息进行预处理即合并,再将合并后的日志写入数据库,并在数据库中再次对日志进行合并。由于写入预定的位置的日志进行过预处理和合并处理,使写入预定的位置的日志相对于直接获取的日志来说结构较为简单,且具有一定的规范,因此在数据库中进行日志查询时,能够花费较短的时候,较容易的查询出需要获取的日志。进一步地,由于在上述方案中,日志的预处理和合并都是实时进行的,因此可以避免现有技术中对日志进行离线处理时运算产生数据量大,查找速度慢等弊端。
由此,上述实施例提出的日志的压缩方法解决了现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的技术问题,从而达到了提高日志查询效率的技术效果。
此处还需要说明的是,上述实施例所提供的预处理过程以及日志查询方式都仅用于示例,任何在进行日志查询器前对采集后的日志进行压缩处理(包括合并、过滤、替换等多种方式)的方案都属于本方案所保护的范围。
还值得注意的是,在日志的查询界面上,通常一个屏幕可以展示约20行日志,现有技术中人员在查看日志时,需要一页一页的翻查,才能找到目标日志,例如,异常堆栈的日志。但日志经过上述实施例的压缩处理之后,以日志的内容以及日志的数量的方式显示日志,对于日志的查询界面来说,显示日志的行数产生了巨大的缩减,技术人员可以使用查看一条日志的时间查看大量的日志,同时,还可以显示每一种日志在应用程序的所有日志中所占的比例,从而协助技术人员了解应用程序运行的情况。
例如,在一段时间内应用程序生成了500万条日志,其中异常堆栈的日志出现了50次,在现有技术中,这50条日志分散的出现在应用程序的500万条日志中,技术人员为了查看应用程序的运行状态,找出应用程序运行异常原因,需要浏览完应用程序的500万条日志,但日志查询界面通常一个展示页面可以展示约20行,技术人员需要耗费大量的时间,逐一过目每一条日志,以确定应用程序异常的原因,因此消耗了大量的人力成本和时间成本。而在采用上述实施例提供的方案对日志进行压缩后,异常堆栈的日志会以数量和日志内容的方式显示在日志查询界面上,即50条日志会在日志查询界面上显示为一行,技术人员只需要查看这一行日志,即可以确定应用程序异常的原因。且日志查询界面还会按照日志出现的数量排序,由于异常堆栈的日志将会非常多,则会排在所有日志的前几位,也就能够出现在日志查询界面的第一页,从而使得技术人员能够快速查找到出现数量较多的日志,以确定应用程序的运行状态,并确定应用程序出现异常的原因。
实施例2
根据本发明实施例,还提供了一种日志的压缩方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图2示出了一种用于实现日志的压缩方法的计算机终端(或移动设备)的硬件结构框图。如图2所示,计算机终端20(或移动设备20)可以包括一个或多个(图中采用202a、202b,……,202n来示出)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输模块206。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器202和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端20(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器204可用于存储应用软件的软件程序以及模块,如本发明实施例中的日志的压缩方法对应的程序指令/数据存储装置,处理器202通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的日志的压缩方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输装置206包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置206可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端20(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图2所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图2仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图3所示的日志的压缩方法。图3是根据本发明实施例2的一种日志的压缩方法的流程图。
步骤S31,实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息。
上述前端设备可以为用户访问目标应用程序所使用的终端。通过用户访问应用程序的操作,使前端设备访问目标应用程序的服务器,并将生成的日志信息发送至目标程序的服务器。通常一个应用程序都由多台服务器构成,在一种可选的实施例中,以目标应用程序为京东、唯品会以及中通为例,前端设备生成的日志信息都发送至京东、唯品会以及中通对应的服务器,用于进行日志分析的服务器与目标应用程序的所有服务器通信,以采集目标应用程序的所有服务器上记录的日志,即前端设备上产生的所有日志,从而获取目标应用程序完整的日志。
步骤S33,对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果。
具体的,上述压缩处理可以用于去除日志中的无用日志,并对日志中的内容进行置换以及合并,以减少日志的种类。例如:首先,可以剔除无用日志,再剔除有用的日志中的无用信息,在对剔除无用信息的日志中的内容进行正则表达式的替换,最终得到的压缩结果是结构简单,且规范化的日志,在对结构简单且规范化的日志进行合并,从而减少日志的种类,进而减少在日志查询界面中日志显示的条目数量。
值得注意的是,上述步骤对实时采集到的至少一条日志进行压缩处理,即每采集到一条日志,就对其进行压缩处理,实现存储日志的数据库内容的更新迭代,在进行日志查询时,是在实时更新,且进行过压缩处理后的日志中进行查询,而不是在获取所有日志之后的离线日志中进行日志查询。
步骤S35,将压缩结果写入预定的位置。
具体的,上述预定的位置可以是进行日志信息查询的客户端。作为一种可选的实施例,压缩结果可以写入进行日志信息查询的客户端,当用户在客户端进行日志查询时,客户端可以根据用户的查询条件,将压缩结果再次进行合并,以便显示于查询界面,方便用户查看。
此处要是需要说明的是,本申请上述实施例在获取操作前端的应用程序生成的日志信息之后,对日志信息进行压缩处理,再将压缩处理后的压缩结果写入预定的位置。由于写入预定的位置的日志进行过压缩处理,使写入预定的位置的日志相对于直接获取的日志来说结构较为简单且具有一定的规范,并能够减少在日志查询界面中日志显示的条目数量,从而减少查询日志所耗费的时间。进一步的,由于在上述方案中,日志的获取和压缩处理都是实时进行的,因此可以避免现有技术中对日志进行离线运算产生数据量大,查找速度慢等弊端。
由此,上述实施例提出的日志的压缩方法解决了现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的技术问题,从而达到了提高日志查询效率的技术效果。
作为一种可选的实施例,步骤S33,对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果,包括:
步骤S331,对每条日志信息进行预处理。具体的,上述预处理用于对日志信息进行简化以及规范化,可以通过过滤、置换等多种方式进行,进行预处理之后,具有共性的日志何以进行合并。
由于日志的数据量非常大,且日志的信息都各不相同,为了便于有效的快速进行查询,上述步骤对日志进行预处理,上述预处理的过程可以是将具有共性的日志处理为相同的日志,从而在日志的查询过程中无需对日志进行注意筛查,从而减少了查询的数量。
例如,“Error while calling watcher fu@qq.com”与“Error while callingwatcher ab@qq.com”为两条不相同的日志,但在经过预处理之后,可以都变换为“call”,由此,经过预处理的日志更利于日志的合并。
步骤S333,对预处理后的日志信息进行合并同类处理,得到合并日志,其中,前端设备上的每个应用程序对应一个合并日志,合并日志至少包括:被合并的预处理结果和合并的数量。
具体的,上述合并同类处理即为将同类型的日志进行合并处理,由于可以在对日志的预处理过程中找出有共性的日志,并将有共性的日志置换为相同的日志,因此,在预处理后相同的日志即为同类日志。例如:以“Error while calling”开头的日志的预处理结果为“call”,如果一个应用程序的日志中具有X个以“Error while calling”开头的日志,则进行合并同类处理后的结果可以为“X,call”。
在一种可选的实施例中,以终端中的两个应用程序为例,对两个应用程序中的日志进行预处理之后,分别对两个应用程序的日志进行同类合并,得到两个应用程序分别对应的合并日志。
步骤S335,对不同应用程序对应的合并日志进行合并处理,得到压缩结果。
在一种可选的实施例中,仍以上述终端中的两个应用程序为例,在得到两个应用程序分别对应的合并日志之后,将两个应用程序分别对应的合并日志进行合并,得到该终端的压缩结果。如果第一个应用程序的合并同类处理结果为“X,call”,第二个应用程序的合并同类处理结果为“Y,call”,如果该终端只包括这两个应用程序,则该终端的日志的压缩结果为:“X+Y,call”。
作为一种可选的实施例,步骤S331,对每条日志信息进行预处理,包括:
步骤S3311,对每条日志信息进行格式化处理,得到日志信息中的实体日志,其中,实体日志包括日志信息中记录的操作的目标对象的对象信息。
具体的,上述实体日志用于表征日志中,用于具体描述对应用程序的操作信息的内容。通常日志内容都会包括:访问时间和时区、访问协议、线程、访问事件以及服务器响应状态码等信息,在上述步骤中,剔除日志中的非实体内容。
在一种可选的实施例中,以应用程序的5条日志为例:
2016-11-04 10:53:28.601[thread-2]INFO com.impl.Dispatcher-dispatchingtasks 123
2016-11-04 10:53:28.601[thread-2]INFO com.impl.Dispatcher-dispatchingtasks 123
2016-11-04 10:53:28.601[thread-2]INFO com.impl.Dispatcher-dispatchingtasks 123
2018-03-01 09:40:59.694[EventThread]ERROR org.Cnxn-Error whilecalling watcher fu@qq.com
2018-03-01 09:40:59.694[EventThread]ERROR org.Cnxn-Error whilecalling watcher fu@qq.com
在上述步骤中,抛弃日志中的线程、level、类、时间等信息,则得到5条真实日志如下:
dispatching tasks 123
dispatching tasks 123
dispatching tasks 123
Error while calling watcher fu@qq.com
Error while calling watcher fu@qq.com
具体的,上述格式化还用于对逻辑相同的日志进行合并,在剔除日志中的无用信息之后,还可以对逻辑相同的日志进行合并,例如:异常堆栈的日志信息通常具有相同的逻辑结构,因此在用于进行日志分析的服务器将逻辑相同的日志合并之后,能够使得用户快速的从大量的日志中发现堆栈异常的日志。
作为一种可选的实施例,步骤S331,在对每条日志信息进行格式化处理,得到日志信息中的实体日志之后,方法还包括:
步骤S3313,对实体日志进行过滤处理,得到过滤后的日志,其中,过滤的日志至少包括:属于预设类型的日志。
具体的,上述对实体日志进行过滤的步骤可以在采集日志的时候进行,上述预设类型的日志用于通过日志的格式来确定,例如:任务分发类的日志通常包括“dispatchingtasks”,因此将日志中包括“dispatching tasks”的日志作为任务分发类日志。
上述过滤的日志还可以为实体日志中访问频率小于预定值的目标对象的日志信息,访问频率小于预定值的目标对象的日志信息在应用程序中出现的次数较少,通常为并不关心的日志,因此可以将其进行过滤。
在一种可选的实施例中,以上述实施例格式化处理之后的实体日志为例,dispatching tasks为任务分发日志,在设置任务分发类型的日志为需要过滤的日志的情况下,会将其进行过滤,上述5条实体日志在进行过滤后得到如下两条实体日志:
Error while calling watcher fu@qq.com
Error while calling watcher fu@qq.com
作为一种可选的实施例,步骤S331,在对实体日志进行过滤处理,得到过滤后的日志之后,方法还包括:
步骤S3315,使用正则表达式对过滤后的日志进行格式置换。
在上述步骤中,使用正则表达式对过滤后的日志进行替换,可以使日志简化,减少日志的内容,并降低日志的复杂程度,更加利于日志的查询。具体的,可以使用正则表达式,对过滤后的日志中通用的格式进行置换。
在一种可选的实施例中,以上述过滤后的2条日志为例,通过“MAIL”将fu@qq.com进行置换,得到置换后的结果为:
Error while calling EMAIL
Error while calling EMAIL
此处需要说明的是,上述实施例用于示例对通用格式进行置换的过程,在实际应用中,可以将邮箱地址置换为“EMAIL”,还能够有多种其他的置换方式,例如,将QQ号码统一置换为“QQ”等,而上述2条日志也仅用于示例,在实际的处理过程中,由于日志数据量很大,因此通过上述置换的步骤,也能够大幅度的降低日志的程度,将日志规范化,更加便于日志的查找。
作为一种可选的实施例,步骤S331,在使用正则表达式对过滤后的日志进行格式置换之后,上述方法还包括:
步骤S3317,对格式置换后的结果进行定向替换处理。
具体的,上述定向替换处理可以是对于内容过于复杂,采用正则表达式无法处理的日志内容,由占位符号的方式进行替代。
例如,在大量的日志数据中,除了“Error while calling EMAIL”,还可能会存在较多的其他以“Error while calling”开头的日志,上述采用正则表达式替换之后的日志仍然较为复杂,因此可以用“call”替换所有以“Error while calling”开头的日志,因此,上述通过正则表达式替换的日志在进行定向替换后,得到如下两条日志:
call
call
从上述实施例可以显而易见的看出,在经过预处理过程之后,日志不仅被简化,而被规范化,极大的方便了后期对日志的查询,减少了查询日志耗费的时间。
作为一种可选的实施例,步骤S335,在对不同应用程序对应的合并日志进行合并处理之后,上述方法还包括:
步骤S337,按照预定周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本。
具体的,上述预定周期可以为10s,在上述步骤中,每经过10s,即将日志的合并处理后的结果接入hbase数据库中对应的位置。hbase数据库通过迭代更新接口进行每一个周期的写入,每进行一次写入,hbase数据库得到一个合并版本的日志。
作为一种可选的实施例,步骤S335,在对不同应用程序对应的合并日志进行合并处理之后,上述方法还包括:
步骤S339,按照预设的可变周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本,其中,基于不同时间段内产生日志信息的数量确定可变周期,每个可变周期内是动态变化的。
具体的,上述可变周期用于根据日志信息的生成数量进行变化。当日志信息的生成数量增长时,减小可变周期的时间,当日志信息的生成数量减小时,增加可变周期的时间。
在一种可选的实施例中,以对京东服务器生成的日志信息为例,可以根据当前时间确定日志信息生成的数量,例如:当时间09:00至20:00时,京东服务器在该段时间的访问量较为平稳,可以将可变周期设置为10s,即每10s将合并处理后的日志写入hbase数据库;当时间20:00至24:00时,京东服务器在该段时间内的访问量较高,生成的日志信息的数量较多,则可以将可变周期设置为5s,以适应数据的变化;当时间处于24:00至次日09:00时,京东服务器在该段时间的访问量较低,京东服务器生成的日志信息的数量较少,则可以将可变周期设置为15s。而对于特殊时间段,例如,京东进行六一八购物节期间,可以在六月十八日当天将可变周期设置为5s。
在另一种可选的实施例中,仍以京东服务器生成的日志信息为例,为了获取京东服务器的日志信息的生成数量,可以在京东的访问页面上设置热力图,根据热力图来获取访问量,访问量越大,对应的日志生成数量越多。在热量图表征当前的访问量超过第一预设值时,可以减少可变周期的时间,在热力图表征当前的访问量小于第二预设值时,可以增大可变周期的时间。
作为一种可选的实施例,在得到多个合并版本之后,上述方法还包括:对多个合并版本进行合并。
此处需要说明的是,如果上述预定周期或可变周期较长,则日志的实时性较差,但如果预定周期或可变周期较短,则数据库中存储的日志的时间维度也较短,用户在进行查询时需要进行较多的运算,例如,如果用户需要查询最近1min中的日志,则需要将最近六个合并版本再次合并,因此,上述步骤将按照预定周期合并的多个合并版本再进行合并,从而在保证日志的实时性的同时,减少用户查询日志时的数据运算量。
作为一种可选的实施例,仍以预定周期为10s为例,如果将六个合并版本进行合并,则能够得到每一分钟的应用维度的日志结果。
作为一种可选的实施例,在前端设备提供查询界面的情况下,在查询界面中输入对应的查询条件之后,查询结果显示在查询界面中,其中,查询条件包括如下至少之一:选择的应用程序的类型,时间段和查询对象的权限。
具体的,前端设备提供的查询界面可以是A3web console客户查询界面,在使用查询界面进行查询时,用户可以输入查询条件。在一种可选的实施例中,当用户输入应用程序的类型时,查询界面会显示该类型应用程序的日志查询结果;当用户输入查询的时间段时,前端设备确定用户查询的时间段与数据库中存储的时间维度进行比对,从而通过对数据库中存储的日志进行合并的方式,将用户所查询的时间段的日志数据显示于查询界面;当用户输入查询对象的权限时,前端设备根据用户的权限,显示与用户输入的权限对应的日志内容。当用户输入多个查询条件时,前端设备按照查询条件在数据库中进行筛选,再将符合查询条件的日志进行合并,并将合并后的日志显示于查询界面。
作为一种可选的实施例,在查询结果显示在查询界面中之前,上述方法还包括:
步骤S37,对查询到的查询结果进行合并处理,并将合并后的查询结果返回给前端设备。
在上述步骤中,由于数据库中是按照一定的时间维度对日志数据进行存储的,因此当查询结果显示在查询界面之前,还需要按照用户输入的查询条件,将符合条件的内容进行合并,从而方便用户查看。
在一种可选的实施例中,以数据库中存储的是每一分钟的应用维度的日志结果为例,如果用户的查询条件时查询最近两分钟的日志数据,则前端设备在数据库中查找最近两分钟的日志,再将最近两分钟的日志数据显示于查询界面之间,将最近两分钟的日志进行合并,最后将合并后的日志显示于查询界面,以供用户查看。
值得注意的是,在日志的查询界面上,通常一个屏幕可以展示约20行日志,现有技术中人员在查看日志时,需要一页一页的翻查,才能找到目标日志,例如,异常堆栈的日志。但日志经过上述实施例的压缩处理之后,以日志的内容以及日志的数量的方式显示日志,对于日志的查询界面来说,显示日志的行数产生了巨大的缩减,技术人员可以使用查看一条日志的时间查看大量的日志,同时,还可以显示每一种日志在应用程序的所有日志中所占的比例,从而协助技术人员了解应用程序运行的情况。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述日志的压缩方法的日志的压缩装置,如图4所示,该装置400包括:
采集模块40,用于实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息。
压缩处理模块42,用于对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果。
写入模块44,用于将压缩结果写入预定的位置。
此处需要说明的是,采集模块40、压缩处理模块42和写入模块44对应于实施例1中的步骤S31至步骤S35,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例2提供的计算机终端20中。
作为一种可选的实施例,压缩处理模块42包括:
预处理模块,用于对每条日志信息进行预处理。
第一合并模块,用于对预处理后的日志信息进行合并同类处理,得到合并日志,其中,前端设备上的每个应用程序对应一个合并日志,合并日志至少包括:被合并的预处理结果和合并的数量。
第二合并模块,用于对不同应用程序对应的合并日志进行合并处理,得到压缩结果。
作为一种可选的实施例,预处理模块包括:格式化模块,用于对每条日志信息进行格式化处理,得到日志信息中的实体日志,其中,实体日志包括日志信息中记录的操作的目标对象的对象信息。
作为一种可选的实施例,预处理模块还包括:过滤模块,用于在对每条日志信息进行格式化处理,对实体日志进行过滤处理,得到过滤后的日志,其中,过滤后的日志至少包括:实体日志中访问频率超过预定值的目标对象的日志信息。
作为一种可选的实施例,预处理模块还包括:置换模块,用于在对实体日志进行过滤处理,得到过滤后的日志之后,使用正则表达式对过滤后的日志进行格式置换。
作为一种可选的实施例,预处理模块还包括:定向替换模块,用于在使用正则表达式对过滤后的日志进行格式置换之后,对格式置换后的结果进行定向替换处理。
作为一种可选的实施例,预处理模块还包括:写入子模块,用于在对不同应用程序对应的合并日志进行合并处理之后,按照预定周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本;对多个合并版本进行合并。
作为一种可选的实施例,装置还包括:查询模块,用于在前端设备提供查询界面的情况下,在查询界面中输入对应的查询条件之后,查询结果显示在查询界面中,其中,查询条件包括如下至少之一:选择的应用程序的类型,时间段和查询对象的权限。
作为一种可选的实施例,上述装置还包括:处理模块,用于在查询结果显示在查询界面中之前,对查询到的查询结果进行合并处理,并将合并后的查询结果返回给前端设备。
实施例4
根据本发明实施例,还提供了一种系统,图5是根据本申请实施例4的一种系统的示意图,如图5所示,该系统包括:
处理器50;以及
存储器52,与处理器连接,用于为处理器提供处理以下处理步骤的指令:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;将压缩结果写入预定的位置。
具体的,存储器还用为处理器提供处理实施例1中其他日志的压缩方法的步骤的指令。
实施例5
根据本发明实施例,还提供了一种日志的查询方法,图6是根据本申请实施例5的一种日志的查询方法的流程图,如图6所示,该方法包括如下步骤:
步骤S61,接收查询指令,其中,查询指令至少包括:查询条件。
作为一种可选的实施例,查询条件包括如下至少之一:选择的应用程序的类型,时间段和查询对象的权限。
步骤S63,根据查询条件在压缩处理后的日志信息中进行查询,得到符合查询条件的查询结果,其中,对实时采集到的前端设备上产生的至少一条日志信息进行压缩处理,得到压缩处理后的日志信息,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息。
具体的,上述前端设备可以为用户访问目标应用程序所使用的终端。通过用户访问应用程序的操作,使前端设备访问目标应用程序的服务器,并将生成的日志信息发送至目标程序的服务器。通常一个应用程序都由多台服务器构成,在一种可选的实施例中,以目标应用程序为京东、唯品会以及中通为例,前端设备生成的日志信息都发送至京东、唯品会以及中通对应的服务器,用于进行日志分析的服务器与目标应用程序的所有服务器通信,以采集目标应用程序的所有服务器上记录的日志,即前端设备上产生的所有日志,从而获取目标应用程序完整的日志。
在上述步骤中,可以根据查询条件在用于存储日志信息的hbase数据库中进行查询,得到符合查询条件的查询结果。hbase数据库中存储的日志信息可以是进行过压缩处理的日志信息。
具体的,上述压缩处理可以用于去除日志中的无用日志,并对日志中的内容进行置换以及合并,以减少日志的种类。例如:首先,可以剔除无用日志,再剔除有用的日志中的无用信息,在对剔除无用信息的日志中的内容进行正则表达式的替换,最终得到的压缩结果是结构简单,且规范化的日志,在对结构简单且规范化的日志进行合并,从而减少日志的种类,进而减少在查询结果中日志的条目数量。
在一种可选的实施例中,用户输入的查询条件为应用程序的类型和时间段的组合,则查询结果为在该时间段内该应用程序的所有日志信息,如果用户输入的查询条件为应用程序的类型、时间段以及查询对象的权限,则查询结果为在查询对象的权限之内,该时间段内该应用程序的所有日志信息。
步骤S65,对查询结果中同类型的日志信息进行合并处理,并将合并后的查询结果返回给前端设备。
具体的,前端设备提供的查询界面可以是A3web console客户查询界面,在使用查询界面进行查询时,用户可以输入查询条件。在一种可选的实施例中,当用户输入的查询条件中,应用程序为X应用程序,时间段为最近2分钟时,对应的查询结果为在最近2分钟之内,X应用程序生成的所有日志。如果X应用程序在最近两分钟之内生成了50条日志,则在将这50条日志返回给前端设备之前,对这50条日志进行合并,将同类型日志进行合并,以日志数量和日志内容的方式返回给前端设备。例如:如果在这50条日志中,“Error while callingEMAIL”这条日志出现了5次,则返回给前端设备的日志信息不是分散在所有日志中的5条“Error while calling EMAIL”,而是“5,Error while calling EMAIL”。
作为一种可选的实施例,在对查询结果进行合并之后,在将查询结果返回给前端设备之前,还可以按照日志信息出现的数量进行排序,并将排序后的结果返回给前端设备。
在一种可选的实施例中,仍以X应用程序在最近两分钟之内生成了50条日志为例,在得到查询结果并进行合并之后,按照每个类型的日志信息出现的数量,由高至低或由低至高进行排序,返回给前端设备的查询结果为具有一定顺序的合并后的日志信息。
作为一种可选的实施例,在按照查询结果出现的数量进行排序之后,在将查询结果返回给前端设备之前,上述步骤还包括:确定日志信息出现的比例,并将日志信息出现的比例、日志信息出现的数量以及日志信息按照一定的顺序返回给前段设备。
实施例6
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行日志的压缩方法中以下步骤的程序代码:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;将压缩结果写入预定的位置。
可选地,图7是根据本发明实施例6的一种计算机终端的结构框图。如图7所示,该计算机终端70可以包括:一个或多个(图中仅示出一个)处理器702、存储器704、以及外设接口706。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的日志的压缩方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系日志的压缩方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;将压缩结果写入预定的位置。
可选的,上述处理器还可以执行如下步骤的程序代码:对每条日志信息进行预处理;对预处理后的日志信息进行合并同类处理,得到合并日志,其中,前端设备上的每个应用程序对应一个合并日志,合并日志至少包括:被合并的预处理结果和合并的数量;对不同应用程序对应的合并日志进行合并处理,得到压缩结果。
可选的,上述处理器还可以执行如下步骤的程序代码:在对不同应用程序对应的合并日志进行合并处理之后,按照预定周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本;对多个合并版本进行合并。
可选的,上述处理器还可以执行如下步骤的程序代码:在对不同应用程序对应的合并日志进行合并处理之后,按照预设的可变周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本,其中,基于不同时间段内产生日志信息的数量确定可变周期,每个可变周期内是动态变化的。
可选的,上述处理器还可以执行如下步骤的程序代码:在得到多个合并版本之后,对多个合并版本进行合并,将合并后的结果作为压缩结果。
可选的,上述处理器还可以执行如下步骤的程序代码:在前端设备提供查询界面的情况下,在查询界面中输入对应的查询条件之后,查询结果显示在查询界面中,其中,查询条件包括如下至少之一:选择的应用程序的类型,时间段和查询对象的权限。
可选的,上述处理器还可以执行如下步骤的程序代码:在查询结果显示在查询界面中之前,对查询到的查询结果进行合并处理,并将合并后的查询结果返回给前端设备。
可选的,上述处理器还可以执行如下步骤的程序代码:对每条日志信息进行格式化处理,得到日志信息中的实体日志,其中,实体日志包括日志信息中记录的操作的目标对象的对象信息。
可选的,上述处理器还可以执行如下步骤的程序代码:在对每条日志信息进行格式化处理,得到日志信息中的实体日志之后,对实体日志进行过滤处理,得到过滤后的日志,其中,过滤的日志至少包括:属于预设类型的日志。
可选的,上述处理器还可以执行如下步骤的程序代码:在对实体日志进行过滤处理,得到过滤后的日志之后,使用正则表达式对过滤后的日志进行格式置换。
可选的,上述处理器还可以执行如下步骤的程序代码:在使用正则表达式对过滤后的日志进行格式置换之后,对格式置换后的结果进行定向替换处理。
采用本发明实施例,提供了一种日志的压缩方案。该方案获取操作前端的应用程序生成的日志信息之后,对日志信息进行压缩处理,再将压缩处理后的压缩结果写入预定的位置。由于写入预定的位置的日志进行过压缩处理,使写入预定的位置的日志相对于直接获取的日志来说结构较为简单,且具有一定的规范,因此在压缩过的日志中进行查询,能够较容易的查询出需要获取的日志,例如:错误堆栈等。进一步的,由于在上述方案中,日志的获取和压缩处理都是实时进行的,因此可以避免现有技术中对日志进行离线运算产生数据量大,查找速度慢等弊端。
由此,上述实施例提出的日志的压缩方法解决了现有技术中日志文件数据较多且内容较复杂,导致查询日志消耗时间长的技术问题,从而达到了提高日志查询效率的技术效果。
本领域普通技术人员可以理解,图6所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,计算机终端60还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的日志的压缩方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作前端设备上的至少一个应用程序所产生的操作信息;对实时采集到的至少一条日志信息进行压缩处理,得到压缩结果;将压缩结果写入预定的位置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (17)

1.一种日志的压缩方法,其特征在于,包括:
实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作所述前端设备上的至少一个应用程序所产生的操作信息;
对实时采集到的所述至少一条日志信息进行压缩处理,得到压缩结果,其中,所述压缩处理包括:去除所述至少一条日志信息中的无用日志,对去除后的日志信息的内容进行正则表达式的替换,对替换后的日志信息进行合并;
将所述压缩结果写入预定的位置。
2.根据权利要求1所述的方法,其特征在于,对实时采集到的所述至少一条日志信息进行压缩处理,得到压缩结果,包括:
对每条日志信息进行预处理;
对预处理后的日志信息进行合并同类处理,得到合并日志,其中,所述前端设备上的每个应用程序对应一个合并日志,所述合并日志至少包括:被合并的预处理结果和合并的数量;
对不同应用程序对应的合并日志进行合并处理,得到所述压缩结果。
3.根据权利要求2所述的方法,其特征在于,在对不同应用程序对应的合并日志进行合并处理之后,所述方法还包括:
按照预定周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本。
4.根据权利要求2所述的方法,其特征在于,在对不同应用程序对应的合并日志进行合并处理之后,所述方法还包括:
按照预设的可变周期将合并处理后的结果通过预定的合并接口写入对应的位置,得到多个合并版本,其中,基于不同时间段内产生日志信息的数量确定所述可变周期,每个可变周期内是动态变化的。
5.根据权利要求3或4所述的方法,其特征在于,在得到多个合并版本之后,所述方法还包括:对所述多个合并版本进行合并,将合并后的结果作为所述压缩结果。
6.根据权利要求5所述的方法,其特征在于,在所述前端设备提供查询界面的情况下,在所述查询界面中输入对应的查询条件之后,查询结果显示在所述查询界面中,其中,
所述查询条件包括如下至少之一:选择的应用程序的类型,时间段和查询对象的权限。
7.根据权利要求6所述的方法,其特征在于,在查询结果显示在所述查询界面中之前,所述方法还包括:
对查询到的所述查询结果进行合并处理,并将合并后的查询结果返回给所述前端设备。
8.根据权利要求2所述的方法,其特征在于,对每条日志信息进行预处理,包括:
对每条所述日志信息进行格式化处理,得到所述日志信息中的实体日志,其中,所述实体日志包括所述日志信息中记录的操作的目标对象的对象信息。
9.根据权利要求8所述的方法,其特征在于,在对每条所述日志信息进行格式化处理,得到所述日志信息中的实体日志之后,所述方法还包括:
对所述实体日志进行过滤处理,得到过滤后的日志,其中,过滤的日志至少包括:属于预设类型的日志。
10.根据权利要求9所述的方法,其特征在于,在对所述实体日志进行过滤处理,得到过滤后的日志之后,所述方法还包括:
使用正则表达式对所述过滤后的日志进行格式置换。
11.根据权利要求10所述的方法,其特征在于,在使用正则表达式对所述过滤后的日志进行格式置换之后,所述方法还包括:
对格式置换后的结果进行定向替换处理。
12.一种日志的压缩装置,其特征在于,包括:
采集模块,用于实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作所述前端设备上的至少一个应用程序所产生的操作信息;
压缩处理模块,用于对实时采集到的所述至少一条日志信息进行压缩处理,得到压缩结果,其中,所述压缩处理包括:去除所述至少一条日志信息中的无用日志,对去除后的日志信息的内容进行正则表达式的替换,对替换后的日志信息进行合并;
写入模块,用于将所述压缩结果写入预定的位置。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至11中任意一项所述的日志的压缩方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至11中任意一项所述的日志的压缩方法。
15.一种系统,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
实时采集前端设备上产生的至少一条日志信息,其中,日志信息为操作所述前端设备上的至少一个应用程序所产生的操作信息;
对实时采集到的所述至少一条日志信息进行压缩处理,得到压缩结果,其中,所述压缩处理包括:去除所述至少一条日志信息中的无用日志,对去除后的日志信息的内容进行正则表达式的替换,对替换后的日志信息进行合并;
将所述压缩结果写入预定的位置。
16.一种日志的查询方法,其特征在于,包括:
接收查询指令,其中,所述查询指令至少包括:查询条件;
根据所述查询条件在压缩处理后的日志信息中进行查询,得到符合所述查询条件的查询结果,其中,对实时采集到的前端设备上产生的至少一条日志信息进行压缩处理,得到所述压缩处理后的日志信息,所述日志信息为操作所述前端设备上的至少一个应用程序所产生的操作信息,所述压缩处理包括:去除所述至少一条日志信息中的无用日志,对去除后的日志信息的内容进行正则表达式的替换,对替换后的日志信息进行合并;
对所述查询结果中同类型的日志信息进行合并处理,并将合并后的查询结果返回给前端设备。
17.根据权利要求16所述的方法,其特征在于,所述查询条件包括如下至少之一:选择的应用程序的类型,时间段和查询对象的权限。
CN201710515680.4A 2017-06-29 2017-06-29 日志的压缩方法和装置 Active CN109213736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710515680.4A CN109213736B (zh) 2017-06-29 2017-06-29 日志的压缩方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710515680.4A CN109213736B (zh) 2017-06-29 2017-06-29 日志的压缩方法和装置

Publications (2)

Publication Number Publication Date
CN109213736A CN109213736A (zh) 2019-01-15
CN109213736B true CN109213736B (zh) 2022-06-14

Family

ID=64976777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710515680.4A Active CN109213736B (zh) 2017-06-29 2017-06-29 日志的压缩方法和装置

Country Status (1)

Country Link
CN (1) CN109213736B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096485A (zh) * 2019-03-18 2019-08-06 平安普惠企业管理有限公司 日志查询方法、装置、计算机设备及存储介质
CN111935237B (zh) * 2020-07-15 2023-02-21 展讯通信(上海)有限公司 日志处理方法及系统、电子设备及存储介质
CN112000617B (zh) * 2020-08-07 2022-08-12 北京浪潮数据技术有限公司 一种日志预处理方法、装置、设备及可读存储介质
CN113282559A (zh) * 2021-06-04 2021-08-20 青岛海尔科技有限公司 计算机日志的分类方法和装置、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425568A (zh) * 2013-08-23 2013-12-04 新浪网技术(中国)有限公司 日志信息处理方法及装置
CN106547788A (zh) * 2015-09-22 2017-03-29 网宿科技股份有限公司 数据处理方法和装置
CN106649627A (zh) * 2016-12-06 2017-05-10 杭州迪普科技股份有限公司 一种日志查找的方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064833A (zh) * 2010-12-17 2011-05-18 曙光信息产业(北京)有限公司 一种dfa的正则表达式压缩方法
CN102158355B (zh) * 2011-03-11 2013-08-14 广州蓝科科技股份有限公司 一种可并发和断续分析的日志事件关联分析方法和装置
US9710535B2 (en) * 2011-08-12 2017-07-18 Nexenta Systems, Inc. Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories
CN103902608B (zh) * 2012-12-28 2019-06-07 腾讯科技(上海)有限公司 一种监控网页图片并进行压缩的方法和装置
CA2905996C (en) * 2013-03-13 2022-07-19 Guardian Analytics, Inc. Fraud detection and analysis
CN103593440B (zh) * 2013-11-15 2017-10-27 北京国双科技有限公司 日志文件的读写方法及装置
CN103593442B (zh) * 2013-11-15 2017-08-01 北京国双科技有限公司 日志数据的去重方法及装置
CN106055585A (zh) * 2016-05-20 2016-10-26 北京神州绿盟信息安全科技股份有限公司 一种日志解析方法及装置
CN106055608B (zh) * 2016-05-25 2019-06-07 北京百度网讯科技有限公司 自动采集和分析交换机日志的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425568A (zh) * 2013-08-23 2013-12-04 新浪网技术(中国)有限公司 日志信息处理方法及装置
CN106547788A (zh) * 2015-09-22 2017-03-29 网宿科技股份有限公司 数据处理方法和装置
CN106649627A (zh) * 2016-12-06 2017-05-10 杭州迪普科技股份有限公司 一种日志查找的方法和装置

Also Published As

Publication number Publication date
CN109213736A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
CN109213736B (zh) 日志的压缩方法和装置
US11792291B1 (en) Proxying hypertext transfer protocol (HTTP) requests for microservices
CN108667725A (zh) 一种基于多种接入及边缘计算的工业软网关以及实现方法
US7801281B2 (en) Collecting and delivering call data associated with court ordered traps
US20110191394A1 (en) Method of processing log files in an information system, and log file processing system
EP2088711A1 (en) A log analyzing method and system based on distributed compute network
CN108509326B (zh) 一种基于nginx日志的服务状态统计方法及系统
US20170116287A1 (en) Automatically generating and reporting merged performance and capacity statistics
CN113360554B (zh) 一种数据抽取、转换和加载etl的方法和设备
CN111241177B (zh) 数据采集方法、系统及网络设备
CN111367760B (zh) 日志采集方法及装置、计算机设备、存储介质
CN111198976B (zh) 云上资产关联分析系统、方法、电子设备及介质
CN112395333B (zh) 用于排查数据异常的方法、装置、电子设备及存储介质
CN111740868A (zh) 告警数据的处理方法和装置及存储介质
US11301475B1 (en) Transmission handling of analytics query response
CN111061802B (zh) 一种电力数据管理处理方法、装置及存储介质
CN112579007A (zh) 一种存储全链路的获取方法、装置及电子设备
CN106815223A (zh) 一种海量图片管理方法和装置
CN110309206B (zh) 订单信息采集方法及系统
CN112800016A (zh) 一种日志数据分类排序方法及装置
CN106776754A (zh) 数据采集方法、装置及系统
CN110825609A (zh) 服务的测试方法、装置和系统
CN107679198B (zh) 信息的查询方法及装置
CN107515916B (zh) 数据查询的性能优化方法及装置
CN115617750A (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
GR01 Patent grant
GR01 Patent grant