买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】日志落地方法及装置_北京奇虎科技有限公司_201711489249.3 

申请/专利权人:北京奇虎科技有限公司

申请日:2017-12-29

公开(公告)日:2024-04-16

公开(公告)号:CN110019045B

主分类号:G06F16/17

分类号:G06F16/17

优先权:

专利状态码:有效-授权

法律状态:2024.04.16#授权;2020.11.27#实质审查的生效;2019.07.16#公开

摘要:本发明提供了一种日志落地方法及装置,该方法包括:接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。基于本发明提供的日志落地方法,对于将已消费日志落地至新落地组件时,只需在日志的配置文件中增加需要落地的目标落地组件的配置信息即可实现日志的落地,可以避免对同一份日志的重复消费,快速并有效为业务将日志落地到组件中,进而提升业务接入的效率。

主权项:1.一种日志落地方法,包括:接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地;其中,所述解析所述日志访问请求之后,还包括:获取所述日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日志类别列表中;若否,则确定所述业务访问的日志属于未消费日志;将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志。

全文数据:日志落地方法及装置技术领域本发明涉及计算机技术领域,特别是涉及一种日志落地方法及装置。背景技术随着计算机技术的不断发展,各种数据的存储量及计算量也越来越大。面对日益庞大的数据量,当业务需要进行数据访问时,如何有效且快速的为各业务写入其所需要日志数据则为亟待解决的问题。传统技术中,数据库集群接收到数据访问请求时,需要将数据日志落地到各自的目标系统中,如果不同的目标系统对日志的需求的相同的话,数据库集群则需要对每个目标系统都要实现相关的代码,并且会重复开发,对日志进行重复消费。采用上述方式不仅会造成浪费资源,还会降低数据访问效率,减缓系统的运行速度。发明内容本发明提供了一种日志落地方法及装置以克服上述问题或者至少部分地解决上述问题。根据本发明的一个方面,提供了一种日志落地方法,包括:接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。可选地,所述解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志,包括:解析所述日志访问请求,获取所述日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;若是,则确定所述业务访问的日志属于已消费日志。可选地,所述解析所述日志访问请求,获取所述日志类别,判断该日志类别是否存在于预设日类别列表中之后,还包括:若否,则确定所述业务访问的日志属于未消费日志;将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志。可选地,所述将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志,包括:在所述预设日志类别列表中添加所述日志类别相应的字段信息;从指定集群中收集与所述日志类别对应的日志信息。可选地,所述根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地,包括:在所述日志的配置文件中指定的落地组件命令中添加所述目标落地组件的字段信息;根据所述目标落地组件的类型确定该目标落地组件实现日志落地所需的基本配置信息;在所述配置文件中添加所述目标落地组件的基本配置信息,以提供所述目标落地组件的访问接口,将所述日志写入所述目标落地组件中,完成日志落地。可选地,所述根据所述目标落地组件的类型在所述配置文件中添加所述目标落地组件的配置信息之后,还包括:重启与所述日志类别对应的应用。可选地,所述日志访问请求中还携带有将所述日志写入所述目标落地组件的落地路径;所述根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地之后,还包括:向所述业务返回日志落地成功的消息,由所述业务基于所述落地路径读取所述日志。可选地,所述方法应用于Kafka系统。根据本发明的另一个方面,还提供了一种日志落地装置,包括:请求接收模块,配置为接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析模块,配置为解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;落地模块,配置为根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。可选地,所述解析模块包括:判断单元,配置为解析所述日志访问请求,获取所述日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;第一确定单元,配置为当该日志类别存在于预设日类别列表中时,确定所述业务访问的日志属于已消费日志。可选地,所述解析模块还包括:第二确定单元,配置为配置为当该日志类别不存在于预设日类别列表中时,则确定所述业务访问的日志属于未消费日志;将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志。可选地,所述第二确定单元还配置为:在所述预设日志类别列表中添加所述日志类别相应的字段信息;从指定集群中收集与所述日志类别对应的日志信息。可选地,所述落地模块还配置为:在所述日志的配置文件中指定的落地组件命令中添加所述目标落地组件的字段信息;根据所述目标落地组件的类型确定该目标落地组件实现日志落地所需的基本配置信息;在所述配置文件中添加所述目标落地组件的基本配置信息,以提供所述目标落地组件的访问接口,将所述日志写入所述目标落地组件中,完成日志落地。可选地,上述装置还包括:重启模块,配置为重启与所述日志类别对应的应用。可选地,所述日志访问请求中还携带有将所述日志写入所述目标落地组件的落地路径;所述装置还包括:信息发送模块,配置为向所述业务返回日志落地成功的消息,由所述业务基于所述落地路径读取所述日志。根据本发明的另一个方面,还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据上述任一项所述的日志落地方法。根据本发明的另一个方面,还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据上述任一项所述的日志落地方法。本发明提供了一种更加高效的日志落地方法及装置,本发明提供的日志落地方法中,在接收到业务的日志访问请求后,通过解析该日志访问请求获取业务所需访问的日志类别以及日志的目标落地组件,当确定与该日志类别所对应的日志属于已消费日志时,可以直接在该日志的配置文件中增加目标落地组件的配置信息,以将日志写入目标落地组件中进而完成日志落地。基于本发明提供的日志落地方法,对于将已消费日志落地至新落地组件时,只需在日志的配置文件中增加需要落地的目标落地组件的配置信息即可实现日志的落地,可以避免对同一份日志的重复消费,快速并有效为业务将日志落地到组件中,进而提升业务接入的效率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是根据本发明实施例的日志落地方法流程示意图;图2是根据本发明实施例的Hamal统一落地框架结构示意图;图3是根据本发明实施例的基于Hamal统一落地框架的数据流示意图;图4是根据本发明实施例的日志落地装置结构示意图;图5是根据本发明优选实施例的日志落地装置结构示意图;图6是根据本发明实施例的用于执行根据本发明的日志落地方法的计算设备的框图示意图;以及图7是根据本发明实施例的用于保持或者携带实现根据本发明的日志落地方法的程序代码的存储单元示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1是根据本发明实施例的日志落地方法流程示意图,如图1所示,根据本发明实施例的日志落地方法包括:步骤S102,接收业务的日志访问请求,日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;步骤S104,解析上述日志访问请求,根据日志类别确定业务访问的日志属于已消费日志;步骤S106,根据目标落地组件的类型在日志的配置文件中添加目标落地组件的配置信息,将日志写入所述目标落地组件中,完成日志落地。本发明实施例提供了一种更加高效的日志落地方法,接收到业务的日志访问请求后,通过解析该日志访问请求获取业务所需访问的日志类别以及日志的目标落地组件,当确定与该日志类别所对应的日志属于已消费日志时,可以直接在该日志的配置文件中增加目标落地组件的配置信息,以将日志写入目标落地组件中进而完成日志落地。基于本发明实施例提供的日志落地方法,对于将已消费日志落地至新落地组件时,只需在日志的配置文件中增加需要落地的目标落地组件的配置信息即可实现日志的落地,可以避免对同一份日志的重复消费,快速并有效为业务将日志落地到组件中,进而提升业务接入的效率。消费日志,即从数据存储系统中拉取数据。本发明实施例优选应用于Kafka系统。Kafka是一种分布式基于发布订阅的消息系统。在本发明实施例中,Kafka其实是一个桥梁一样的存储,各数据库中的数据都会进入到Kafka,而Kafka只是通过读到这些数据为各个业务提供服务。各个业务需要读取数据时,会到Kafka中拉取数据。比如说不同的业务需要将同一份日志分别落到HDFSHadoop分布式文件系统、Redis、HBase等多个落地组件中时,对于同一份日志可能会消费很多遍,造成很多重复消费,进而浪费资源。在本发明实施例提供的日志落地方法中,当接收到业务需要消费某个日志的请求时,会将该业务所需要的日志落地到新的落地组件中。这时,可以先判断该日志是否已经被消费过,如果是的话,则可直接在日志的配置文件中增加该新的落地组件的配置信息。以一份日志举例来说,原来业务只有落HDFS的需求,现在业务想在Redis也落地一份相同的日志,则只需要在该日志的在配置文件中加入Redis相关的配置就可以实现。可选地,上述步骤S104可进一步通过以下方式确定日志属于已消费日志时:解析日志访问请求,获取日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;若是,则确定该业务访问的日志属于已消费日志。若否,则确定业务访问的日志属于未消费日志;将该日志类别添加至预设日志类别列表中,并从指定集群中消费日志。对于Kafka集群来说,每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic,每条消费都必须指定它的topic。在本发明实施例中,当接收到业务的数据访问请求时,该请求可以指定从Kafka中消费的topic。集群中可以预存有topics或topiclist类别列表,在接收一个新业务的请求之后,对其进行解析,获取该请求中需要消费的topic,并判断该topic是否存在于预设的topiclist中,如果存在的话,可直接确定该topic已消费。如果该topic不在预设topiclist中,则将该topic添加到预设的topiclist中。优选地,在将日志类别添加至预设日志类别列表中,并从指定集群中消费日志可以包括:在预设日志类别列表中添加日志类别相应的字段信息;从指定集群中收集与日志类别对应的日志信息。举例来说,可以在已有的topic列表中添加请求中所携带的该topic字段。再根据解析该topic的协议进行消费,即实现日志的收集。也就是说,topiclist中topic字段可根据业务的需求进行任意增减。在上述步骤S106提及,可以根据目标落地组件的类型在日志的配置文件中添加目标落地组件的配置信息,将日志写入至目标落地组件中,完成日志落地。其中,在日志的配置文件中添加落地组件的配置信息,实际上就是接口的实现。本发明实施例中对于已消费日志的访问接口可以是一个可负载的接口。由于会包括例如Redis、HBase、HDFS等多个落地组件,当业务需要将日志落地到其中的一个或多个组件时,例如Redis,只需要实现一个Redis的接口就能够满足业务的需求。而在本实施例中,在日志的配置文件中添加Redis的相关配置信息,即该日志实现了可供Redis访问接口的实现,就相当于就是业务需要的那份日志就会写入到Redis进去,进而完成日志的落地。实际应用中,每个落地组件的配置信息是不一样的。比如业务需要将日志落地至HDFS,需要添加的配置信息可以包括:落地的根目录、压缩方式还有落地的格式。也就是说,每个落地组件都会有自己的配置信息,然后需要进行日志落地时,只要提供相关的这些信息即可实现。另外,如果业务所提交的访问请求中同时申请将日志落地至HDFS,Redis两个组件,会将日志双写到这两个组件中,并且将日志写入不同的落地组件时,可以根据落地组件各自的数据存储格式对日志的格式进行转换,以符合各落地组件的数据格式要求,快速并高效为业务提供接入服务。可选地,在日志的配置文件中添加落地组件的配置信息之后,可以重启与该日志类别对应的应用,即Application。Application就是相当于是业务级别的,每个日志其实是属于一个业务的,当业务要增加落地组件的话,其实就是只要重启日志对应的Application,以使新增的配置信息生效。进一步地,日志访问请求中还携带有将日志写入目标落地组件的落地路径,将日志的配置文件修改好之后,可以向业务返回日志落地成功的消息,由业务基于该落地路径读取日志。其中,向业务返回的日志落地成功的消息,可以是给业务发邮件,也可以是其他形式的消息,表示根据业务的请求将指定日志落地到指定的落地组件中,本发明不做限定。上文提及,会将业务请求的日志写入各落地组件以实现日志的落地。优选地,本实施例中的各落地组件可由Flink实现并管理。除上述各落地组件之外,Flink还可以实现多种source、sink组件,sink组件就是上文提及的目标落地组件,比如HDFS、Redis、HBase、Hive、ELK等等。基于上述实施例提供的日志落地方法,本发明实施例可提供一种由Kafka以及Flink共同实现的落地架构Hamal,基于该框架做数据的统一的监控以及管理。如图2所示,本发明实施例提供的基于Kafka和Flink的统一落地架构Hamal。该框架由Kafka处理数据流,通过Kafkaoffset保存消费者消费的进度。offset就是有记录说从哪个点开始获取日志信息,虽然是从Kafka去取的,但是未必是实时去取的,也有可能通过offset定位到两天前或几天前的数据,在所定位到的两天前或几天前的日志之后,根据业务的需要落地至sink组件。当所定位到的时间段的日志已经落地,则后面的数据就可以实时落地。在本实施例提供的统一落地架构中,offset主要包括CheckPointer检查点以及burrowLagMonitor两个线程。CheckPointer作用,一旦用户改变数据,缓冲区就变脏了。用户的commit并不意味着改动已经写入数据文件,即WAL日志write-aheadlog,预写式日志文件,而是需要检查点进程来完成这项工作。当发生一个检查点操作,所有脏的page都会被写入表和索引文件中;此时一个特殊的检查点记录被写入WAL日志文件。当发生崩溃时,崩溃恢复程序查看最新的检查点记录,通过WAL日志文件中的特殊检查点记录来决定从哪里开始REDO重做日志我文件操作。因此,执行完一个检查点之后,我们就不再需要这个点之前的日志区段了。Burrow是监控Kafka消费者健康情况这一棘手问题的恰当方式,它为用户提供了消费者状态的综合概览,并提供了无需指定阈值的消费者延迟验证服务。Burrow会按照topic分区来监控所有消费者所提交数据的偏差值,并根据需求计算相应消费者的状态。本发明实施例提供的Hamal统一落地框架中,Kafka可以与HamalFrameworkHamal架构、FlinkonYarnRuntimeFlinkonYarn运行时进行结合,并基于Flink实现的多个sink组件,sink组件可以包括:HDFSBucketingSink、HBaseHBaseSink、GraylogGraylogSink、Redis、cassandra等等。把上述各组件实现当做插件一样,实现一遍就可以给业务任意搭配使用了,将各落地组件进行统一开发管理,当接收到业务的日志访问请求时,在该请求中携带所访问日志的日志类型以及该日志的落地组件,然后进行相关的配置即可。基于上述框架的数据流可以如图3所示。KafkaConsumer,消息消费者,向Kafkabroker读取消息的客户端,consumer从broker拉取pull日志数据后,进行反序列化处理,将处理后的数据根据组件类型的不同进行格式转换后,写入各组件,完成日志落地。下面通过一个优选实施例对上述实施例进行详细说明。1、接收来自业务的日志访问请求,该请求中携带有将特定日志落地至hdfs、kafka以及相应的落地路径;2、修改日志的配置文件,在该日志的落地组件命令中添加hdfs、kafka字段,并添加hdfs、kafka的基本配置信息;3、重启日志对应的Application;在重启的同时即可根据日志访问请求中携带的落地路径将该日志分别写入hdfs、kafka中4、向业务反馈落地成功的信息,业务可直接根据日志访问请求中的落地路径中读取日志。上述优选实施例的过程可以通过以下代码实现:指定从哪个Kafka集群消费kafka.clusterId=shbt2kafka.retries=5kafka.auto.offset.reset=earliest以下为需要从kafka中消费的topics,可按业务增减topichamal.source.kafka.topics=d.x.6.m,d.x.6,d.u.6.m,d.u.6,d.s.6.m,d.s.6,d.c.6.m,d.c.6定义如何解析上述topic的协议hamal.source.kafka.message.deserializer.class=com.mvad.hamal.lib.source.io.RawlogDeserializer在数据处理过程中是否要做一些特殊处理,比如过滤,采样等操作hamal.processor.class=com.mvad.hamal.lib.processor.DSPProcessor指定落地到hdfs,kafka这两个组件kafka本身也是一个可以落地的组件hamal.sink.target=hdfs,kafka也可以再加一个rediskafkasink组件的配置hamal.sink.kafka.clusterId=shbt2hamal.sink.kafka.message.serializer.class=com.mvad.hamal.lib.source.io.DSPSampleKafkaMessageSerializerhdfssink组件的配置信息hamal.sink.hdfs.basedir=mvadrawlogdsphamal.sink.hdfs.format=LzoThriftBlockWithMetahamal.sink.hdfs.bucketing.filename.prefix=dsphamal.sink.hdfs.bucketing.filename.suffix=.dsp.lzo由上述实施例可知,日志的配置文件中配置了几个组件,就需要对应的增加各组件的配置信息,业务通过增减消费的topic、或增减组件,可以灵活配置。基于同一发明构思,本发明实施例还提供了一种日志落地装置。如图4所示,根据本发明实施例的日志落地装置可以包括:请求接收模块410,配置为接收业务的日志访问请求,日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析模块420,配置为解析日志访问请求,根据日志类别确定该业务访问的日志属于已消费日志;落地模块430,配置为根据目标落地组件的类型在该日志的配置文件中添加上述目标落地组件的配置信息,将该日志写入目标落地组件中,完成日志落地。在本发明的一个优选实施例中,如图5所示,解析模块420可以包括:判断单元421,配置为解析日志访问请求,获取日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;第一确定单元422,配置为当该日志类别存在于预设日类别列表中时,确定业务访问的日志属于已消费日志。在本发明的一个优选实施例中,如图5所示,解析模块420还可以包括:第二确定单元423,配置为配置为当该日志类别不存在于预设日类别列表中时,则确定业务访问的日志属于未消费日志;将日志类别添加至预设日志类别列表中,并从指定集群中消费日志。在本发明的一个优选实施例中,第二确定单元423还可以配置为:在预设日志类别列表中添加日志类别相应的字段信息;从指定集群中收集与日志类别对应的日志信息。在本发明的一个优选实施例中,落地模块430还可以配置为:在日志的配置文件中指定的落地组件命令中添加目标落地组件的字段信息;根据目标落地组件的类型确定该目标落地组件实现日志落地所需的基本配置信息;在配置文件中添加目标落地组件的基本配置信息,以提供目标落地组件的访问接口,将日志写入目标落地组件中,完成日志落地。在本发明的一个优选实施例中,如图5所示,上述装置还可以包括:重启模块440,配置为重启与日志类别对应的应用。在本发明的一个优选实施例中,日志访问请求中还携带有将日志写入目标落地组件的落地路径;如图5所示,上述装置还可以包括:信息发送模块450,配置为向业务返回日志落地成功的消息,由业务基于落地路径读取日志。本发明实施例提供了一种日志落地方法及装置,在接收到业务的日志访问请求后,通过解析该日志访问请求获取业务所需访问的日志类别以及日志的目标落地组件,当确定与该日志类别所对应的日志属于已消费日志时,可以直接在该日志的配置文件中增加目标落地组件的配置信息,以将日志写入目标落地组件中进而完成日志落地。基于本发明实施例提供的日志落地方法,对于将已消费日志落地至新落地组件时,只需在日志的配置文件中增加需要落地的目标落地组件的配置信息即可实现日志的落地,可以避免对同一份日志的重复消费,快速并有效为业务将日志落地到组件中,进而提升业务接入的效率。并且,本发明实施例中各落地组件可进行集中配置,当新的业务对同一份日志具有不同的落地请求时,可高效并快速为业务提供接入服务,通过增加在日志的配置文件中增加配置信息,达到配置即上线,大大提高接入效率。进一步地,本发明实施例的消费一份日志就可以落地到多个系统中,避免重复消费,大大节省资源,可扩展性、系统容忍错误的这种程度均可有效提升,还具备高可用,高扩展性。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书包括伴随的权利要求、摘要和附图中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书包括伴随的权利要求、摘要和附图中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器DSP来实现根据本发明实施例的日志落地装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序例如,计算机程序和计算机程序产品。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。本发明实施例还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行根据上述任一项所述的日志落地方法。本发明实施例提供了一种计算机可读存储介质,其中,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行根据上述任一项所述的日志落地方法。例如,图6示出了可以实现日志落地方法的计算设备。该计算设备传统上包括处理器610和存储器620形式的计算机程序产品或者计算机可读介质。存储器620可以是诸如闪存、EEPROM电可擦除可编程只读存储器、EPROM、硬盘或者ROM之类的电子存储器。存储器620具有存储用于执行上述方法中的任何方法步骤的程序代码631的存储空间630。例如,存储程序代码的存储空间630可以包括分别用于实现上面的方法中的各种步骤的各个程序代码631。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘CD、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图7所示的便携式或者固定存储单元。该存储单元可以具有与图6的计算设备中的存储器620类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括用于执行本发明的方法步骤的计算机可读代码631’,即可以由诸如610之类的处理器读取的代码,当这些代码由计算设备运行时,导致该计算设备执行上面所描述的方法中的各个步骤。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。根据本发明的一个方面,提供了A1.一种日志落地方法,包括:接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。A2.根据A1的方法,其中,所述解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志,包括:解析所述日志访问请求,获取所述日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;若是,则确定所述业务访问的日志属于已消费日志。A3.根据A2所述的方法,其中,所述解析所述日志访问请求,获取所述日志类别,判断该日志类别是否存在于预设日类别列表中之后,还包括:若否,则确定所述业务访问的日志属于未消费日志;将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志。A4.根据A3所述的方法,其中,所述将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志,包括:在所述预设日志类别列表中添加所述日志类别相应的字段信息;从指定集群中收集与所述日志类别对应的日志信息。A5.根据A1所述的方法,其中,所述根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地,包括:在所述日志的配置文件中指定的落地组件命令中添加所述目标落地组件的字段信息;根据所述目标落地组件的类型确定该目标落地组件实现日志落地所需的基本配置信息;在所述配置文件中添加所述目标落地组件的基本配置信息,以提供所述目标落地组件的访问接口,将所述日志写入所述目标落地组件中,完成日志落地。A6.根据A1所述的方法,其中,所述根据所述目标落地组件的类型在所述配置文件中添加所述目标落地组件的配置信息之后,还包括:重启与所述日志类别对应的应用。A7.根据A1-A6任一项所述的方法,其中,所述日志访问请求中还携带有将所述日志写入所述目标落地组件的落地路径;所述根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地之后,还包括:向所述业务返回日志落地成功的消息,由所述业务基于所述落地路径读取所述日志。A8.根据A1-A6任一项所述的方法,其中,所述方法应用于Kafka系统。根据本发明的另一个方面,还提供了B9.一种日志落地装置,包括:请求接收模块,配置为接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析模块,配置为解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;落地模块,配置为根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。B10.根据B9所述的装置,其中,所述解析模块包括:判断单元,配置为解析所述日志访问请求,获取所述日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;第一确定单元,配置为当该日志类别存在于预设日类别列表中时,确定所述业务访问的日志属于已消费日志。B11.根据B10所述的装置,其中,所述解析模块还包括:第二确定单元,配置为配置为当该日志类别不存在于预设日类别列表中时,则确定所述业务访问的日志属于未消费日志;将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志。B12.根据B11所述的装置,其中,所述第二确定单元还配置为:在所述预设日志类别列表中添加所述日志类别相应的字段信息;从指定集群中收集与所述日志类别对应的日志信息。B13.根据B9所述的装置,其中,所述落地模块还配置为:在所述日志的配置文件中指定的落地组件命令中添加所述目标落地组件的字段信息;根据所述目标落地组件的类型确定该目标落地组件实现日志落地所需的基本配置信息;在所述配置文件中添加所述目标落地组件的基本配置信息,以提供所述目标落地组件的访问接口,将所述日志写入所述目标落地组件中,完成日志落地。B14.根据B9所述的装置,其中,还包括:重启模块,配置为重启与所述日志类别对应的应用。B15.根据B9-B14任一项所述的装置,其中,所述日志访问请求中还携带有将所述日志写入所述目标落地组件的落地路径;所述装置还包括:信息发送模块,配置为向所述业务返回日志落地成功的消息,由所述业务基于所述落地路径读取所述日志。根据本发明的另一个方面,还提供了C16.一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据A1-A8中任一项所述的日志落地方法。根据本发明的另一个方面,还提供了D17.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据A1-A8中任一项所述的日志落地方法。

