CN107395446B - 日志实时处理*** - Google Patents
日志实时处理*** Download PDFInfo
- Publication number
- CN107395446B CN107395446B CN201710840002.5A CN201710840002A CN107395446B CN 107395446 B CN107395446 B CN 107395446B CN 201710840002 A CN201710840002 A CN 201710840002A CN 107395446 B CN107395446 B CN 107395446B
- Authority
- CN
- China
- Prior art keywords
- log
- processing
- real
- module
- task
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种日志实时处理***,该***包括:日志发现机,适于接收位于各个机房的日志机的日志汇报消息,获取日志机提供的待处理的日志内容地址;至少一个处理机,适于根据所述日志内容地址,下载各个机房产生的日志内容,对日志内容进行实时消费处理,以及将日志内容上传到分布式存储***。利用本发明提供的一种日志实时处理***,将各个机房的产生的实时日志数据集中到一个机房中进行下载、实时消费以及上传处理,同时下载、实时消费以及上传处理均在同一处理机中进行,简化了***结构,并且能够在发生故障或者新增业务之后,对该一个机房进行维护或扩展即可,能够极大的降低维护难度及成本。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种日志实时处理***。
背景技术
随着互联网技术的不断发展,互联网大数据的趋势日益显著,每一条互联网的业务线都在不断地产生实时日志数据,对产生的实时日志数据进行进一步地处理以对互联网业务的运行进行反馈是相当重要的工作之一。现有技术中,对实时日志数据的分析处理是通过在各个机房中建立处理***,每一个处理***针对对应的机房进行分析处理。
然而,现有技术中的这种处理***散布在各个机房里,部署麻烦;并且分别对各个机房的日志进行处理,使得处理的文件数量大;另外,当出现故障或新增业务时,需要对每个机房的处理***进行维护,维护成本高,难度大;同时,该处理***不能实现将实时日志数据上传到存储***中。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的日志实时处理***。
根据本发明的一个方面,提供了一种日志实时处理***,该***包括:
日志发现机,适于接收位于各个机房的日志机的日志汇报消息,获取日志机提供的待处理的日志内容地址;
至少一个处理机,适于根据所述日志内容地址,下载各个机房产生的日志内容;对日志内容进行实时消费处理,以及将日志内容上传到分布式存储***。
可选的,处理机进一步包括:至少一个处理进程模块,适于并行地对日志内容进行下载处理、实时消费处理以及上传处理。
可选的,处理进程模块进一步包括:主进程模块,适于控制至少一个处理模块处理日志任务;以及,至少一个处理模块;
所述处理模块进一步包括:
日志获取模块,适于获取待处理的日志任务;
至少一个线程处理模块,适于处理所述日志任务。
可选的,至少一个线程处理模块进一步适于:利用所述日志发现机提供的日志内容地址,下载各个机房产生的日志内容。
可选的,至少一个线程处理模块进一步包括:
规则计数处理单元,适于统计命中云规则平台提供的一个或多个规则的日志内容的数量;
最近日志内容查询处理单元,适于查询最近命中云规则平台提供的一个或多个规则的预设数量的日志内容;
日志回传处理单元,适于将命中规则的日志内容的数量和/或命中规则的预设数量的日志内容回传至一个或多个机房;
和/或,日志推送处理单元,适于将日志内容推送给下游服务器。
可选的,至少一个线程处理模块进一步适于:将日志内容上传到分布式存储***。
可选的,至少一个线程处理模块进一步适于:按照预设规则对日志内容进行合并处理。
可选的,处理模块还包括:监控模块,适于监控并定时输出所述日志获取模块以及所述至少一个线程处理模块的状态信息;根据所述至少一个线程处理模块的状态信息优化分配日志任务。
可选的,处理模块还包括:处理通道,适于缓存日志任务。
可选的,日志内容以文件块为单位,所述日志机中包括存储队列,适于存储所产生的文件块。
根据本发明的一种日志实时处理***,通过接收各个机房的日志机的日志汇报消息,获取日志机提供的待处理的日志内容地址,实现将所有机房的待处理的实时日志数据集中到一个机房,相对于在各个机房中进行处理的方式减少了日志机的负载,同时便于进行分析处理,并且可根据整体布局对实时日志数据进行合并,减少文件数,提高处理的效率;在同一个处理机中,根据日志发现机提供的待处理的日志内容地址实现对日志内容的下载、实时消费以及上传处理,而无需在不同处理机中实现不同的功能,进而极大的简化了***的结构;另外,本发明将各个机房的实时日志数据集中到一个机房中进行处理的方式,并且能够在发生故障或者新增业务之后,仅需要对该一个机房进行维护或扩展即可,而无需针对每一个机房进行处理,能够极大的降低维护难度及成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的日志实时处理***的功能框图;
图2示出了本发明另一个实施例的处理机中的一个处理进程模块的功能框图;
图3示出了本发明又一个实施例的日志实时处理***的功能框图;
图4示出了本发明一个具体实施例的处理机的功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明一个实施例的日志实时处理***的功能框图。该***在同一个处理机中进行下载、实时处理以及上传处理。如图1所示,该***包括:日志发现机11以及至少一个处理机12。
日志发现机11,适于接收位于各个机房的日志机的日志汇报消息,获取日志机提供的待处理的日志内容地址。
实时日志数据的数据量大,并且记录着重要的信息,例如访问信息、服务信息等,利用这些实时日志数据提供的信息能够对业务的运行进行反馈以及对历史的业务进行统计分析。以云引擎部门的全部在线服务日志为例,处理***共需处理50多项的项目日志,实时日志数据的数据总量在压缩前达到165T每日,压缩后为30T每日,其中包括云查杀国内版11T,共800亿行,网盾国内版5T,共200亿行,人工智能引擎5至8T,可见实时日志数据的数量庞大,同时在对这些实时日志数据进行处理时,必须满足处理结构简单、容易扩展、数据不丢失以及延时小的要求,才能实现及时便捷的得到处理结果,利用该处理结果进行统计分析以及反馈。
每个机房有一组日志机,专门用来收集该机房的各个业务日志,其中,每一个业务对应一个文件夹,每隔一段时间生成一个文件落地到磁盘,可选时间粒度有分钟、小时和天。具体地,各个机房的日志机记录有该机房中所有引擎的在线服务的实时日志数据,日志机以文件为单位切分实时日志数据,一份文件即一份实时日志数据,通过日志机上的日志汇报消息将日志机上的实时日志数据的日志内容地址汇报给日志发现机11,其中,日志内容地址为对应实时日志数据的下载地址。
在日志实时处理***所在的本地机房中有日志发现机11,当各个机房的日志机有新文件生成的时候会向日志发现机11汇报,日志发现机11获取到日志机提供的待处理的日志内容地址,并将该日志内容地址复制到存放日志内容地址的队列中,以图1中的日志发现机11为例,机房1和机房2中的日志机分别通过日志汇报程序将云查杀和网盾产生的实时日志数据的日志内容地址汇报给日志发现机11,日志发现机11获取到该日志内容地址,并将该日志内容地址复制到存放队列中,其中,存放队列中存放的日志内容地址依然是以文件为单位,以便直接根据存放的顺序从队列中获取文件的下载地址进行下载,避免造成重复下载或者遗漏的情况。
至少一个处理机12,适于根据所述日志内容地址,下载各个机房产生的日志内容;对日志内容进行实时消费处理,以及将日志内容上传到分布式存储***。
本实施例中,日志内容的下载、实时消费以及上传处理可以在同一个处理机中完成,这相对与现有技术中必须在不同的组件中完成不同的处理,能够减少了***的组件配置工作,例如针对一项业务,现有技术需要至少一个下载组件、一个实时消费处理组件以及一个上传组件这一套组件来分别完成下载、实时消费以及上传任务,而本实施例中则最少只需要一个处理机12就能完成。
具体地,可根据业务量和/或业务对应的实时日志数据的量适当扩展处理机12的数量,由多个处理机12并行的执行处理任务,即通过灵活的横向扩容来满足处理需求,分担每一个处理机12的处理压力,减少处理耗时,提高整个***的处理效率。
根据本实施例的日志实时处理***,通过接收各个机房日志机的日志汇报消息,获取日志机提供的待处理的日志内容地址,实现将所有机房的待处理的实时日志数据集中到一个机房进行处理,相对于在各个机房中进行处理的方式减少了日志机的负载,同时便于进行分析处理,并且可根据整体布局对实时日志数据进行合并,减少文件数,提高处理的效率;在同一个处理机中,根据日志发现机提供的待处理的日志内容地址实现对日志内容的下载、实时消费以及上传处理,而无需在不同处理机中实现不同的功能,进而极大的简化了***的结构;另外,本发明将各个机房的实时日志数据集中到一个机房中进行处理的方式,能够在发生故障或者新增业务之后,仅需要对该一个机房进行维护或扩展即可,而无需针对每一个机房进行处理,能够极大的降低维护难度及成本。
图2示出了本发明另一个实施例的处理机中的一个处理进程模块的功能框图。
本实施例中,处理机12进一步包括:至少一个处理进程模块22,适于并行地对日志内容进行下载处理、实时消费处理以及上传处理。具体地,多个处理进程模块22可以并行处理不同类别的日志内容,其中,类别的划分根据业务和/或业务产生的日志内容的处理流程的相似度,即将同一业务的日志内容利用同一个处理进程模块22来进行下载处理、实时消费处理以及上传处理,和/或将处理流程相似度高的相同或不相同的业务产生的日志内容利用同一个处理进程模块22来进行下载处理、实时消费处理以及上传处理;多个处理进程模块22并行处理的方式能够充分利用处理机12的CPU,并且可以合理分担处理机12的负载,提高处理机12的处理效率,也即提高了***的运行效率。
在本发明的另一个具体的实施例中,对处理机12中的处理进程模块22的数量进行扩展,以满足业务数量的增长。
随着业务数量的增多,本实施例所需的处理进程模块22会远少于现有技术的处理***中的处理进程的数量,以处理50个业务产生的日志内容为例,现有技术的处理***中,针对每一个业务分别需要一个下载进程、一个实时处理进程和一个上传进程,则共需一百多个进程需要维护,进而会增加修复漏洞的难度,而本实施例中,针对一个业务或者多个业务只需要一个处理进程模块22,这样就能将处理进程模块22的数量控制在10个以下,因此能够简化***的结构,并且降低***维护的难度。
如图2所示,处理进程模块22进一步包括:主进程模块221以及至少一个处理模块222,其中,处理模块222进一步包括日志获取模块2221、至少一个线程处理模块2222、监控模块2223以及处理通道2224。
主进程模块221,适于控制至少一个处理模块处理日志任务。图2中,主进程模块221控制三个处理模块222处理日志任务,其中日志任务包括下载任务、实时消费任务以及上传任务;主进程模块221根据至少一个处理模块222的待处理的日志内容的需要被执行的日志任务将待处理的日志内容分配给不同的处理模块,例如将下载任务分配给第一个处理模块,实时消费任务分配给第二个处理模块,以及将上传任务分配给第三个处理模块;由于每一份日志内容都需要先进行下载处理,再进行实时消费处理和/或上传处理,因此主进程模块221也可以按以下方式进行分配,将下载任务分配给第一个处理模块或第二个处理模块,将实时处理任务和上传任务分配给第三个处理模块,因而避免由于下载处理的拥堵导致实时消费处理和上传处理均不能顺利进行。
日志获取模块2221,适于获取待处理的日志任务。图2中,日志获取模块2221根据其所在的处理模块222处理的日志任务获取主进程模块221分配的相同日志任务所对应的日志内容地址和/或日志内容,并将获取到的日志内容地址和/或日志内容发送给监控模块2223。
监控模块2223,适于监控并定时输出所述日志获取模块以及所述至少一个线程处理模块的状态信息。图2中,监控模块2223用于监控处理模块222中各个模块的状态信息,例如监控处理通道2224的堆积状态和/或线程处理模块2222的繁忙程度,并定时打印出各个模块的状态信息,打印的状态信息包括对应监控时间段内处理模块222处理的文件数、某个文件的行数以及文件处理时间等。
线程处理模块2222,适于处理所述日志任务。图2中,在进行日志任务处理的过程时,通过将日志任务分配给较空闲的线程处理模块2222去处理,或者直接由线程处理模块222主动获取日志任务;其中,每一个线程处理模块2222包括多个用于配合线程处理模块2222进行处理的多个处理单元,例如线程处理模块2222抢到下载任务,但是线程处理模块2222不能独立完成该下载任务,则由线程处理模块2222根据多个处理单元的繁忙程度分配该下载任务,并共同配合完成该下载任务。
线程处理模块2222的这种包括多个处理单元的结构能够实现优化处理策略,通过对日志任务的再分配,并且多个处理单元以及多个线程处理模块2222在执行日志任务的时候都是并行处理的,在日志任务对应的日志内容的量很大的情况下,这种并行处理的方式可以提高处理效率;若线程处理模块2222的数量较少,不能满足处理需求,则可以通过增加线程处理模块2222的数量,以优化CPU的利用率并提高处理效率。
进一步,若至少一个线程处理模块2222所在的处理模块222用于处理下载任务,则该至少一个线程处理模块进一步适于:利用所述日志发现机提供的日志内容地址,下载各个机房产生的日志内容。
进一步,若至少一个线程处理模块2222所在的处理模块222用于处理实时消费任务,则该至少一个线程处理模块进一步适于:对日志内容进行实时消费处理。
在本发明的一个具体实施例中,实时消费任务包括:规则计数处理、最近日志内容查询处理、日志回传处理和/或日志推送处理。对应的,线程处理模块2222进一步包括规则计数处理单元、最近日志内容查询处理单元、日志回传处理单元和/或日志推送处理单元。
其中,规则计数处理单元,适于统计命中云规则平台提供的一个或多个规则的日志内容的数量。具体地,云规则平台中提供有至少一种规则,该至少一种规则可用于筛选出符合规则特征的日志内容,规则计数处理单元则对筛选出的日志内容进行统计计数,并且后台或其他***可以利用该统计出的结果制定相应的决策,以使本发明提供的日志实时处理***能够更好的运行,或者为引擎端及机房的合理分布提供策略。
最近日志内容查询处理单元,适于查询最近命中云规则平台提供的一个或多个规则的预设数量的日志内容。具体地,最近日志内容查询处理单元用于查询命中云规则平台提供的一个或多个规则的日志内容,并且当查询到预设数量时则本次查询结束。
在本发明的一个具体实施例中,云规则平台中的规则可以根据业务方的需求配置,例如业务方需要网盾产生的日志中的某些黑URL。
日志回传处理单元,适于将命中规则的日志内容的数量和/或命中规则的预设数量的日志内容回传至一个或多个机房。具体地,日志回传处理单元用于将规则计数处理单元的统计结果和/或最近日志内容查询处理单元的查询结果回传至一个或多个机房,由该一个或多个机房利用回传的数据对对应机房产生的日志内容进行分析并制定相应的策略。
日志推送处理单元,适于将日志内容推送给下游服务器。具体地,日志推送处理单元获取到日志内容后,将满足条件的日志内容以特定的格式、特定的方式同步推送给需要该日志内容的下游服务器,特定的方式包括Qbus(分布式消息队列)、Nsq(分布式实时消息平台)和/或Kafka(分布式消息***),特定的格式包括只发送time字段和/或只发送slog字段。
具体地,上述规则计数处理单元、最近日志内容查询处理单元、日志回传处理单元和/或日志推送处理单元分别执行的规则计数处理、最近日志内容查询处理、日志回传处理和/或日志推送处理在同一个线程处理模块2222中轮流执行,以线程处理模块2222中包括规则计数处理单元以及日志回传处理单元为例,则在该线程处理模块2222中轮流执行规则计数处理和日志回传处理,其中日志回传处理单元输入的数据为规则计数处理单元的统计结果。在本实施例中,对执行的顺序不做具体限定,凡是符合处理逻辑的执行顺序均包含在本实施例的范围内。
进一步,若至少一个线程处理模块2222所在的处理模块222用于处理上传任务,则该至少一个线程处理模块进一步适于:将日志内容上传到分布式存储***。
具体地,在将日志内容上传到分布式存储***之前,由该处理模块222中至少一个线程处理模块2222按照预设规则对日志内容进行合并处理,具体地,不同机房的同一业务产生的日志内容可进行合并,进一步的,可按照product-combo-level规则进行合并,即将相同的product或相同的combo的日志内容进行合并。这种合并方式不仅能够进一步减少上传到分布式存储***的文件数,而且按照product-combo-level规则进行合并可以提高压缩比,减少压缩后的文件大小;同时,业务方在使用上传的日志内容或跑MapReduce的时候,能够更精确的选择所要处理的日志,极大的减少计算资源。
在处理模块222运行的过程中,由于日志任务的分配不均,例如将多个实时处理任务分配给同一个线程处理模块2222,而其他线程处理模块2222没有实时处理任务,导致出现处理模块222中的大量线程处理模块2222空闲,但是实时处理速度很慢的情况;针对上述情况,可以在查明原因的前提下,疏通并发,即将日志任务分配给处理模块222中较闲的线程处理模块2222,其中,查明原因的过程即可通过监控模块2223实现,通过对多个线程处理模块2222的监控,确定是否存在日志任务集中在某一个线程处理模块2222中的情况。
在实现上述监控多个线程处理模块2222的繁忙程度之后,监控模块2223进一步适于:根据至少一个线程处理模块的状态信息优化分配日志任务。图2中,监控模块2223根据监控到的至少一个线程处理模块2222的状态信息,即至少一个线程处理模块2222的繁忙程度,就能确定至少一个线程处理模块2222中是否存在日志任务分布不均导致的处理很慢的情况,若是,则由监控模块2223实现疏通并发,将日志任务分配给较空闲的线程处理模块2222中。
以上通过监控模块2223来实现至少一个线程处理模块2222中的日志任务优化分配的方式,可以以预设的时间周期利用监控模块2223的监控报告进行日志任务的分配,也可以在每次需要进行日志任务的分配前利用监控模块2223的报告进行繁忙程度的分析。
在本发明的另一些实施例中,在通过监控模块2223监控到至少一个线程处理模块2222的状态信息后,由监控模块2223根据日志任务对应的日志内容的处理速度的快慢决定将日志任务分配给其中一个线程处理模块2222,具体地,将对应的日志内容的处理速度快的快任务分配给较空闲的线程处理模块2222,将对应的日志内容的处理速度慢的慢任务分配给专门用于处理慢任务的线程处理模块2222,并且,若该用于处理慢任务的线程处理模块2222中的日志任务已达到预设值,则慢任务不能直接分配给该线程处理模块2222,而需将该慢任务存放到对应处理模块222的待处理的日志任务的最后一个以使监控模块2223下一次对其进行日志任务分配,这样就能够避免由于每个线程处理模块2222中均被分配有慢任务而导致处理效率低的问题。
在一些具体的实施例中,由监控模块2223进行快慢任务的划分,并将快任务和慢任务存放在快慢池中。
处理通道2224,适于缓存日志任务。图2中,处理通道2224用于缓存日志任务对应的日志内容地址和/或日志内容,具体地,处理通道2224根据监控模块2223对日志任务的分配情况进行日志内容地址和/或日志内容的缓存,即将分配到不同的线程处理模块2222的日志内容分别存储在处理通道2224的不同队列中,以方便将日志任务有序的提供给线程处理模块2222,避免发生混乱。
在本发明的一个具体实施例中,由监控模块2223将监控到的状态信息的打印并汇报给处理通道2224,并通过处理通道2224根据该汇报提供的信息分配日志任务以及依据分配结果进行缓存。
根据本实施例的日志实时处理***的处理进程模块,日志获取模块根据其所在的处理模块处理的日志任务获取主进程模块分配的该日志任务所对应的日志内容地址和/或日志内容,并将获取到的日志内容地址和/或日志内容发送给监控模块,实现将分配给该处理进程模块的日志任务再次分配给至少一个处理模块,进而能够将下载任务、实时消费任务以及上传任务分别分配给不同的处理模块,保证了日志任务的处理过程的互相隔离,避免干扰;通过将日志任务优化分配给至少一个线程处理模块,由该至少一个线程处理模块和线程处理模块中的多个处理单元配合进行多个日志任务并行处理,并且可以通过增加线程处理模块的数量以满足更多日志任务的处理需求,提高处理效率;另外,利用监控模块监控处理模块中各个模块的状态信息,并根据该状态信息进行日志任务的优化分配,或者,划分快慢任务并结合状态信息进行日志任务的优化分配,避免某一个线程处理模块的日志任务的拥堵而影响所在处理模块的处理效率。
利用包括本实施例提供的处理进程模块的日志实时处理***,由日志发现机获取各个机房的日志机提供的待处理的日志内容地址并进行预处理,根据处理结果将日志内容地址发送给对应处理机的对应处理进程中;由该处理进程中的主进程将包括该日志内容地址的下载任务分配给负责处理下载任务的处理模块,该处理模块的日志获取模块获取下载任务,由监控模块根据至少一个线程处理模块的繁忙程度,并结合该下载任务是属于快任务还是慢任务,将下载任务分配给其中一个线程处理模块,由线程处理模块和其包括的处理单元配合完成该下载任务,得到日志内容;该处理进程中负责处理实时消费任务的处理模块的日志获取模块获取到通过对下载任务的处理得到的日志内容,并生成实时消费任务,由负责实时消费的处理模块的监控模块根据该处理模块中至少一个线程处理模块的繁忙程度,并结合该实时消费任务是属于快任务还是慢任务,将实时消费任务分配给其中一个线程处理模块,由线程处理模块和其包括的处理单元配合完成该实时消费任务,和/或该处理进程中负责处理上传任务的处理模块的日志获取模块获取到通过对下载任务的处理得到的日志内容,并生成上传任务,由负责上传任务的处理模块的监控模块根据该处理模块中至少一个线程处理模块的繁忙程度,并结合该上传任务是属于快任务还是慢任务,将上传任务分配给其中一个线程处理模块,由线程处理模块和其包括的处理单元配合完成该上传任务。
图3示出了本发明又一个实施例的日志实时处理***的功能框图。本实施例中,从各个机房获取的日志内容以文件块为单位。如图3所示,该***与图1的区别在于,各个机房的日志机中包括存储队列,适于存储所产生的文件块,其中文件块由引擎生成,生成文件块的粒度可以达到秒级,例如1秒钟生成一个文件块。机房1的队列集群由队列1、队列2以及队列3组成,机房2的队列集群由队列1、队列2以及队列3组成,其中,不同机房的队列不同。
本实施例中,处理机12包括至少一个图2所示的处理进程模块22,适于并行地对日志内容进行下载处理、实时消费处理以及上传处理。图3中的下载模块321、实时消费模块322以及上传模块323相当于图2中的处理模块222,其功能设置相同。在一个具体的实施例中,图2中从上至下的三个处理模块222分别对应实现图3中的下载模块321的功能、实时消费模块322的功能、上传模块323的功能;在另一个具体的实施例中,图2中从上至下的第一个处理模块222和第二个处理模块222均对应实现图3中的下载模块321的功能,第三个处理模块222对应实现图3中的实时消费模块322和/或上传模块323的功能。
如图3所示的***,当各个机房有新的文件块生成的时候会向日志发现机11汇报,或者,日志发现机11中的日志发现服务会以预设的时间周期从各个机房的集群队列中查询是否有新的文件块生成。具体地,当日志发现机11获取到至少一个机房的集群队列中有新的文件块生成的信息时,将该信息以及新的文件块的位置信息作为待处理的日志任务提供给至少一个处理机12中负责下载任务的下载模块321,其中,位置信息包括队列集群以及队列。
在本发明的一些具体实施例中,若存在多个处理机12,则由日志发现机11根据新的文件块的位置信息和/或新的文件块的内容信息进行粗分类,生成粗分类的结果,并据此结果分配待处理的日志任务给对应的处理机12中负责下载任务的下载模块321,或者,由至少一个处理机12直接根据粗分类的结果获取待处理的日志任务并分配给该处理机12的至少一个下载模块321进行下载处理;在本发明的另一些具体的实施例中,若存在多个处理机12,由日志发现机11根据多个处理机12的空闲程度直接分配待处理的日志任务;在本发明的有一些实施例中,若存在多个处理机12,由多个处理机12直接从日志发现机11中获取待处理的日志任务。
至少一个下载模块321获取到日志任务后,控制队列搬运单元根据日志任务中携带的位置信息将日志任务对应的文件块搬运到本地机房中,完成日志任务的下载处理。由于机房是分散的,若按照日志内容地址进行下载会出现各个机房的日志内容的下载速度不一致,因而影响***的下载速度,而本实施例的这种直接从集群队列中搬运文件块的下载方式可以极大的提高下载速度。
至少一个实时消费模块322获取经至少一个下载模块321的下载处理得到的日志内容并生成实时消费任务,针对该实时消费任务进行实时消费处理,其中,实时消费处理包括规则计数处理、最近日志内容查询处理、日志回传处理和/或日志推送处理。
至少一个上传模块323获取经至少一个下载模块321的下载处理得到的日志内容并生成上传任务,针对该上传任务进行上传处理,其中,上传处理包括将获取到的日志内容按照product-combo-level规则进行合并,并且上传到分布式存储***中。
图4示出了本发明一个具体实施例的处理机的功能框图。如图4所示,下载模块321将获取的日志内容按业务和/或业务对应的日志内容的处理流程的相似度进行分类并依据分类的结果将日志内容存储在至少一个存放队列401中,即同一个存放队列401中存储的是同一个业务和/或处理流程相似度高的不同业务的日志内容;存放队列401将日志内容提供给实时消费模块322和/或上传模块323进行实时消费处理和/或上传处理。
图4中的下载模块321、实时消费模块322以及上传模块323相当于图2中的处理模块222,其功能设置相同。
在本发明的另一个具体的实施例中,各个机房拥有一个共同的存储引擎生成的文件块的队列集群,简化了结构,并且便于流量的控制。
根据本实施例提供的日志实时处理***,由引擎生成文件块,并将文件块存储在队列集群中,由于引擎生成文件块的速度快,即提高了日志任务的数据源的供应速度,因此能够提高***的及时性,将***的及时性提高到秒级;通过本地机房的处理机中的至少一个下载模块直接将文件块从集群队列中搬运到本地机房即实现了日志内容的下载,提高了下载的效率,并且节省了下载模块的资源;按照业务和/或业务对应的日志内容的处理流程的相似度进行分类,并存储在对应的存放队列中,便于有序的进行日志任务的实时消费处理以及上传处理。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例日志实时处理***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种日志实时处理***,包括:设置在一个机房内的日志发现机和至少一个处理机;
所述日志发现机,适于接收位于各个机房的日志机的日志汇报消息,获取日志机提供的待处理的日志内容地址;
所述处理机,适于根据所述日志内容地址,下载各个机房产生的日志内容;对日志内容进行实时消费处理,以及将日志内容上传到分布式存储***;其中,针对一项业务的日志,由同一处理机完成日志内容的下载、实时消费以及上传。
2.根据权利要求1所述的***,所述处理机进一步包括:至少一个处理进程模块,适于并行地对日志内容进行下载处理、实时消费处理以及上传处理。
3.根据权利要求2所述的***,所述处理进程模块进一步包括:主进程模块,适于控制至少一个处理模块处理日志任务;以及,至少一个处理模块;
所述处理模块进一步包括:
日志获取模块,适于获取待处理的日志任务;
至少一个线程处理模块,适于处理所述日志任务。
4.根据权利要求3所述的***,所述至少一个线程处理模块进一步适于:利用所述日志发现机提供的日志内容地址,下载各个机房产生的日志内容。
5.根据权利要求3所述的***,所述至少一个线程处理模块进一步包括:
规则计数处理单元,适于统计命中云规则平台提供的一个或多个规则的日志内容的数量;
最近日志内容查询处理单元,适于查询最近命中云规则平台提供的一个或多个规则的预设数量的日志内容;
日志回传处理单元,适于将命中规则的日志内容的数量和/或命中规则的预设数量的日志内容回传至一个或多个机房;
和/或,日志推送处理单元,适于将日志内容推送给下游服务器。
6.根据权利要求3所述的***,所述至少一个线程处理模块进一步适于:将日志内容上传到分布式存储***。
7.根据权利要求3所述的***,所述至少一个线程处理模块进一步适于:按照预设规则对日志内容进行合并处理。
8.根据权利要求3所述的***,所述处理模块还包括:监控模块,适于监控并定时输出所述日志获取模块以及所述至少一个线程处理模块的状态信息;根据所述至少一个线程处理模块的状态信息优化分配日志任务。
9.根据权利要求8所述的***,所述处理模块还包括:处理通道,适于缓存日志任务。
10.根据权利要求1-9任一项所述的***,所述日志内容以文件块为单位,所述日志机中包括存储队列,适于存储所产生的文件块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710840002.5A CN107395446B (zh) | 2017-09-18 | 2017-09-18 | 日志实时处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710840002.5A CN107395446B (zh) | 2017-09-18 | 2017-09-18 | 日志实时处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107395446A CN107395446A (zh) | 2017-11-24 |
CN107395446B true CN107395446B (zh) | 2021-07-23 |
Family
ID=60350510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710840002.5A Active CN107395446B (zh) | 2017-09-18 | 2017-09-18 | 日志实时处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107395446B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241570A (zh) * | 2018-01-10 | 2018-07-03 | 北京奇艺世纪科技有限公司 | 一种状态查看方法和*** |
CN108897665B (zh) * | 2018-06-29 | 2021-06-15 | 平安科技(深圳)有限公司 | 日志管理方法、装置、计算机设备及存储介质 |
CN111953551B (zh) * | 2020-08-27 | 2023-05-16 | 网易(杭州)网络有限公司 | 日志数据的传输方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838867A (zh) * | 2014-03-20 | 2014-06-04 | 网宿科技股份有限公司 | 日志处理方法和装置 |
CN103957252A (zh) * | 2014-04-28 | 2014-07-30 | 广州杰赛科技股份有限公司 | 云储存***的日志获取方法及其*** |
CN105119752A (zh) * | 2015-09-08 | 2015-12-02 | 北京京东尚科信息技术有限公司 | 一种分布式日志采集方法、装置及*** |
CN105740121A (zh) * | 2016-01-26 | 2016-07-06 | 中国银行股份有限公司 | 一种日志文本监控与预警方法、装置 |
CN106803841A (zh) * | 2017-02-14 | 2017-06-06 | 北京奇虎科技有限公司 | 消息队列数据的读取方法、装置及分布式数据存储*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170169078A1 (en) * | 2015-12-14 | 2017-06-15 | Siemens Aktiengesellschaft | Log Mining with Big Data |
-
2017
- 2017-09-18 CN CN201710840002.5A patent/CN107395446B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838867A (zh) * | 2014-03-20 | 2014-06-04 | 网宿科技股份有限公司 | 日志处理方法和装置 |
CN103957252A (zh) * | 2014-04-28 | 2014-07-30 | 广州杰赛科技股份有限公司 | 云储存***的日志获取方法及其*** |
CN105119752A (zh) * | 2015-09-08 | 2015-12-02 | 北京京东尚科信息技术有限公司 | 一种分布式日志采集方法、装置及*** |
CN105740121A (zh) * | 2016-01-26 | 2016-07-06 | 中国银行股份有限公司 | 一种日志文本监控与预警方法、装置 |
CN106803841A (zh) * | 2017-02-14 | 2017-06-06 | 北京奇虎科技有限公司 | 消息队列数据的读取方法、装置及分布式数据存储*** |
Also Published As
Publication number | Publication date |
---|---|
CN107395446A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166282B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN108009236B (zh) | 一种大数据查询方法、***、计算机及存储介质 | |
US10210221B2 (en) | System and method for distributed database query engines | |
Yan et al. | Blogel: A block-centric framework for distributed computation on real-world graphs | |
CN101957863B (zh) | 数据并行处理方法、装置及*** | |
CN107395446B (zh) | 日志实时处理*** | |
US10158709B1 (en) | Identifying data store requests for asynchronous processing | |
Zygouras et al. | Insights on a scalable and dynamic traffic management system. | |
CN103761146B (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN104112049A (zh) | 基于P2P构架的MapReduce任务跨数据中心调度***及方法 | |
De Souza et al. | Boosting big data streaming applications in clouds with BurstFlow | |
CN107609129B (zh) | 日志实时处理*** | |
Bardhan et al. | The Anatomy of MapReduce Jobs, Scheduling, and Performance Challenges. | |
CN104156505A (zh) | 一种基于用户行为分析的Hadoop集群作业调度方法及装置 | |
WO2024088078A1 (zh) | 一种带宽调节方法、***、设备及存储介质 | |
CN111552547A (zh) | 作业处理方法、装置以及计算机设备 | |
CN114610765A (zh) | 流计算方法、装置、设备及存储介质 | |
Chen et al. | Network-aware grouping in distributed stream processing systems | |
CN112597173A (zh) | 一种分布式数据库集群***对等处理***及处理方法 | |
Long et al. | An improved topology schedule algorithm for storm system | |
CN111144760B (zh) | 一种工单审核平台以及审核派单方法、装置和派发服务器 | |
US11514044B2 (en) | Automated plan upgrade system for backing services | |
Luo et al. | Supporting cost-efficient multi-tenant database services with service level objectives (SLOs) | |
CN112434060A (zh) | 数据查询方法及*** | |
CN114036186A (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 |