CN109327351B - 日志数据的实时采集方法、装置、电子设备及存储介质 - Google Patents
日志数据的实时采集方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109327351B CN109327351B CN201811064735.5A CN201811064735A CN109327351B CN 109327351 B CN109327351 B CN 109327351B CN 201811064735 A CN201811064735 A CN 201811064735A CN 109327351 B CN109327351 B CN 109327351B
- Authority
- CN
- China
- Prior art keywords
- configuration information
- parallel task
- log data
- log
- data
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种日志数据的实时采集方法、装置、电子设备及存储介质,该方案利用第一并行任务实时获取用户的第一配置信息,根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列,利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域。该方案能够基于用户对日志采集任务的动态配置和对用户配置信息的实时并发访问,实现日志数据的实时和动态地采集。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种日志数据的实时采集方法、装置、电子设备及存储介质。
背景技术
在大数据领域,日志数据的采集一向是重中之重,尤其是如何保证数据的稳定采集、精准采集、动态采集,是每家公司都想攻克的难题。产生日志的服务器有千千万,日志所在的目录各不相同,并且已有的采集任务有可能会修改采集目录或者直接停止采集,原本未采集的目录有可能在某一天增加采集目录,如何动态实时的增加采集目录,并且为下游提供多种的访问途径是多数日志采集系统急需解决的问题。
发明内容
本公开实施例提供一种日志数据的实时采集方法、装置、电子设备及存储介质,用于解决上述问题。
第一方面,本公开实施例提供了一种日志数据的实时采集方法,包括:
利用第一并行任务实时获取用户的第一配置信息;
根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列;
利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域。
结合第一方面,在第一方面的第一种实现方式中,所述方法还包括:
利用第三并行任务接收所述用户的配置信息;
根据所述配置信息生成所述第一配置信息和第二配置信息,并将所述第一配置信息和第二配置信息存储在能够多任务并发访问的分布式存储节点上。
结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列,包括:
根据所述第一配置信息生成多个日志采集任务;
并行执行所述多个日志采集任务,以将采集的日志数据发送给所述分布式消息队列;其中,一个所述日志采集任务采集到的日志数据对应存储到所述分布式消息队列的一个主题中。
结合第一方面、第一方面的第一种或第二种实现方式,在第一方面的第三种实现方式中,所述方法还包括:
利用所述第三并行任务从所述分布式消息队列中获取心跳数据;其中,所述心跳数据为所述第一并行任务和/或第二并行任务定时生成并发送至所述分布式消息队列的预设主题中的;
在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
结合第一方面、第一方面的第一种至第三种任一种实现方式,在第一方面的第四种实现方式中,所述方法还包括:
在获取到所述心跳数据后,利用所述第三并行任务检测所述心跳数据,以监控所述第一并行任务和/或第二并行任务的实时性。
在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
结合第一方面的第三种或第四种实现方式,在第一方面的第五种实现方式中,所述第一并行任务生成的所述心跳数据包括当前采集的日志数据的相关信息以及采集进度;所述第二并行任务生成的所述心跳数据包括当前从所述分布式消息队列获取并存储至所述存储区域的数据信息。
在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
结合第一方面、第一方面的第一种至第五种任一种实现方式,在第一方面的第六种实现方式中,所述利用第三并行任务接收所述用户的配置信息,包括:
利用所述第三并行任务从Web页面接收所述用户的所述配置信息。
第二方面,本公开实施例提供了一种日志数据的实时采集装置,包括:
信息获取模块,被配置为利用第一并行任务实时获取用户的第一配置信息;
日志采集模块,被配置为根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列;
日志聚合模块,被配置为利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域。
结合第二方面,在第二方面的第一种实现方式中,所述装置还包括:
配置接收模块,被配置为利用第三并行任务接收所述用户的配置信息;
配置同步模块,被配置为根据所述配置信息生成所述第一配置信息和第二配置信息,并将所述第一配置信息和第二配置信息存储在能够多任务并发访问的分布式存储节点上。
结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述日志采集模块包括:
任务生成子模块,被配置为根据所述第一配置信息生成多个日志采集任务;
任务执行子模块,被配置为并行执行所述多个日志采集任务,以将采集的日志数据发送给所述分布式消息队列;其中,一个所述日志采集任务采集到的日志数据对应存储到所述分布式消息队列的一个主题中。
结合第二方面、第二方面的第一种或第二种实现方式,在第二方面的第三种实现方式中,所述装置还包括:
心跳信息获取模块,被配置为利用所述第三并行任务从所述分布式消息队列中获取心跳数据;其中,所述心跳数据为所述第一并行任务和/或第二并行任务定时生成并发送至所述分布式消息队列的预设主题中的;
异常告警模块,被配置为在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
结合第二方面、第二方面的第一种至第三种任一种实现方式,在第二方面的第四种实现方式中,所述装置还包括:
实时监控模块,被配置为在获取到所述心跳数据后,利用所述第三并行任务检测所述心跳数据,以监控所述第一并行任务和/或第二并行任务的实时性。
结合第二方面的第三种或第四种实现方式,在第二方面的第五种实现方式中,所述第一并行任务生成的所述心跳数据包括当前采集的日志数据的相关信息以及采集进度;所述第二并行任务生成的所述心跳数据包括当前从所述分布式消息队列获取并存储至所述存储区域的数据信息。
结合第二方面、第二方面的第一种至第五种任一种实现方式,在第二方面的第六种实现方式中,所述配置接收模块包括:
Web配置子模块,被配置为利用所述第三并行任务从Web页面接收所述用户的所述配置信息。
第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现第一方面中日志数据的实时采集方法。
第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现第一方面中日志数据的实时采集方法。
本公开实施例提供的技术方案可以包括以下有益效果:
上述技术方案,利用第一并行任务实时获取用户的第一配置信息,以根据第一配置信息实时采集服务器上的日志数据并发送至分布式消息队列,并利用第二并行任务实时获取所述用户的第二配置信息以根据所述第二配置信息从所述分布式消息队列中读取所述日志数据存储至指定存储区域,从而基于用户对日志采集任务的动态配置和对用户配置信息的实时并发访问,实现了日志数据的实时和动态地采集。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的日志数据的实时采集方法的流程图;
图2示出根据本公开另一实施方式的日志数据的实时采集方法的流程图;
图3示出根据图1所示实施方式的日志数据的实时采集方法的步骤S102的流程图;
图4示出根据本公开另一实施方式的日志数据的实时采集方法的流程图;
图5示出根据本公开一实施方式的日志数据的实时采集装置的结构示意图;
图6示出根据本公开另一实施方式的日志数据的实时采集装置的结构示意图;
图7示出根据图4所示实施方式的日志数据的实时采集装置的日志采集模块502的结构示意图;
图8示出根据本公开另一实施方式的日志数据的实时采集装置的结构示意图;
图9示出根据本公开一实施方式的电子设备的结构示意图;
图10是适于用来实现根据本公开一实施方式的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
现有技术中有运用Apache flume软件采集日志,但是这种技术需要大量配置原生的property配置文件,需要根据每台机器的不同采集任务配置不同的配置文件,工作量繁杂,且难于修改,不能统一化配置,需要登录每一台服务端机器进行配置,并且需要较高的机器权限。其次,这种技术没有完善的监控机制,对于日志的延迟、服务掉线等异常情况无法进行有效监控。
图1示出根据本公开一实施方式的日志数据的实时采集方法的流程图。如图1所示,所述日志数据的实时采集方法包括以下步骤S101-S103:
步骤S101,利用第一并行任务实时获取用户的第一配置信息;
步骤S102,根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列;
步骤S103,利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域。
上文提及,现有的日志采集方法需要根据每台机器的不同采集任务配置不同的配置文件,无法做到日志采集任务的动态配置。
考虑到上述缺陷,在该实施方式中,提出一种日志数据的实时采集方法,该方法利用第一并行任务实时获取用户的第一配置信息,以根据第一配置信息实时采集服务器上的日志数据并发送至分布式消息队列,并利用第二并行任务实时获取所述用户的第二配置信息以根据所述第二配置信息从所述分布式消息队列中读取所述日志数据存储至指定存储区域,从而基于用户对日志采集任务的动态配置和对用户配置信息的实时并发访问,实现了日志数据的实时和动态地采集。
其中,在步骤S101和S102中,第一并行任务可以是部署在每一台服务器机器上的日志数据采集节点(Collector节点),负责采集每一台服务器机器上产生的日志数据,并将日志数据发送至分布式消息队列。日志数据采集节点(Collector节点)可以是根据实时获取的第一配置信息对目标服务器机器上的日志数据进行采集的计算机程序或进程。第一配置信息是用户根据实际所需要的日志数据而配置的,例如日志数据采集源(如服务器目录等)。
其中,所述分布式消息队列是分布式系统中重要的组件,可以解决应用耦合、异步消息、流量削锋等问题,是大型分布式系统不可缺少的中间件。本实施方式中,分布式消息队列可以采用诸如kafka的分布式消息队列实现。Apache Kafka是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。
其中,在步骤S103中,第二并行任务可以是部署在单独的多台机器上的日志数据聚合节点(Pub节点),负责读取所述分布式消息队列中的日志数据,并存储至指定的存储区域。日志数据聚合节点(Pub节点)根据实时获取的用户配置信息来进行日志数据的落地,将分布式消息队列中已采集的日志数据聚合至指定的存储区域。用户还可以根据实际情况配置第二配置信息,可以用于指示将分布式消息队列中的哪些数据分别聚合至哪个存储区域等。
其中,所述指定的存储区域可以向离线任务的用户提供日志数据的访问。为了提供高效、快速的日志数据访问服务,所述指定的存储区域可以采用Hadoop分布式文件系统(HDFS)实现日志数据的聚合存储。HDFS分布式文件系统,提供对超大规模数据集的可靠存储功能,并对用户提供数据的高吞吐量访问。
在一实施例中,服务器集群中每台日志服务器上都运行有第一并行任务,不同服务器上的不同第一并行任务并行执行,而第二并行任务可以允许在单独的一些服务器或者服务器集群中部分日志服务器上,第一并行任务和第二并行任务并行执行,它们可以在相同的执行实体上执行,也可以在不同的执行实体上执行。
在本实施例的一个可选实现方式中,如图2所示,所述方法还包括:
步骤S201,利用第三并行任务接收所述用户的配置信息;
步骤S202,根据所述配置信息生成所述第一配置信息和第二配置信息,并将所述第一配置信息和第二配置信息存储在能够多任务并发访问的分布式存储节点上。
在该实施方式中,通过将用户对日志采集的配置信息存储至能够多任务并发访问的分布式存储节点,使得分别执行日志采集和日志聚合的第一并行任务和第二并行任务实现了实时并发访问,提高了日志数据采集的实时性。
其中,第三并行任务可以是部署于服务器的主控节点(Master节点),其负责接收用户的配置信息,并将配置信息解析为日志数据采集节点(Collector节点)和日志数据聚合节点(Pub节点)分别所读取的第一配置信息和第二配置信息。为了提供各日志数据采集节点(Collector节点)和日志数据聚合节点(Pub节点)的实时并发访问,主控节点(Master节点)实时将解析后的第一配置信息和第二配置信息同步存储至能够进行多任务并发访问的分布式存储节点上。
其中,分布式存储节点例如可以采用ZooKeeper分布式应用程序协调服务框架中的存储节点来实现。Zookeeper作为一个分布式的服务框架,可以用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,可以用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。
在一实施例中,第三并行任务可以在服务器集群中的管理服务器上运行,第一并行任务、第二并行任务和第三并行任务分别并行执行,它们可以在相同的执行实体上执行,也可以在不同的执行实体上执行。
在本实施例的一个可选实现方式中,如图3所示,所述步骤S102中根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列,包括:
步骤S301,根据所述第一配置信息生成多个日志采集任务;
步骤S302,并行执行所述多个日志采集任务,以将采集的日志数据发送给所述分布式消息队列;其中,一个所述日志采集任务采集到的日志数据对应存储到所述分布式消息队列的一个主题中。
在该实施方式中,作为第一并行任务的日志数据采集节点(Collector节点)实时读取分布式存储节点上的第一配置信息,并根据读取的第一配置信息生成不同的日志采集任务,进行各个日志文件的采集,将采集的日志数据发往分布式消息队列,从而可以并发地实时采集多个日志文件的数据,提高了日志数据采集的效率。
其中,多个日志采集任务可以对应发起多个线程,每个日志采集任务可以对应发起一个线程,每个日志采集任务所采集的日志数据对应存储至所述分布式消息队列的一个主题(topic)中。通过这种多线程的采集任务,进一步实现了日志数据并发采集的效果,提高了日志数据采集的吞吐量。
在本实施例的一个可选实现方式中,如图4所示,所述方法还包括:
步骤S401,利用所述第三并行任务从所述分布式消息队列中获取心跳数据;其中,所述心跳数据为所述第一并行任务和/或第二并行任务定时生成并发送至所述分布式消息队列的预设主题中的;
步骤S402,在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
在该实施方式中,执行第三并行任务的主控节点(Master节点)可以提供对执行第一并行任务的日志数据采集节点(Collector节点)和执行第二并行任务的日志数据聚合节点(Pub节点)的监控功能,第一并行任务和第二并行任务定时将日志数据采集节点(Collector节点)和日志数据聚合节点(Pub节点)的心跳信息发送至分布式消息队列的预设主题(topic),第三并行任务通过定期第一并行任务和第二并行任务定时发出的心跳信息,可以从中过滤出延迟节点和失联节点,及时发现异常任务并进行告警,异常的结果还可以实时地发送给平台管理员,以便及时进行人工干预。
在本实施例的一个可选实现方式中,如图4所示,所述方法还包括:
步骤S403,在获取到所述心跳数据后,利用所述第三并行任务检测所述心跳数据,以监控所述第一并行任务和/或第二并行任务的实时性。
在该实施方式中,第三并行任务可以根据第一并行任务和第二并行任务定时发送的心跳信息来监控第一并行任务和第二并行任务各自的任务进行状况,以便在第一并行任务和第二并行任务出现异常时采取必要的措施。
在本实施例的一个可选实现方式中,所述第一并行任务生成的所述心跳数据包括当前采集的日志数据的相关信息以及采集进度;所述第二并行任务生成的所述心跳数据包括当前从所述分布式消息队列获取并存储至所述存储区域的数据信息。
其中,当前采集的日志数据的相关信息可以包括第一并行任务正在读取的日志数据大小、文件名等信息,采集进度可以包括第一并行任务已经读取的文件字节大小等信息。存储至所述存储区域的数据信息包括实时写入指定的存储区域的日志数据的字节数和数据条数等信息。通过对第一并行任务和第二并行任务定时发送的心跳数据的检测分析,从中可以获知第一和第二并行任务各自的任务进度,从而能够监测其日志采集任务的实时性。例如,第一并行任务的心跳数据中当前采集的日志数据大小与采集进度中已经读取的字节大小相差较大,则可以认为第一并行任务的实时性不满足要求,需要做相应处理。
在本实施例的一个可选实现方式中,所述利用第三并行任务接收所述用户的配置信息,包括:
利用所述第三并行任务从Web页面接收所述用户的所述配置信息。
在该实施方式中,作为第三并行任务的主控节点(Master节点)可以为用户提供可视化的配置界面与实时的监控界面,可视化的配置界面利用Web的方式,采用面向用户的简单配置方式,用户只需要在界面选择要采集的日志文件所在的机器,便可生成对应的任务配置,从而使用户通过简单的Web界面配置即可快速生成采集任务,一键启动任务,去除了现有的日志采集系统的繁琐配置过程,更加地简便。用户可以根据业务需求进行配置,不同用户可以进行不同的配置,同一用户在不同时期也可以根据业务变化进行不同的配置,日志采集系统根据用户的不同配置通过多任务并发访问分布式存储节点,实时采集用户所需要的日志数据,为用户提供业务数据的实时同步更新。本公开实施例中,用户通过可视化的配置界面进行的简单配置信息可以被主控节点解析为日志数据采集节点和日志数据聚合节点所需的配置信息,同步至多任务并发访问的分布式存储节点,供日志数据采集节点和日志数据聚合节点实时获取。因此,本实施例相对于现有技术实现了日志采集的可配置化,提高了用户体验。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图5示出根据本公开一实施方式的一种日志数据的实时采集装置的结构框图。如图5所示,所述日志数据的实时采集装置包括以下模块:
信息获取模块501,被配置为利用第一并行任务实时获取用户的第一配置信息;
日志采集模块502,被配置为根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列;
日志聚合模块503,被配置为利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域。
上文提及,现有的日志采集装置需要根据每台机器的采集任务不同配置不同的配置文件,无法做到日志采集任务的动态配置。
考虑到上述缺陷,在该实施方式中,提出一种日志数据的实时采集装置,该装置利用第一并行任务实时获取用户的第一配置信息,以根据第一配置信息实时采集服务器上的日志数据并发送至分布式消息队列,并利用第二并行任务实时获取所述用户的第二配置信息以根据所述第二配置信息从所述分布式消息队列中读取所述日志数据存储至指定存储区域,从而基于用户对日志采集任务的动态配置和对用户配置信息的实时并发访问,实现了日志数据的实时和动态地采集。
其中,信息获取模块501和日志采集模块502中,第一并行任务可以是部署在每一台服务器机器上的日志数据采集节点(Collector节点),负责采集每一台服务器机器上产生的日志数据,并将日志数据发送至分布式消息队列。日志数据采集节点(Collector节点)可以是根据实时获取的第一配置信息对目标服务器机器上的日志数据进行采集的计算机程序或进程。第一配置信息是用户根据实际所需要的日志数据而配置的,例如日志数据采集源(如服务器目录等)。
其中,所述分布式消息队列是分布式系统中重要的组件,可以解决应用耦合、异步消息、流量削锋等问题,是大型分布式系统不可缺少的中间件。本实施方式中,分布式消息队列可以采用诸如kafka的分布式消息队列实现。Apache Kafka是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。
其中,日志聚合模块503中,第二并行任务可以是部署在单独的多台机器上的日志数据聚合节点(Pub节点),负责读取所述分布式消息队列中的日志数据,并存储至指定的存储区域。日志数据聚合节点(Pub节点)根据实时获取的用户配置信息来进行日志数据的落地,将分布式消息队列中已采集的日志数据聚合至指定的存储区域。用户还可以根据实际情况配置第二配置信息,可以用于指示将分布式消息队列中的哪些数据分别聚合至哪个存储区域等。
其中,所述指定的存储区域可以向离线任务的用户提供日志数据的访问。为了提供高效、快速的日志数据访问服务,所述指定的存储区域可以采用Hadoop分布式文件系统(HDFS)实现日志数据的聚合存储。HDFS分布式文件系统,提供对超大规模数据集的可靠存储功能,并对用户提供数据的高吞吐量访问。
在一实施例中,服务器集群中每台日志服务器上都运行有第一并行任务,不同服务器上的不同第一并行任务并行执行,而第二并行任务可以允许在单独的一些服务器或者服务器集群中部分日志服务器上,第一并行任务和第二并行任务并行执行,它们可以在相同的执行实体上执行,也可以在不同的执行实体上执行。
在本实施例的一个可选实现方式中,如图6所示,所述装置还包括:
配置接收模块601,被配置为利用第三并行任务接收所述用户的配置信息;
配置同步模块602,被配置为根据所述配置信息生成所述第一配置信息和第二配置信息,并将所述第一配置信息和第二配置信息存储在能够多任务并发访问的分布式存储节点上。
在该实施方式中,通过将用户对日志采集的配置信息存储至能够多任务并发访问的分布式存储节点,使得分别执行日志采集和日志聚合的第一并行任务和第二并行任务实现了实时并发访问,提高了日志数据采集的实时性。
其中,第三并行任务可以是部署于服务器的主控节点(Master节点),其负责接收用户的配置信息,并将配置信息解析为日志数据采集节点(Collector节点)和日志数据聚合节点(Pub节点)分别所读取的第一配置信息和第二配置信息。为了提供各日志数据采集节点(Collector节点)和日志数据聚合节点(Pub节点)的实时并发访问,主控节点(Master节点)实时将解析后的第一配置信息和第二配置信息同步存储至能够进行多任务并发访问的分布式存储节点上。
其中,分布式存储节点例如可以采用ZooKeeper分布式应用程序协调服务框架中的存储节点来实现。Zookeeper作为一个分布式的服务框架,可以用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,可以用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。
在一实施例中,第三并行任务可以在服务器集群中的管理服务器上运行,第一并行任务、第二并行任务和第三并行任务分别并行执行,它们可以在相同的执行实体上执行,也可以在不同的执行实体上执行。
在本实施例的一个可选实现方式中,如图7所示,所述日志采集模块502包括以下子模块:
任务生成子模块701,被配置为根据所述第一配置信息生成多个日志采集任务;
任务执行子模块702,被配置为并行执行所述多个日志采集任务,以将采集的日志数据发送给所述分布式消息队列;其中,一个所述日志采集任务采集到的日志数据对应存储到所述分布式消息队列的一个主题中。
在该实施方式中,作为第一并行任务的日志数据采集节点(Collector节点)实时读取分布式存储节点上的第一配置信息,并根据读取的第一配置信息生成不同的日志采集任务,进行各个日志文件的采集,将采集的日志数据发往分布式消息队列,从而可以并发地实时采集多个日志文件的数据,提高了日志数据采集的效率。
其中,多个日志采集任务可以对应发起多个线程,每个日志采集任务可以对应发起一个线程,每个日志采集任务所采集的日志数据对应存储至所述分布式消息队列的一个主题(topic)中。通过这种多线程的采集任务,进一步实现了日志数据并发采集的效果,提高了日志数据采集的吞吐量。
在本实施例的一个可选实现方式中,如图8所示,所述装置还包括:
心跳信息获取模块801,被配置为利用所述第三并行任务从所述分布式消息队列中获取心跳数据;其中,所述心跳数据为所述第一并行任务和/或第二并行任务定时生成并发送至所述分布式消息队列的预设主题中的;
异常告警模块802,被配置为在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的告警。
在该实施方式中,执行第三并行任务的主控节点(Master节点)可以提供对执行第一并行任务的日志数据采集节点(Collector节点)和执行第二并行任务的日志数据聚合节点(Pub节点)的监控功能,第一并行任务和第二并行任务定时将日志数据采集节点(Collector节点)和日志数据聚合节点(Pub节点)的心跳信息发送至分布式消息队列的预设主题(topic),第三并行任务通过定期第一并行任务和第二并行任务定时发出的心跳信息,可以从中过滤出延迟节点和失联节点,及时发现异常任务并进行告警,异常的结果还可以实时地发送给平台管理员,以便及时进行人工干预。
在本实施例的一个可选实现方式中,如图8所示,所述装置还包括:
实时监控模块803,被配置为在获取到所述心跳数据后,利用所述第三并行任务检测所述心跳数据,以监控所述第一并行任务和/或第二并行任务的实时性。
在该实施方式中,第三并行任务可以根据第一并行任务和第二并行任务定时发送的心跳信息来监控第一并行任务和第二并行任务各自的任务进行状况,以便在第一并行任务和第二并行任务出现异常时采取必要的措施。
在本实施例的一个可选实现方式中,所述第一并行任务生成的所述心跳数据包括当前采集的日志数据的相关信息以及采集进度;所述第二并行任务生成的所述心跳数据包括当前从所述分布式消息队列获取并存储至所述存储区域的数据信息。
其中,当前采集的日志数据的相关信息可以包括第一并行任务正在读取的日志数据大小、文件名等信息,采集进度可以包括第一并行任务已经读取的文件字节大小等信息。存储至所述存储区域的数据信息包括实时写入指定的存储区域的日志数据的字节数和数据条数等信息。通过对第一并行任务和第二并行任务定时发送的心跳数据的检测分析,从中可以获知第一和第二并行任务各自的任务进度,从而能够监测其日志采集任务的实时性。例如,第一并行任务的心跳数据中当前采集的日志数据大小与采集进度中已经读取的字节大小相差较大,则可以认为第一并行任务的实时性不满足要求,需要做相应处理。
在本实施例的一个可选实现方式中,所述配置接收模块601包括:
Web配置子模块,被配置为利用所述第三并行任务从Web页面接收所述用户的所述配置信息。
在该实施方式中,作为第三并行任务的主控节点(Master节点)可以为用户提供可视化的配置界面与实时的监控界面,可视化的配置界面利用Web的方式,采用面向用户的简单配置方式,用户只需要在界面选择要采集的日志文件所在的机器,便可生成对应的任务配置,从而使用户通过简单的Web界面配置即可快速生成采集任务,一键启动任务,去除了现有的日志采集系统的繁琐配置过程,更加地简便。用户可以根据业务需求进行配置,不同用户可以进行不同的配置,同一用户在不同时期也可以根据业务变化进行不同的配置,日志采集系统根据用户的不同配置通过多任务并发访问分布式存储节点,实时采集用户所需要的日志数据,为用户提供业务数据的实时同步更新。本公开实施例中,用户通过可视化的配置界面进行的简单配置信息可以被主控节点解析为日志数据采集节点和日志数据聚合节点所需的配置信息,同步至多任务并发访问的分布式存储节点,供日志数据采集节点和日志数据聚合节点实时获取。因此,本实施例相对于现有技术实现了日志采集的可配置化,提高了用户体验。
本公开还公开了一种电子设备,图9示出根据本公开一实施方式的电子设备的结构框图,如图9所示,所述电子设备900包括存储器901和处理器902;其中,所述存储器901用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器902执行以实现上述任一方法步骤。
图10适于用来实现根据本公开实施方式的日志数据的实时采集方法的计算机系统的结构示意图。
如图10所示,计算机系统1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行上述实施方式中的各种处理。在RAM1003中,还存储有系统1000操作所需的各种程序和数据。CPU1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行本公开实施例所述方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (16)
1.一种日志数据的实时采集方法,其特征在于,包括:
利用第一并行任务实时获取用户的第一配置信息,所述第一配置信息是由用户的配置信息生成;
根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列;
利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域,所述第二配置信息是由用户的配置信息生成。
2.根据权利要求1所述的方法,其特征在于,还包括:
利用第三并行任务接收所述用户的配置信息;
根据所述配置信息生成所述第一配置信息和第二配置信息,并将所述第一配置信息和第二配置信息存储在能够多任务并发访问的分布式存储节点上。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列,包括:
根据所述第一配置信息生成多个日志采集任务;
并行执行所述多个日志采集任务,以将采集的日志数据发送给所述分布式消息队列;其中,一个所述日志采集任务采集到的日志数据对应存储到所述分布式消息队列的一个主题中。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
利用所述第三并行任务从所述分布式消息队列中获取心跳数据;其中,所述心跳数据为所述第一并行任务和/或第二并行任务定时生成并发送至所述分布式消息队列的预设主题中的;
在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在获取到所述心跳数据后,利用所述第三并行任务检测所述心跳数据,以监控所述第一并行任务和/或第二并行任务的实时性。
6.根据权利要求4或5所述的方法,其特征在于,所述第一并行任务生成的所述心跳数据包括当前采集的日志数据的相关信息以及采集进度;所述第二并行任务生成的所述心跳数据包括当前从所述分布式消息队列获取并存储至所述存储区域的数据信息。
7.根据权利要求2所述的方法,其特征在于,所述利用第三并行任务接收所述用户的配置信息,包括:
利用所述第三并行任务从Web页面接收所述用户的所述配置信息。
8.一种日志数据的实时采集装置,其特征在于,包括:
信息获取模块,被配置为利用第一并行任务实时获取用户的第一配置信息,所述第一配置信息是由用户的配置信息生成;
日志采集模块,被配置为根据所述第一配置信息实时采集服务器上的日志数据,并将所述日志数据发送至分布式消息队列;
日志聚合模块,被配置为利用第二并行任务实时获取所述用户的第二配置信息,根据所述第二配置信息从所述分布式消息队列中读取所述日志数据,并存储至所述第二配置信息中指定的存储区域,所述第二配置信息是由用户的配置信息生成。
9.根据权利要求8所述的装置,其特征在于,还包括:
配置接收模块,被配置为利用第三并行任务接收所述用户的配置信息;
配置同步模块,被配置为根据所述配置信息生成所述第一配置信息和第二配置信息,并将所述第一配置信息和第二配置信息存储在能够多任务并发访问的分布式存储节点上。
10.根据权利要求8所述的装置,其特征在于,所述日志采集模块包括:
任务生成子模块,被配置为根据所述第一配置信息生成多个日志采集任务;
任务执行子模块,被配置为并行执行所述多个日志采集任务,以将采集的日志数据发送给所述分布式消息队列;其中,一个所述日志采集任务采集到的日志数据对应存储到所述分布式消息队列的一个主题中。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
心跳信息获取模块,被配置为利用所述第三并行任务从所述分布式消息队列中获取心跳数据;其中,所述心跳数据为所述第一并行任务和/或第二并行任务定时生成并发送至所述分布式消息队列的预设主题中的;
异常告警模块,被配置为在预定时间周期内未获取到所述心跳数据时,产生所述第一并行任务和/或第二并行任务异常的警告。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
实时监控模块,被配置为在获取到所述心跳数据后,利用所述第三并行任务检测所述心跳数据,以监控所述第一并行任务和/或第二并行任务的实时性。
13.根据权利要求11或12所述的装置,其特征在于,所述第一并行任务生成的所述心跳数据包括当前采集的日志数据的相关信息以及采集进度;所述第二并行任务生成的所述心跳数据包括当前从所述分布式消息队列获取并存储至所述存储区域的数据信息。
14.根据权利要求9所述的装置,其特征在于,所述配置接收模块包括:
Web配置子模块,被配置为利用所述第三并行任务从Web页面接收所述用户的所述配置信息。
15.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1-7任一项所述的方法步骤。
16.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1-7任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811064735.5A CN109327351B (zh) | 2018-09-12 | 2018-09-12 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811064735.5A CN109327351B (zh) | 2018-09-12 | 2018-09-12 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109327351A CN109327351A (zh) | 2019-02-12 |
CN109327351B true CN109327351B (zh) | 2020-11-20 |
Family
ID=65265659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811064735.5A Active CN109327351B (zh) | 2018-09-12 | 2018-09-12 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109327351B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111723064A (zh) * | 2019-03-22 | 2020-09-29 | 顺丰科技有限公司 | 日志采集方法、装置、服务器及存储介质 |
CN110262807B (zh) * | 2019-06-20 | 2023-12-26 | 北京百度网讯科技有限公司 | 集群创建进度日志采集系统、方法和装置 |
CN110417898B (zh) * | 2019-07-31 | 2022-02-22 | 拉扎斯网络科技(上海)有限公司 | 一种数据传输方法、装置、客户端、电子设备及存储介质 |
CN110719233B (zh) * | 2019-10-11 | 2023-10-31 | 北京百度网讯科技有限公司 | 用于发送信息的方法及装置 |
CN110968478B (zh) * | 2019-11-21 | 2023-04-25 | 掌阅科技股份有限公司 | 日志采集方法、服务器及计算机存储介质 |
CN113079055B (zh) * | 2019-12-17 | 2023-05-12 | 北京京东乾石科技有限公司 | 一种agv运行数据的动态采集方法和装置 |
CN111897790A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 风控日志采集方法、装置、电子设备及存储介质 |
CN112838950B (zh) * | 2020-12-30 | 2022-05-06 | 浙江三维利普维网络有限公司 | 一种网络故障分析方法、装置、存储介质及电子装置 |
CN113556402B (zh) * | 2021-07-29 | 2024-03-19 | 北京百度网讯科技有限公司 | 数据下载调度方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912587A (zh) * | 2016-03-31 | 2016-08-31 | 乐视控股(北京)有限公司 | 一种数据采集方法和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677836A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 一种同时支持离线数据和实时在线数据的大数据处理解决系统 |
CN106130960B (zh) * | 2016-06-12 | 2019-08-09 | 微梦创科网络科技(中国)有限公司 | 盗号行为的判断系统、负载调度方法和装置 |
CN106227877A (zh) * | 2016-08-02 | 2016-12-14 | 北京集奥聚合科技有限公司 | 一种基于hadoop 的分布式日志采集系统及方法 |
CN106776715A (zh) * | 2016-11-16 | 2017-05-31 | 北京集奥聚合科技有限公司 | 一种收集日志的方法及系统 |
CN107908690B (zh) * | 2017-11-01 | 2021-07-20 | 南京欣网互联网络科技有限公司 | 一种基于大数据运营分析的数据处理方法 |
CN108133017A (zh) * | 2017-12-21 | 2018-06-08 | 广州市申迪计算机系统有限公司 | 一种多数据源采集配置方法及装置 |
-
2018
- 2018-09-12 CN CN201811064735.5A patent/CN109327351B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912587A (zh) * | 2016-03-31 | 2016-08-31 | 乐视控股(北京)有限公司 | 一种数据采集方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109327351A (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327351B (zh) | 日志数据的实时采集方法、装置、电子设备及存储介质 | |
CN106487596B (zh) | 分布式服务跟踪实现方法 | |
US11755452B2 (en) | Log data collection method based on log data generated by container in application container environment, log data collection device, storage medium, and log data collection system | |
CN111049705B (zh) | 一种监控分布式存储系统的方法及装置 | |
Sukhija et al. | Towards a framework for monitoring and analyzing high performance computing environments using kubernetes and prometheus | |
CN105573824B (zh) | 分布式计算系统的监控方法及系统 | |
CN112084098A (zh) | 资源监控系统及工作方法 | |
CN109245908B (zh) | 一种主从集群切换的方法和装置 | |
CN107766509B (zh) | 一种网页静态备份的方法和装置 | |
EP3798848B1 (en) | Analyzing large-scale data processing jobs | |
CN108540341B (zh) | 资源监控方法及装置 | |
CN111124830B (zh) | 一种微服务的监控方法及装置 | |
US20140280912A1 (en) | System and method for determination and visualization of cloud processes and network relationships | |
CN112860393A (zh) | 一种分布式任务调度方法及系统 | |
CN110750592A (zh) | 数据同步的方法、装置和终端设备 | |
US10613922B2 (en) | Synchronously generating diagnostic data | |
US9218205B2 (en) | Resource management in ephemeral environments | |
CN111240936A (zh) | 一种数据完整性校验的方法及设备 | |
CN115809119A (zh) | 容器编排引擎的监控方法、系统及装置 | |
CN111049846A (zh) | 数据处理方法和装置、电子设备及计算机可读存储介质 | |
Thaler et al. | Hybrid approach to hpc cluster telemetry and hardware log analytics | |
JP2011095886A (ja) | アプリケーションサーバ、アプリケーション障害再現方法、およびアプリケーション障害再現プログラム | |
CN109766238B (zh) | 基于session数的运维平台性能监控方法、装置及相关设备 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN113407629A (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 |