CN109614380A - 日志处理方法、***、计算机设备及可读介质 - Google Patents
日志处理方法、***、计算机设备及可读介质 Download PDFInfo
- Publication number
- CN109614380A CN109614380A CN201811425866.1A CN201811425866A CN109614380A CN 109614380 A CN109614380 A CN 109614380A CN 201811425866 A CN201811425866 A CN 201811425866A CN 109614380 A CN109614380 A CN 109614380A
- Authority
- CN
- China
- Prior art keywords
- log
- unit
- full
- acquisition
- information
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种日志处理方法、***、计算机设备及可读介质。该方法包括:采集日志单元,其中,日志单元为构成一个完整日志信息的最小单元;通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。本发明通过检测采集的日志单元与预设条件的匹配结果确定出完整的日志信息,将完整的日志信息封装为一个传输单元进行传输,从而大大加快了日志的传输速度和效率。当日志实时生成时,采集日志信息,从而日志采集和判断的速率大于日志生成的速率,进而能够适应日志实时分析的需求,能够通过分析日志进行实时监控和分析。
Description
技术领域
本发明涉及日志处理技术领域,更具体的,涉及一种日志处理方法、***、计算机设备及可读介质。
背景技术
以支付***为例,支付***每天产生大量***日志。通过对日志实时分析,我们能够得到处理时间、报文流转、业务状态、实时业务量等重要参数。对这些参数进一步分析统计,能够进行支付***健康状态分析、多维度业务实时统计分析等业务监控、数据挖掘等工作。尤其对于实时分析日志而言,实时分析日志的前提是能够实时采集日志。但是,当前的日志采集速率较低,无法满足实时分析日志的速率需求。
发明内容
有鉴于此,为了解决目前的日志采集速率较低,无法满足实时分析日志的速率需求,本发明提供一种日志处理方法、***、计算机设备及可读介质。
在某些实施例中,一种日志处理方法,包括:
采集日志单元,其中,日志单元为构成一个完整日志信息的最小单元;
通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;
将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。
在某些实施例中,一种日志处理***,包括:
采集模块,采集日志单元,其中,日志单元为构成一个完整日志信息的最小单元;
确定模块,通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;
封装模块,将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。
在某些实施例中,一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的日志处理方法的步骤。
在某些实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的日志处理方法的步骤。
本发明的有益效果:
本发明提供的日志处理方法、***、计算机设备及可读介质,通过检测采集的日志单元与预设条件的匹配结果确定出完整的日志信息,将完整的日志信息封装为一个传输单元进行传输,从而大大加快了日志的传输速度和效率。当日志实时生成时,采集日志信息,从而日志采集和判断的速率大于日志生成的速率,进而能够适应日志实时分析的需求,能够通过分析日志进行实时监控和分析。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明实施例中日志处理方法的流程示意图。
图2示出本发明实施例中日志处理方法的具体流程示意图之一。
图3示出本发明实施例中日志处理方法的具体流程示意图之二。
图4示出本发明实施例中日志处理方法的具体流程示意图之三。
图5示出本发明实施例中日志处理方法的具体流程示意图之四。
图6示出本发明实施例中的Flume工具的原理示意图。
图7示出本发明实施例中日志处理方法的逻辑框图。
图8示出本发明实施例中日志处理***的结构示意图。
图9示出适于用来实现本申请实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前的日志采集速率较低,无法满足实时分析日志的速率需求。在某些需要实时分析日志的***中,以支付***为例,如果日志的采集速率小于日志的生成速率,则无法实现实时分析的目的,进而无法实现健康状态分析、多维度业务实时统计分析等业务监控、数据挖掘等工作,影响银行等交易工作。
有鉴于此,本发明提供一种日志处理方法、***、计算机设备及可读介质,通过本发明可以使得日志的采集速度大于日志的生成速度,从而可以实时分析。
图1示出本发明实施例中日志处理方法的流程示意图。该方法具体包括:
S1:采集日志单元。
S2:通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;
S3:将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。
本发明提供的日志处理方法,通过检测采集的日志单元与预设条件的匹配结果确定出完整的日志信息,将完整的日志信息封装为一个传输单元进行传输,从而大大加快了日志的传输速度和效率。当日志实时生成时,采集日志信息,从而日志采集和判断的速率大于日志生成的速率,进而能够适应日志实时分析的需求,能够通过分析日志进行实时监控和分析。
日志单元为构成一个完整日志信息的最小单元。例如,在一个具体实施例中,一个记录事件的完整日志信息,如记录的事件为某次支付***中客户的一个交易事件,交易事件为用户转账、取款等,本发明不限于此。
一个日志单元可以是一行或多行字符,也可以是一个或多个固定或非固定的基于一定限制规则的字符。
形成日志单元的字符可以是计算机可以识别的字符,例如二进制等格式的字符、数字字符、英文字母、罗马字符和/或逻辑字符等。
每个日志单元的字符组成形式可以相同,也可以不同。例如,在上述的交易事件中,一个日志单元为“##[2018-08-08 08:08:08this is log#2header…]##”。
由于每个日志单元几乎都不相同,需要理解的是,作为一个完整的日志信息,需要具有开始和结尾。开始和结尾的日志单元的格式一般与中间的日志单元具有明显区别。因此,将分隔标志设置在该开始和结尾处,即可确认出完整的日志信息。
在一个具体的实施例中,采集日志单元的方式为打包采集多个日志单元,一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志。
以支付交易为例,当一个交易行为或事件产生后,即在当前支付***的一个子***的日志保存目录下产生一个日志文件,或者在存在的日志文件中写入事件的记录。当一个或多个事件结束后或者基于某个触发条件结束后(基于某个触发条件结束时,往往该日志并不完整,其至少包括一个不完整的日志信息),通过整体复制的方式将日志的信息打包写入采集模块中。结合图2,步骤S2具体包括:
S11:逐一判断采集的日志单元是否包含分隔标志;
S12:将包含分隔标志且最近的两个日志单元中的前一个单元及该两个日志单元之间的日志单元作为完整日志信息。
例如,每个日志单元为一行字符,第一行字符中包含有分隔标志M(例如格式为xxxx.xx.xx)预设条件为x为数字,并且x为不超过10的整数。
在一个支付***的交易事件产生的日志中,一个完整的日志信息包括日志头和日志内容,日志头位于第一行,其中包含有事件信息(例如2018,11,12,表示发生交易事件的日期),但日志内容中描述的是事件本身,没有上述格式的日期信息。此时,判断每个日志单元(即每一行)是否包含格式为xxxx.xx.xx的字符段,并且,x为数字,并且x为不超过10的整数。若包含,可以确定该行为日志头,若不包含则可以确定为日志内容。此时,对连续两个事件的日志头进行判断(下一个事件的日志信息记录在上一个日志信息的后面,例如下一个事件的日志信息记录在上一个日志信息结束的下一行),可以确定,最近的两个日志头之间的行为日志内容,此时即确定上一个日志头和该确定的之间的行作为一个完整的对应一个事件的日志信息。
例如,日志头可以包括:时间戳、PID和日志级别等。日志内容可以包括报文放置时间、报文读取时间、处理报文时间、报文内容、处理结果等。
在一些具体实施例中,日志头为起始行,日志头和日志内容通过分隔符隔开。此时,分隔标志设置在起始行中。上述缓存的日志信息即为日志内容。
基于上述相同的道理,应当知晓,分隔标志也可以设置在一个完整日志信息的最后一个日志单元(即上面所说的结尾)。
该实施例中,结合图3,步骤S2具体包括:
S21:逐一判断采集的日志单元是否包含分隔标志;
S22将包含分隔标志且最近的两个日志单元中的后一个单元及该两个日志单元之间的日志单元作为完整日志信息。
显然,分隔标志设置于首个或者最后一个日志单元,是根据日志本身的结构确定,本发明中采用的实施例为基于支付***产生的日志,该日志的特点为日志头和日志内容不同,但在其他日志中,例如,日志仅仅在结尾处嵌入一个时间戳,此时,将分隔标志设置在日志的第一个日志单元中,无法进行判断,但将结尾处的时间戳的格式设置为分隔标志,即可根据上述相同的原理确定出一个完整的日志信息。
在另一些具体实施例中,日志的采集为实时采集,即每生成一个日志单元,即当即采集一个日志单元,该实施例中,如果采集一个日志单元即传输一个日志单元,严重影响采集和传输的速度,导致无法实时采集传输。
根据本发明,当日志的采集为实时采集时,对于分隔标志设置在一个完整日志信息的首个日志单元中的实施例,结合图4,步骤S2具体包括:
S31:判断当前的日志单元是否匹配预设条件;
S32:若不匹配,则缓存该日志单元,直至判断为匹配时,将上一个匹配的日志单元和缓存的日志单元作为一个完整日志信息。
相较于现有技术采集一个日志单元即传输一个日志单元,本发明采集一个日志单元仅仅需要判断是否满足,例如可以采用比对的方式,不需要进行实时处理,其判断速度相较于封装传输的速度更快,因此,能够满足实时采集日志单元的速度要求。
进一步的,根据本发明上述分隔标志的位置设置,可以显然知晓,对于分隔标志设置在一个完整日志信息的最后一个日志单元中的实施例,结合图5,步骤S2具体包括:
S41:判断当前的日志单元是否匹配预设条件。
S42:若不匹配,则缓存该日志单元,直至判断为匹配时,将当前匹配的日志单元和缓存的日志单元作为一个完整日志信息。
作为示例,日志可以基于事件生成,例如,以支付***为例,每次交易均可以认定为一个事件,一个事件对应一个完整的日志信息。日志信息记录了事件的基本信息,例如事件发生时间、人物、交易类型等。
此外日志还可以基于时间生成,例如,每间隔预设时间段产生一个日志,记录在该时间段内发生的操作、计算等。
显然,日志的生成规则可以在可实现的前提下任意设置。
在支付***中,日志基于子***生成,一个日志对应一个子***或支付报文传输***当前的状态。支付***每天产生大量***日志。通过对日志实时分析,我们能够得到处理时间、报文流转、业务状态、实时业务量等重要参数。对这些参数进一步分析统计,能够进行支付***健康状态分析、多维度业务实时统计分析等业务监控、数据挖掘等工作。
当前支付***各子***的日志保存目录结构相似,均为一个顶层目录下包含多个多层动态子目录,日志文件分布在各叶子目录下。因此,日志采集模块需要实现能够动态监控顶层目录,出现新增日志文件时,自动采集新增日志。
在一些实施例中,日志信息可以通过Flume实时采集,Flume为日志自动采集框架,可以自动从设备收集日志然后将这些日志上传到HDFS,HDFS对这些采集的日志进行过滤,过滤后方便业务查询模块实时查询。图6示出了Flume的数据流模型示意图。Agent由三部分组成,Source用来采集数据,Channel用来暂时保存数据,Sink是将数据写到某种介质当中,比如写到HDFS、数据库、文件等。三个组件分别有多个实现类,以Source为例,可以监听某个端口,可以监听某个文件夹,还可以使用tail-f来实时监听log文件,只要有数据就收集过来。这需要不同的实现类来完成,Channel作为临时存储介质也有多个实现类,比如MemoryChannel,这样的Channel的优点是效率高。Sink可以写到不同的介质当中HDFS只是其中的一种,还可以写到HBase、Oracle等介质当中,可以根据需要灵活搭配,只需要更改配置文件内容即可。
Flume内部概念如下:
Event:由字节负荷和可选的字符串属性集合组成的数据流单元,是Flume的数据流单位。
Agent:一个JVM进程,数据流从一个Agent外部输入到输出成为一个单跳(HOP)。
Source:消费外部数据源输入到Agent的Event,可以认为是Agent的数据采集组件。
Channel:存储Source采集到的Event,直到Sink消费该Event。
Sink:从Channel删除Event,并将该Event输出至外部指定位置。Event在channel缓存的期间,Sink与Source异步运行。
Flume核心组件介绍:
Source
面对数量众多的数据格式,Flume Source适配了诸多常见的数据源,支持的数据源包括:avro,netcat,syslog,http,thrift,kafka,jms,文件,目录等。特别的,可以通过定制Source,实现用户需求的定制功能。
Channel
Channel缓存Event,每个Event由Source添加,由Sink移除。Channel类型包括:memory channel,JDBC channel,kafka channel,file channel等。用户可以通过使用内存,磁盘,第三方存储***作为Flume Channel,可以根据需求定制。
Sink
数据流向的目的地多种多样,同样地,Flume Sink也适配了常见的外部接口。包括HDFS,hive,hbase,logger,avro,thrift,ElasticSearch,kafka,http,文件等。同样可以通过定制Sink实现定制功能。
在一个具体实施例中,分隔标志所在的行具有可通过正则表达式描述的格式,正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
下面举例说明,以Flume建立的日志采集方法,分隔标志所在的行具有可通过正则表达式描述的格式,称为P,分隔标志包括能够匹配该正则表达式的字符串,即包含分隔标志的行能够与P匹配,将当前读取的行简称为S,结合图7,首先读入一行内容S,判断S是否匹配P,若否,则缓存S行,将S加入buffer中。继续读入下一行内容S,直至判断为是时,将buffer中的内容封装为一个传输单元,在Flume框架中,传输单元为event。将event加入待发送队列,以随时根据要求进行发送。同时清空buffer中的内容,将匹配的上一个S加入buffer,进行下一次的封装操作。即对应着的,封装的event中包括一个匹配的S行(对应分隔标志所在的行)和若干不匹配的S行(对应缓存的日志信息),这样,一个完整的日志信息即被封装在一个event中。
例如,现有的日志文件如下所示:
针对上述日志文件:
可以令正则表达式P=\\s?\\#\\#\\[\\d\\d\\d\\d-\\d\\d-\\d\\d\\s\\d\\d:\\d\\d:\\d\\d来匹配日志头中“##[2018-08-08 08:08:08”这只存在于日志头开始部分的内容作为分隔标志;
假设当前读入了line5,此刻buffer中内容应为:
##[2018-08-08 08:08:08this is log#1header…]##
----------------------------------------
$<this…
is…
line5内容“log#1…”不能匹配P,因此将line5加入buffer,buffer内容变为:
##[2018-08-08 08:08:08this is log#1header…]##
----------------------------------------
$<this…
is…
log#1…
继续向下读入line6,同line5,不能匹配P,buffer内容变为:
##[2018-08-08 08:08:08this is log#1header…]##
----------------------------------------
$<this…
is…
log#1…
context…>$
继续向下读入line7,能够匹配P,说明上一条日志已经结束,将buffer中的内容:
##[2018-08-08 08:08:08this is log#1header…]##
----------------------------------------
$<this…
is…
log#1…
context…>$
封装为一个event,加入待发送队列。
清空buffer,并将line7加入buffer。此时buffer:
##[2018-08-08 08:08:08this is log#2header…]##
若不满足发送条件,继续读入line8。
重复上述过程直到采集全部待采集日志文件内容。
通过上述实施例的说明,可以显然知晓,本发明通过检测采集的日志单元与预设条件的匹配结果确定出完整的日志信息,将完整的日志信息封装为一个传输单元进行传输,从而大大加快了日志的传输速度和效率。当日志实时生成时,采集日志信息,从而日志采集和判断的速率大于日志生成的速率,进而能够适应日志实时分析的需求,能够通过分析日志进行实时监控和分析。
上文详细说明了本发明提供的日志处理方法,下面对日志处理***进行说明,需要理解,为了避免重复论述,下面的说明基于上述相同的地方不再详述,但本领域技术人员根据上文显然可以知晓其原理或实现方式。
在本发明的另一方面,一种日志处理***,结合图8所示,包括:
采集模块100,采集日志单元;
确定模块200,通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;封装模块300,将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。
当然,基于上述方法的描述可以知晓,在一个实施例中,所述采集日志单元的方式为打包采集多个日志单元;一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志;所述确定模块包括:判断单元,逐一判断采集的日志单元是否包含分隔标志;确定单元,将包含分隔标志且最近的两个日志单元中的前一个单元及该两个日志单元之间的日志单元作为完整日志信息。
另一个实施例中,所述采集日志单元的方式为打包采集多个日志单元;一个完整日志信息的最后一个日志单元包括可匹配预设条件的分隔标志;所述确定模块包括:判断单元,逐一判断采集的日志单元是否包含分隔标志;确定单元,将包含分隔标志且最近的两个日志单元中的后一个单元及该两个日志单元之间的日志单元作为完整日志信息。
另一个实施例中,所述采集日志单元的方式为实时采集;所述一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志;所述确定模块包括:判断单元,判断当前的日志单元是否匹配预设条件;确定单元,若不匹配,则缓存该日志单元,直至判断为匹配时,将前一个匹配的日志单元和缓存的日志单元作为一个完整日志信息。
其他实施例中,所述采集日志单元的方式为实时采集;所述一个完整日志信息的最后一个日志单元包括可匹配预设条件的分隔标志;所述确定模块包括:判断单元,判断当前的日志单元是否匹配预设条件;确定单元,若不匹配,则缓存该日志单元,直至判断为匹配时,将当前匹配的日志单元和缓存的日志单元作为一个完整日志信息。
当然,需要说明的是,一个日志单元可以是一行或多行字符,也可以是一个或多个固定或非固定的基于一定限制规则的字符。
在一个具体实施例中,分隔标志所在的行具有可通过正则表达式描述的格式。正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,本发明不予赘述。
作为示例,日志可以基于事件生成,例如,以支付***为例,每次交易均可以认定为一个事件,一个事件对应一个完整的日志信息。日志信息记录了事件的基本信息,例如事件发生时间、人物、交易类型等。
此外日志还可以基于时间生成,例如,每间隔预设时间段产生一个日志,记录在该时间段内发生的操作、计算等。
显然,日志的生成规则可以在可实现的前提下任意设置。
在支付***中,日志基于子***生成,一个日志对应一个子***或支付报文传输***当前的状态。
一般地,支付日志包括日志头和日志内容,日志头的内容格式与日志内容的格式完全不同或者部分不同。
例如,日志头可以包括:时间戳、PID和日志级别等。日志内容可以包括报文放置时间、报文读取时间、处理报文时间、报文内容、处理结果等。
在一些具体实施例中,日志头为起始行(首个日志单元),日志头和日志内容通过分隔符隔开。此时,分隔标志设置在起始行中。上述缓存的日志信息即为日志内容。
在一些实施例中,日志信息可以通过Flume实时采集,Flume为日志自动采集框架,可以自动从设备收集日志然后将这些日志上传到HDFS,HDFS对这些采集的日志进行过滤,过滤后方便业务查询模块实时查询。图6为Flume的模型图,此处不再赘述。
通过上述说明,可以知晓,本发明提供的日志处理***,通过检测采集的日志单元与预设条件的匹配结果确定出完整的日志信息,将完整的日志信息封装为一个传输单元进行传输,从而大大加快了日志的传输速度和效率。当日志实时生成时,采集日志信息,从而日志采集和判断的速率大于日志生成的速率,进而能够适应日志实时分析的需求,能够通过分析日志进行实时监控和分析。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图9,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图9所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有***600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (26)
1.一种日志处理方法,其特征在于,包括:
采集日志单元,其中,日志单元为构成一个完整日志信息的最小单元;
通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;
将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。
2.根据权利要求1所述的方法,其特征在于,
所述采集日志单元的方式为打包采集多个日志单元;
所述一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志;
所述通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息,包括:
逐一判断采集的日志单元是否包含分隔标志;
将包含分隔标志且最近的两个日志单元中的前一个单元及该两个日志单元之间的日志单元作为完整日志信息。
3.根据权利要求1所述的方法,其特征在于,
所述采集日志单元的方式为打包采集多个日志单元;
所述一个完整日志信息的最后一个日志单元包括可匹配预设条件的分隔标志;
所述通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息,包括:
逐一判断采集的日志单元是否包含分隔标志;
将包含分隔标志且最近的两个日志单元中的后一个单元及该两个日志单元之间的日志单元作为完整日志信息。
4.根据权利要求1所述的方法,其特征在于,
所述采集日志单元的方式为实时采集;
所述一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志;
所述通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息,包括:
判断当前的日志单元是否匹配预设条件;
若不匹配,则缓存该日志单元,直至判断为匹配时,将上一个匹配的日志单元和缓存的日志单元作为一个完整日志信息。
5.根据权利要求1所述的方法,其特征在于,
所述采集日志单元的方式为实时采集;
所述一个完整日志信息的最后一个日志单元包括可匹配预设条件的分隔标志;
所述通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息,包括:
判断当前的日志单元是否匹配预设条件;
若不匹配,则缓存该日志单元,直至判断为匹配时,将当前匹配的日志单元和缓存的日志单元作为一个完整日志信息。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述预设条件为正则表达式,所述分隔标志包括能够匹配该正则表达式的字符串。
7.根据权利要求1-5任一项所述的方法,其特征在于,每行日志确定为一个日志单元,或者,每固定数量的字符确定为一个日志单元。
8.根据权利要求1所述的方法,其特征在于,所述日志基于事件生成,每个事件对应一个完整的日志信息;或者,所述日志基于时间生成,每个预设的时间段对应一个完整的日志信息。
9.根据权利要求1所述的方法,其特征在于,所述日志基于子***或支付报文传输***生成,每个子***或支付报文传输***对应一个完整的日志信息。
10.根据权利要求2所述的方法,其特征在于,包括所述分隔标志的日志单元的信息包括时间戳、PID和日志级别。
11.根据权利要求1所述的方法,其特征在于,包含分隔标志且最近的两个日志单元之间的日志单元的信息包括:
报文放置时间、报文读取时间、处理报文时间、报文内容、处理结果。
12.根据权利要求1所述的方法,其特征在于,所述日志通过Flume采集。
13.一种日志处理***,其特征在于,包括:
采集模块,其中,日志单元为构成一个完整日志信息的最小单元;
确定模块,通过检测采集的日志单元与预设条件的匹配结果确定完整日志信息;
封装模块,将构成确定的完整日志信息的日志单元封装为一个传输单元以供传输。
14.根据权利要求13所述的***,其特征在于,
所述采集日志单元的方式为打包采集多个日志单元;
所述一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志;
所述确定模块包括:
判断单元,逐一判断采集的日志单元是否包含分隔标志;
确定单元,将包含分隔标志且最近的两个日志单元中的前一个单元及该两个日志单元之间的日志单元作为完整日志信息。
15.根据权利要求13所述的***,其特征在于,
所述采集日志单元的方式为打包采集多个日志单元;
所述一个完整日志信息的最后一个日志单元包括可匹配预设条件的分隔标志;
所述确定模块包括:
判断单元,逐一判断采集的日志单元是否包含分隔标志;
确定单元,将包含分隔标志且最近的两个日志单元中的后一个单元及该两个日志单元之间的日志单元作为完整日志信息。
16.根据权利要求13所述的***,其特征在于,
所述采集日志单元的方式为实时采集;
所述一个完整日志信息的首个日志单元包括可匹配预设条件的分隔标志;
所述确定模块包括:
判断单元,判断当前的日志单元是否匹配预设条件;
确定单元,若不匹配,则缓存该日志单元,直至判断为匹配时,将前一个匹配的日志单元和缓存的日志单元作为一个完整日志信息。
17.根据权利要求13所述的***,其特征在于,
所述采集日志单元的方式为实时采集;
所述一个完整日志信息的最后一个日志单元包括可匹配预设条件的分隔标志;
所述确定模块包括:
判断单元,判断当前的日志单元是否匹配预设条件;
确定单元,若不匹配,则缓存该日志单元,直至判断为匹配时,将当前匹配的日志单元和缓存的日志单元作为一个完整日志信息。
18.根据权利要求14-17任一项所述的***,其特征在于,所述预设条件为正则表达式,所述分隔标志包括能够匹配该正则表达式的字符串。
19.根据权利要求13-17任一项所述的***,其特征在于,每行日志确定为一个日志单元,或者,每固定数量的字符确定为一个日志单元。
20.根据权利要求13所述的***,其特征在于,所述日志基于事件生成,每个事件对应一个完整的日志信息;或者,所述日志基于时间生成,每个预设的时间段对应一个完整的日志信息。
21.根据权利要求13所述的***,其特征在于,所述日志基于子***或支付报文传输***生成,每个子***或支付报文传输***对应一个完整的日志信息。
22.根据权利要求14所述的***,其特征在于,包括所述分隔标志的日志单元的信息包括时间戳、PID和日志级别。
23.根据权利要求14所述的***,其特征在于,包含分隔标志且最近的两个日志单元之间的日志单元的信息包括:
报文放置时间、报文读取时间、处理报文时间、报文内容、处理结果。
24.根据权利要求13所述的***,其特征在于,所述日志信息通过Flume采集。
25.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至12任一项所述的日志处理方法的步骤。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12任一项所述的日志处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811425866.1A CN109614380A (zh) | 2018-11-27 | 2018-11-27 | 日志处理方法、***、计算机设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811425866.1A CN109614380A (zh) | 2018-11-27 | 2018-11-27 | 日志处理方法、***、计算机设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614380A true CN109614380A (zh) | 2019-04-12 |
Family
ID=66005190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811425866.1A Pending CN109614380A (zh) | 2018-11-27 | 2018-11-27 | 日志处理方法、***、计算机设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614380A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704286A (zh) * | 2019-08-30 | 2020-01-17 | 中国人民财产保险股份有限公司 | 一种日志处理方法、装置及电子设备 |
CN112685364A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | Flume元数据信息分析提取方法及相关组件 |
CN113704069A (zh) * | 2021-07-20 | 2021-11-26 | 北京直真科技股份有限公司 | 一种基于flume日志搜集技术的告警***故障定位方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070027982A1 (en) * | 2005-07-28 | 2007-02-01 | Cassatt Corporation | Dynamically generating custom reports using self-defining report events |
CN106776715A (zh) * | 2016-11-16 | 2017-05-31 | 北京集奥聚合科技有限公司 | 一种收集日志的方法及*** |
CN106919499A (zh) * | 2017-02-27 | 2017-07-04 | 郑州云海信息技术有限公司 | 一种采集日志消息的方法和装置 |
-
2018
- 2018-11-27 CN CN201811425866.1A patent/CN109614380A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070027982A1 (en) * | 2005-07-28 | 2007-02-01 | Cassatt Corporation | Dynamically generating custom reports using self-defining report events |
CN106776715A (zh) * | 2016-11-16 | 2017-05-31 | 北京集奥聚合科技有限公司 | 一种收集日志的方法及*** |
CN106919499A (zh) * | 2017-02-27 | 2017-07-04 | 郑州云海信息技术有限公司 | 一种采集日志消息的方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704286A (zh) * | 2019-08-30 | 2020-01-17 | 中国人民财产保险股份有限公司 | 一种日志处理方法、装置及电子设备 |
CN110704286B (zh) * | 2019-08-30 | 2023-03-31 | 中国人民财产保险股份有限公司 | 一种日志处理方法、装置及电子设备 |
CN112685364A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | Flume元数据信息分析提取方法及相关组件 |
CN113704069A (zh) * | 2021-07-20 | 2021-11-26 | 北京直真科技股份有限公司 | 一种基于flume日志搜集技术的告警***故障定位方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577805B (zh) | 一种面向日志大数据分析的业务服务*** | |
CN109034993A (zh) | 对账方法、设备、***及计算机可读存储介质 | |
US9710539B2 (en) | Email analytics | |
CN106815125A (zh) | 一种日志审计方法及平台 | |
CN107943668A (zh) | 计算机服务器集群日志监控方法及监控平台 | |
CN106487596A (zh) | 分布式服务跟踪实现方法 | |
CN106487574A (zh) | 自动化运行维护监测*** | |
US10007571B2 (en) | Policy based dynamic data collection for problem analysis | |
US20110113117A1 (en) | Asynchronous Collection and Correlation of Trace and Communications Event Data | |
CN104036025A (zh) | 一种基于分布式的海量日志采集*** | |
Bennett et al. | Malstone: towards a benchmark for analytics on large data clouds | |
CN109614380A (zh) | 日志处理方法、***、计算机设备及可读介质 | |
CN109460307B (zh) | 基于日志埋点的微服务调用跟踪方法及其*** | |
CN113269547B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN111125042A (zh) | 一种确定风险操作事件的方法和装置 | |
CN107463479A (zh) | 一种社交数据监控*** | |
CN109977125A (zh) | 一种基于网络安全的大数据安全分析平台*** | |
CN109241187A (zh) | 基于Kafka消息队列的MongoDB日志采集和分析*** | |
CN103490978A (zh) | 终端、服务器和消息监视方法 | |
CN109344137A (zh) | 一种日志存储方法及*** | |
US9900270B2 (en) | Context-based storage of a conversation of one or more instant messages as a record | |
CN109359109A (zh) | 一种基于分布式流计算的数据处理方法及*** | |
CN112825165A (zh) | 项目质量管理的方法和装置 | |
CN110266555A (zh) | 用于分析网站服务请求的方法 | |
CN104123104B (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 | ||
CB02 | Change of applicant information |
Address after: 100195 1st Floor 112-113, Building 3, South District, Beiwu Innovation Park, 23 Beiwucun Road, Haidian District, Beijing Applicant after: Yinqing Technology Co.,Ltd. Address before: 100195 1st Floor 112-113, Building 3, South District, Beiwu Innovation Park, 23 Beiwucun Road, Haidian District, Beijing Applicant before: YINQING TECHNOLOGY (BEIJING) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |
|
RJ01 | Rejection of invention patent application after publication |