权利要求:1.一种日志落地方法,包括:接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。2.根据权利要求1的方法,其中,所述解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志,包括:解析所述日志访问请求,获取所述日志访问请求中携带的日志类别,判断该日志类别是否存在于预设日类别列表中;若是,则确定所述业务访问的日志属于已消费日志。3.根据权利要求2所述的方法,其中,所述解析所述日志访问请求,获取所述日志类别,判断该日志类别是否存在于预设日类别列表中之后,还包括:若否,则确定所述业务访问的日志属于未消费日志;将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志。4.根据权利要求3所述的方法,其中,所述将所述日志类别添加至所述预设日志类别列表中,并从指定集群中消费日志,包括:在所述预设日志类别列表中添加所述日志类别相应的字段信息;从指定集群中收集与所述日志类别对应的日志信息。5.根据权利要求1所述的方法,其中,所述根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地,包括:在所述日志的配置文件中指定的落地组件命令中添加所述目标落地组件的字段信息;根据所述目标落地组件的类型确定该目标落地组件实现日志落地所需的基本配置信息;在所述配置文件中添加所述目标落地组件的基本配置信息,以提供所述目标落地组件的访问接口,将所述日志写入所述目标落地组件中,完成日志落地。6.根据权利要求1所述的方法,其中,所述根据所述目标落地组件的类型在所述配置文件中添加所述目标落地组件的配置信息之后,还包括:重启与所述日志类别对应的应用。7.根据权利要求1-6任一项所述的方法,其中,所述日志访问请求中还携带有将所述日志写入所述目标落地组件的落地路径;所述根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地之后,还包括:向所述业务返回日志落地成功的消息,由所述业务基于所述落地路径读取所述日志。8.一种日志落地装置,包括:请求接收模块,配置为接收业务的日志访问请求,所述日志访问请求中携带有所需访问的日志类别以及至少一个目标落地组件;解析模块,配置为解析所述日志访问请求,根据所述日志类别确定所述业务访问的日志属于已消费日志;落地模块,配置为根据所述目标落地组件的类型在所述日志的配置文件中添加所述目标落地组件的配置信息,将所述日志写入所述目标落地组件中,完成日志落地。9.一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的日志落地方法。10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-7中任一项所述的日志落地方法。

百度查询: 北京奇虎科技有限公司 日志落地方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。