CN112073219B - 日志收集系统及方法、设备、存储介质 - Google Patents
日志收集系统及方法、设备、存储介质 Download PDFInfo
- Publication number
- CN112073219B CN112073219B CN202010814835.6A CN202010814835A CN112073219B CN 112073219 B CN112073219 B CN 112073219B CN 202010814835 A CN202010814835 A CN 202010814835A CN 112073219 B CN112073219 B CN 112073219B
- Authority
- CN
- China
- Prior art keywords
- log
- uploading
- failure
- scanning
- 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.)
- 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
-
- 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/06—Generation of reports
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种日志收集系统及方法、设备、存储介质,系统包括日志扫描器、数据持久器和日志上传器;日志扫描器扫描产生的日志,将扫描结果为扫描成功的日志的信息传输给日志上传器;在扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,将第一失败记录写入数据持久器;按照数据持久器中记录的第一失败记录执行至少一次扫描日志的过程;日志上传器获取扫描成功的日志的信息,根据扫描成功的日志的信息上传日志,将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录写入数据持久器;按照数据持久器中记录的第二失败记录执行至少一次上传日志的过程。本申请用以解决日志同步可靠性差,人工维护成本高的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种日志收集系统及方法、设备、存储介质。
背景技术
目前,在日志收集过程中,主要是利用系统工具或编写的脚本,将分散存储在各个节点上的日志同步到中心节点上。现有的同步方式可靠性较差,在日志收集失败的情况下无法及时发现,需要人工介入后才能发现,再手动将上传失败的日志上传到中心节点。
发明内容
本申请提供了一种日志收集系统及方法、设备、存储介质,用以解决日志同步可靠性差,人工维护成本高的问题。
第一方面,本申请实施例提供了一种日志收集系统,包括日志扫描器、数据持久器和日志上传器;
所述日志扫描器,用于扫描产生的日志,获得扫描结果,将所述扫描结果为扫描成功的日志的信息传输给所述日志上传器;在所述扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,将所述第一失败记录写入所述数据持久器;以及,用于按照所述数据持久器中记录的所述第一失败记录执行至少一次扫描日志的过程;
所述日志上传器,用于获取所述日志扫描器扫描成功的日志的信息,根据所述扫描成功的日志的信息上传日志,获得上传结果;将所述上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录写入所述数据持久器;以及,用于按照所述数据持久器中记录的所述第二失败记录执行至少一次上传日志的过程。
可选地,所述系统还包括任务调度器;
所述任务调度器,用于调度所述日志扫描器启动扫描指定周期内产生的日志的过程。
可选地,所述系统还包括日志修复器;
所述日志修复器,用于获取所述数据持久器中记录的所述第一失败记录和所述第二失败记录,根据所述第一失败记录和所述第二失败记录中记录的日志的信息进行日志修复。
可选地,所述日志扫描器,还用于:获取所述数据持久器中记录的所述第一失败记录,其中,所述第一失败记录中包括所述指定周期;重新扫描至少一次所述第一失败记录中的所述指定周期内产生的日志,获得重新扫描结果,将重新扫描结果为成功的日志的信息传输给所述日志上传器,并删除所述数据持久器中的所述第一失败记录;
所述日志上传器,还用于:获取所述重新扫描成功的日志的信息,根据所述重新扫描成功的日志的信息上传日志。
可选地,所述日志扫描器,还用于:在所述重新扫描的次数达到第一设定次数时,若每次重新扫描的扫描结果均为扫描失败,在所述数据持久器中,将所述指定周期对应的所述第一失败记录标记为设定标记。
可选地,所述扫描成功的日志的信息中携带所述指定周期;
所述日志上传器,还用于:
根据所述扫描成功的日志的信息上传日志,获得上传结果后,在所述上传结果为上传失败的日志的信息中携带所述指定周期,将所述上传结果为上传失败的日志信息和上传失败指示,作为第二失败记录写入所述数据持久器;
获取所述数据持久器中记录的所述第二失败记录,重新上传至少一次所述第二失败记录中所述指定周期内上传失败的日志,获得重新上传结果,若所述重新上传结果为重新上传成功,则将重新上传成功的日志的信息从所述数据持久器中的所述第二失败记录中删除;
在重新上传的次数达到第二设定次数时,若所述指定周期中不存在上传失败的日志,将所述第二失败记录从所述数据持久器中删除,若所述指定周期中存在上传失败的日志,在所述数据持久器中,将所述指定周期对应的所述第二失败记录标记为设定标记。
可选地,所述任务调度器,还用于:将所述数据持久器中标记为设定标记的所述第一失败记录或所述第二失败记录提交至处理平台。
可选地,所述系统还包括流量限速器;
所述流量限速器,用于:在所述日志上传器上传日志的过程中,控制上传日志的速度不超过上限值。
可选地,所述日志扫描器,还用于:
扫描所述指定周期内产生的日志;
若扫描到对所述日志的文件进行报文摘要算法计算所得的第一结果,则确定所述日志扫描成功;在扫描成功的日志的信息中携带所述指定周期后,将所述扫描成功的日志的信息传输给所述日志上传器;若未扫描到所述第一结果,则确定所述日志扫描失败;将所述指定周期和扫描失败的指示,作为第一失败记录写入所述数据持久器。
可选地,所述日志的信息中还包括所述第一结果和所述日志的文件标识;
所述日志上传器,还用于:
从所述日志的信息中获取所述第一结果和所述文件标识,当确定中心服务器的已有日志中不包括具有所述文件标识的目标日志,或当确定第二结果与所述第一结果不相同且所述第二结果为对所述目标日志进行报文摘要算法所得,则确定所述日志上传失败;在上传失败的日志的信息中携带所述指定周期;将所述上传失败的日志的信息和上传失败的指示,作为第二失败记录写入所述数据持久器。
第二方面,本申请实施例提供了一种日志收集方法,包括:
扫描产生的日志,获得扫描结果;
在所述扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,并按照所述第一失败记录执行至少一次扫描日志的过程;
在所述扫描结果为扫描成功时,获得扫描成功的日志的信息,根据所述扫描成功的日志的信息上传日志,获得上传结果;
将所述上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录,并按照所述第二失败记录执行至少一次上传日志的过程。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第二方面所述的日志收集方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所述的日志收集方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该系统,日志扫描器通过扫描产生的日志,在扫描失败时,生成第一失败记录,并写入到数据持久器中,在后续过程中按照数据持久器中记录的第一失败记录,可以重新执行至少一次扫描日志的过程,通过该重新扫描的过程,降低了因扫描失败导致收集失败的日志的数量。
并且,日志上传器获取日志扫描器扫描成功的日志的信息,按照该扫描成功的日志的信息进行上传,获得上传结果,将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录写入数据持久器,在后续过程中按照数据持久器中记录的第二失败记录,重新执行至少一次上传日志的过程,通过该重新上传的过程,降低了因上传失败导致收集失败的日志的数量。采用该系统能够使得收集失败的日志的数量降低,进而能够提高日志同步的质量,以及降低人工维护成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中日志集中管理的系统架构示意图;
图2为本申请实施例中日志收集系统架构示意图一;
图3为本申请实施例中日志收集系统架构示意图二;
图4为本申请实施例中日志收集系统架构示意图三;
图5为本申请实施例中日志收集系统架构示意图四;
图6为本申请实施例中日志收集的方法流程示意图;
图7为本申请实施例中日志收集的具体过程示意图;
图8为本申请实施例中日志收集装置结构示意图;
图9为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
日志是程序产生的、遵循一定格式(通常包含时间戳)的文本数据。服务器集群中通常包括数十上百台服务器,每台服务器在运行过程中都会产生大量的日志。
如果这些日志分散存储在每台服务器上,当系统发生故障时,工程师需要登录到各台服务器上,使用脚本工具去服务器本地存储的日志中查找故障原因。这就导致日志查询过程繁琐且效率低下。
为了解决该问题,出现了日志的集中化管理,也就是,将服务器集群中每台服务器中的日志收集汇总到一台设备上,在该设备上对收集的日志进行集中管理。
本申请实施例中提供了一种日志收集系统,该系统主要应用于服务器集群中日志的管理。其中,如图1所示,服务器集群中各服务器的日志需要同步到中心服务器,该中心服务器对收集到的日志进行集中管理。该日志收集系统主要应用于服务器集群中的任意一个服务器。
如图2所示,本申请实施例中提供的日志收集系统主要包括日志扫描器201、数据持久器202和日志上传器203。
日志扫描器201,用于扫描产生的日志,获得扫描结果,将扫描结果为扫描成功的日志的信息传输给日志上传器203;在扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,将第一失败记录写入数据持久器202;以及,用于按照数据持久器202中记录的第一失败记录执行至少一次扫描日志的过程。
日志上传器203,用于获取日志扫描器201扫描成功的日志的信息,根据该扫描成功的日志的信息上传日志,获得上传结果;将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录写入数据持久器202;以及,用于按照数据持久器202中记录的第二失败记录执行至少一次上传日志的过程。
其中,在扫描结果中包含至少一条扫描成功的日志的信息时,即为扫描成功;在扫描结果中未包含任何日志的信息时,即为扫描失败。
示例性实施例中,数据持久器记录的信息可以分为两级存储,即内存和磁盘。在初始化场景中,内存为空,则读取磁盘中存储的记录的信息并加载到内存中。在读场景中,首先读取内存中存储的记录的信息,如果内存为空,则读取磁盘中存储的记录的信息。在写场景中,分别在内存和磁盘中写入记录的信息。其中,初始化场景可以是开机时的场景,读场景可以是读取记录并重新上传的场景,写场景可以是有新的失败记录或成功记录需要写入的场景。
该系统中,日志扫描器201通过扫描产生的日志,在扫描失败时,生成第一失败记录,并写入到数据持久器202中,在后续过程中按照数据持久器202中记录的第一失败记录,可以重新执行至少一次扫描日志的过程,通过该重新扫描的过程,降低了因扫描失败导致收集失败的日志的数量。
并且,日志上传器203获取日志扫描器201扫描成功的日志的信息,按照该扫描成功的日志的信息进行上传,获得上传结果,将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录写入数据持久器202,在后续过程中按照数据持久器202中记录的第二失败记录,重新执行至少一次上传日志的过程,通过该重新上传的过程,降低了因上传失败导致收集失败的日志的数量。采用该系统能够使得收集失败的日志的数量降低,进而能够提高日志同步的质量,以及降低人工维护成本。
其中,日志扫描器201在扫描完成后,即触发日志上传器203启动上传日志的过程。
一个具体实施例中,如图3所示,该系统中还包括任务调度器301,主要用于调度日志扫描器201启动扫描指定周期内产生的日志的过程。
该指定周期可以是以分钟、小时或天等为单位,具体取值可以根据需要进行设置。也就是说,任务调度器301按照指定周期触发日志扫描器201的扫描过程,例如每间隔1小时触发一次扫描过程。
例如,假设当前时间为13:00,在场景a中,任务调度器301配置为每间隔1小时,调度日志扫描器201执行前一小时日志的扫描任务,即调度对11:00-12:00产生的日志的扫描任务;在场景b中,任务调度器301配置为每间隔1小时,调度日志扫描器201执行当前小时的扫描任务,即调度对12:00-13:00产生的日志的扫描任务。
一个具体实施例中,日志扫描器201在写入数据持久器202的第一失败记录中包括指定周期。日志扫描器201获取数据持久器202中记录的第一失败记录,重新扫描至少一次第一失败记录中该指定周期内产生的日志,获得重新扫描结果,将重新扫描结果为成功的日志的信息传输给日志上传器203,并删除数据持久器202中的第一失败记录。日志上传器201获取重新扫描成功的日志的信息,根据该重新扫描成功的日志的信息上传日志。
该实施例中,通过在第一失败记录中记录指定周期和收集失败原因(即扫描失败),便于日志扫描器201在后续重新收集时采取与扫描失败相适应的处理方式,并锁定重新收集的范围为指定周期所对应的时间段,从而提高重新收集的效率。
一个具体实施例中,日志扫描器201在重新扫描的次数达到第一设定次数时,若每次重新扫描的扫描结果均为扫描失败,在数据持久器202中,将该重新扫描的指定周期对应的第一失败记录标记为设定标记。
任务调度器301还可以从数据持久器202中读取标记有设定标记的第一失败记录,提交到处理平台,由后台工作人员从处理平台中获取标记有设定标记的第一失败记录,进行干预。
一个具体实施例中,日志扫描器201扫描指定周期内产生的日志,若扫描到对该日志的文件进行报文摘要算法(md5)计算所得的第一结果,则确定该日志扫描成功;在扫描成功的日志的信息中携带指定周期后,将该扫描成功的日志的信息传输给日志上传器。日志扫描器201若未扫描到该第一结果,则确定该日志扫描失败;将该指定周期和扫描失败的指示,作为第一失败记录写入数据持久器202。
示例性实施例中,日志扫描器201在任务调度器301的调度下启动扫描任务。即,任务调度器301通过定时触发的方式向日志扫描器下发对指定周期的扫描任务,日志扫描器获得该扫描任务后,扫描该指定周期内产生的日志,扫描结果可以表示为:
{"fileName":"access.log.2020041012","path":"/data/logs/","size":"1024","md5":"","fileDate":"2020041012"}。
一个具体实施例中,日志扫描器201的一个扫描过程可以包括P次扫描操作,P为大于或等于1的整数。扫描的具体过程包括:执行P次扫描操作,在每次扫描操作中扫描指定周期内产生的日志的信息;若扫描到日志的信息,且该日志的信息中包括第一结果,将该日志的信息增加到扫描结果中;若未扫描到日志的信息,获得的扫描结果为扫描失败。该实施例中,通过在一个扫描过程中设置多次扫描操作,避免了将一次扫描操作的结果作为该扫描过程的最终结果,导致扫描结果不准确的问题,降低扫描失败率。
例如,日志扫描器201获得任务调度器301下发的扫描11:00-12:00的日志这一任务后,可以分为三种场景:
场景一,生成日志且已经计算得到md5值,则日志扫描器201将该日志的信息加入到扫描结果中;
场景二,日志未生成,日志扫描器201重复执行5次扫描操作,每两次之间休息1分钟,若在5次扫描操作执行期间日志生成且计算得到md5值,将该日志的信息加入到扫描结果中;
场景三,若场景二重复执行5次扫描操作,期间日志未生成,则扫描结果扫描失败。
一个具体实施例中,日志扫描器201在扫描成功的日志的信息中携带本次扫描的指定周期。
日志上传器203在获取日志扫描器201传输的该扫描成功的日志的信息后,根据该扫描成功的日志的信息上传日志,获得上传结果后,在该上传结果为上传失败的日志的信息中携带该指定周期,将该上传结果为上传失败的日志信息和上传失败指示,作为第二失败记录写入数据持久器202。
日志上传器203获取数据持久器202中记录的第二失败记录,重新上传至少一次第二失败记录中指定周期内上传失败的日志,获得重新上传结果,若该重新上传结果为重新上传成功,则将该重新上传成功的日志的信息从数据持久器202中的第二失败记录中删除。
日志上传器203在重新上传的次数达到第二设定次数时,若该指定周期中不存在上传失败的日志,将该指定周期对应的第二失败记录从数据持久器202中删除;若该指定周期中存在上传失败的日志,在数据持久器202中,将该指定周期对应的第二失败记录标记为设定标记。
任务调度器301还可以从数据持久器202中读取标记有设定标记的第二失败记录,提交到处理平台,由后台工作人员从处理平台中获取标记有设定标记的第二失败记录,进行干预。
该实施例中,日志上传器203在上传失败的日志的信息中携带指定周期,并将该上传失败的日志的信息和上传失败的指示记录在第二失败记录中,从而使得日志上传器203在后续重新上传的过程中,能够根据第二失败记录中记录的上传失败的指示,采用与上传失败相适应的处理方式,并能够根据第二失败记录中的指定周期锁定重新上传范围为该指定周期所对应的时间段,从而提高重新上传的效率。
一个具体实施例中,扫描成功的日志的信息中除了携带指定周期之外,还包括第一结果和日志的文件标识,其中,第一结果为日志扫描器201对扫描到的日志的文件进行报文摘要算法计算所得。
日志上传器203从该日志的信息中获取该第一结果和该文件标识,当确定中心服务器的已有日志中不包括具有该文件标识的目标日志,或当确定第二结果与第一结果不相同且第二结果为对该目标日志进行报文摘要算法所得,则确定该日志上传失败;在上传失败的日志的信息中携带该指定周期;将该上传失败的日志的信息和上传失败的指示,作为第二失败记录写入数据持久器202。该实施例中,通过报文摘要算法验证需上传日志与已上传日志的一致性,能够避免不必要的上传操作,能够保证上传操作的有效性,提高上传效率。
示例性实施例中,日志上传器203这一软件或硬件模块,在上传日志之前,验证该日志是否已经被上传至中心服务器。在已上传的情况下,通过验证已上传的日志的第二结果与待上传的日志的第一结果是否相同,判定该日志是否发生更改,若相同,则未更改,不需要再次上传,直接记录上传成功即可,若不相同,则发生更改,需要上传。在未上传的情况下,直接上传该日志。
例如,日志上传器203上传11:00-12:00产生的日志,第一种场景,在上传日志之前,如果验证该日志曾被上传到中心服务器,且已上传的日志的第二结果与等待上传的日志的第一结果相同,则直接确定该日志成功上传;或者,在上传日志之前,验证该日志未曾被上传到中心服务器,则直接上传该日志,在上传后,验证中心服务器的该日志的第二结果与上传之前的第一结果相同,则确定该日志上传成功。第二种场景,除第一种场景之外的情况,确定上传失败。
一个具体实施例中,如图4所示,该系统还包括日志修复器401,该日志修复器401主要用于获取数据持久器202中记录的第一失败记录和第二失败记录,根据第一失败记录和第二失败记录中记录的日志的信息进行日志修复,即重新调度该日志的扫描和上传。该实施例中,通过日志修复器401修复日志,能够提高日志扫描器201根据第一失败记录重新扫描的成功率,以及提高日志上传器203根据第二失败记录重新上传的成功率。
一个具体实施例中,如图5所示,该系统还包括流量限速器501,该流量限速器501用于在日志上传器203上传日志的过程中,控制上传日志的速度不超过上限值。该实施例中,日志上传器203不管是首次上传日志,还是重新上传日志,通过流量限速器501控制上传速度,能够避免上传日志时产生的大流量造成堵塞磁盘和网卡的不良后果。
例如,假设限制磁盘读取最大速度为100MB/s,网卡读取最大速度为2000Mb/s,当前业务已经占用磁盘读60MB/s,网卡占用1500Mb/s,则流量限速器501需要限制日志上传过程中磁盘读不能大于40MB/s,网卡占用不得大于500Mb/s,则流量限速器501限制日志上传限速为min(40,500/8),其中,500/8是对网卡读取速度进行单位换算。
需要说明的是,该系统中的日志扫描器201、数据持久器202、日志上传器203、任务调度器301、日志修复器401和流量限速器501,可以是软件实现或硬件实现的功能模块。
基于同一构思,本申请实施例还提供了一种日志收集方法,该日志收集方法主要应用于服务器集群中的任意一个服务器。其中,收集日志的过程包括扫描过程和上报过程。收集失败可能发生在扫描过程,也可能发生在上报过程,也可能同时发生在扫描过程和上报过程。扫描过程完成之后进入上报过程。
如图6所示,该日志收集方法主要包括:
步骤601,扫描产生的日志,获得扫描结果。
一个具体实施例中,扫描指定周期内产生的日志,获得扫描结果。
一个具体实施例中,扫描指定周期内产生的日志,若扫描到对该日志的文件进行报文摘要算法计算所得的第一结果,则对该日志扫描成功,若未扫描到该第一结果,则对该日志扫描失败。
步骤602,在扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,并按照该第一失败记录执行至少一次扫描日志的过程。
一个具体实施例中,在第一失败记录中包括指定周期。获取第一失败记录,重新扫描至少一次第一失败记录中的该指定周期内产生的日志,获得重新扫描结果。对于重新扫描成功的日志的信息,根据该重新扫描成功的日志的信息上传日志。
一个具体实施例中,在重新扫描的次数达到第一设定次数时,若每次重新扫描的扫描结果均为扫描失败,则将该第一失败记录标记为设定标记,不再执行重新扫描的过程。
步骤603,在扫描结果为扫描成功时,获得扫描成功的日志的信息,根据该扫描成功的日志的信息上传日志,获得上传结果。
一个具体实施例中,在上传日志的过程中,控制上传日志的速度不超过上限值。
一个具体实施例中,在扫描成功的日志的信息中除了携带指定周期外,还包括第一结果和日志的文件标识,该第一结果为对日志的文件进行报文摘要算法计算所得。在上传过程中,从扫描成功的日志的信息中获取第一结果和该日志的文件标识,在确定中心服务器的已有日志中不包括具有该文件标识的目标日志,或对该目标日志进行报文摘要算法所得的第二结果与第一结果不相同,则确定该日志上传失败,在上传失败的日志的信息中携带指定周期。
步骤604,将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录,并按照该第二失败记录执行至少一次上传日志的过程。
一个具体实施例中,扫描成功的日志的信息中携带指定周期。根据扫描成功的日志的信息上传日志,获得上传结果后,在该上传结果为上传失败的日志的信息中携带指定周期;将该上传结果为上传失败的日志的信息和上传失败指示,作为第二失败记录。获取该第二失败记录,重新上传至少一次第二失败记录中该指定周期内上传失败的日志,获得重新上传结果;若重新上传结果为重新上传成功,则将重新上传成功的日志的信息从第二失败记录中删除。
在重新上传的次数达到第二设定次数时,若该指定周期中不存在上传失败的日志,将第二失败记录删除;若该指定周期中仍存在上传失败的日志,将该指定周期对应的第二失败记录标记为设定标记。
需要说明的是,重新扫描或重新上传的过程,可以重复执行多次,并且可以是在首次扫描(或上传)之后即启动重新扫描(或上传)的过程,可以是相差若干个指定周期的日志扫描(或上传)过程之后,再启动重新扫描(或上传)的过程。
一个具体实施例中,如图7所示,进行日志收集的具体过程包括:
步骤701,任务调度器触发日志扫描器;
步骤702,日志扫描器扫描指定周期生成的日志的信息,获得扫描结果;
步骤703,任务调度器判断扫描结果中是否包含日志的信息,若是,执行步骤704,否则,执行步骤707;
步骤704,任务调度器调度日志上传器进行日志上传;
步骤705,日志上传器按照流量限速器限制的上传速度上传日志;
步骤706,日志上传器判断日志是否上传成功,若是,执行步骤708,否则,执行步骤707;
步骤707,数据持久器保存失败记录;
步骤708,数据持久器保存历史记录;
步骤709,日志修复器从数据持久器中加载失败记录;
步骤710,日志修复器判断数据持久器中是否存在失败记录,若是,执行步骤711,否则,执行步骤717;
步骤711,日志修复器调用日志扫描器按照失败记录重新扫描日志,获得扫描结果;
步骤712,任务调度器判断扫描结果中是否包含日志,若是,执行步骤713,否则,执行步骤717;
步骤713,任务调取器调取日志上传器;
步骤714,日志上传器在流量限速器限制的上传速度下,上传重新扫描到的日志;
步骤715,日志上传器判断是否上传成功,若是,执行步骤716,否则,执行步骤717;
步骤716,数据持久器清除上传成功的日志的失败记录,并保存至上传成功的历史记录;
步骤717,退出流程。
需要说明的是,该具体实施例中,以任务调度器调度日志扫描器和日志上传器为例进行说明,这并不意味着日志扫描器和日志上传器必须由任务调度器进行调度,也可以是任务调度器仅触发日志扫描器的日志扫描过程,日志上传器根据日志扫描的结果触发日志上传过程,日志修复器根据扫描或上传的结果触发修复过程等。
本申请实施例提供的该方法,在收集日志的过程中,通过记录收集失败的日志的信息和收集失败原因,并在后续过程中重新收集该收集失败的日志,从而能够及时发现收集失败的日志并进行记录,并且通过重新收集该收集失败的日志这一修复机制,降低了最终收集失败的日志的数量,提高了日志同步的质量,降低了人工维护成本。
并且,本申请实施例提供的日志收集方法,占用系统资源小,不影响线上业务的正常运行,容错自修复能力强,通过自检中心服务器同步日志的正确性,提升了日志同步质量。
基于同一构思,本申请实施例中提供了一种日志收集装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图8所示,该装置主要包括:
扫描模块801,用于扫描产生的日志,获得扫描结果;
重复扫描模块802,用于在扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,并按照该第一失败记录执行至少一次扫描日志的过程;
上传模块803,用于在扫描结果为扫描成功时,获得扫描成功的日志的信息,根据该扫描成功的日志的信息上传日志,获得上传结果;
重复上传模块804,用于将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录,并按照该第二失败记录执行至少一次上传日志的过程。
基于同一构思,本申请实施例中还提供了一种电子设备,如图9所示,该电子设备主要包括:处理器901、通信接口902、存储器903和通信总线904,其中,处理器901、通信接口902和存储器903通过通信总线904完成相互间的通信。其中,存储器903中存储有可被至处理器901执行的程序,处理器901执行存储器903中存储的程序,实现如下步骤:扫描产生的日志,获得扫描结果;在扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,并按照该第一失败记录执行至少一次扫描日志的过程;在扫描结果为扫描成功时,获得扫描成功的日志的信息,根据该扫描成功的日志的信息上传日志,获得上传结果;将上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录,并按照该第二失败记录执行至少一次上传日志的过程。
上述电子设备中提到的通信总线904可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线904可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口902用于上述电子设备与其他设备之间的通信。
存储器903可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器901的存储装置。
上述的处理器901可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述日志收集方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种日志收集系统,其特征在于,应用于服务器集群中的任意一个服务器,包括日志扫描器、数据持久器和日志上传器;
所述日志扫描器,用于扫描产生的日志,获得扫描结果,将所述扫描结果为扫描成功的日志的信息传输给所述日志上传器;在所述扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,将所述第一失败记录写入所述数据持久器;以及,用于按照所述数据持久器中记录的所述第一失败记录执行至少一次扫描日志的过程,将重新扫描结果为成功的日志信息传输给所述日志上传器,并删除所述数据持久器中的所述第一失败记录;
所述日志上传器,用于获取所述日志扫描器扫描成功的日志的信息,根据所述扫描成功的日志的信息上传日志,获得上传结果;将所述上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录写入所述数据持久器;以及,用于按照所述数据持久器中记录的所述第二失败记录执行至少一次上传日志的过程,将重新上传成功的日志的信息从所述数据持久器中的所述第二失败记录中删除。
2.根据权利要求1所述的日志收集系统,其特征在于,所述系统还包括任务调度器;
所述任务调度器,用于调度所述日志扫描器启动扫描指定周期内产生的日志的过程。
3.根据权利要求1或2所述的日志收集系统,其特征在于,所述系统还包括日志修复器;
所述日志修复器,用于获取所述数据持久器中记录的所述第一失败记录和所述第二失败记录,根据所述第一失败记录和所述第二失败记录中记录的日志的信息进行日志修复。
4.根据权利要求2所述的日志收集系统,其特征在于,
所述日志扫描器,还用于:获取所述数据持久器中记录的所述第一失败记录;其中,所述第一失败记录中包括所述指定周期;重新扫描至少一次所述第一失败记录中的所述指定周期内产生的日志,获得重新扫描结果,将重新扫描结果为成功的日志的信息传输给所述日志上传器,并删除所述数据持久器中的所述第一失败记录;
所述日志上传器,还用于:获取所述重新扫描成功的日志的信息,根据所述重新扫描成功的日志的信息上传日志。
5.根据权利要求4所述的日志收集系统,其特征在于,所述日志扫描器,还用于:在所述重新扫描的次数达到第一设定次数时,若每次重新扫描的扫描结果均为扫描失败,在所述数据持久器中,将所述指定周期对应的所述第一失败记录标记为设定标记。
6.根据权利要求2所述的日志收集系统,其特征在于,所述扫描成功的日志的信息中携带所述指定周期;
所述日志上传器,还用于:
根据所述扫描成功的日志的信息上传日志,获得上传结果后,在所述上传结果为上传失败的日志的信息中携带所述指定周期,将所述上传结果为上传失败的日志信息和上传失败指示,作为第二失败记录写入所述数据持久器;
获取所述数据持久器中记录的所述第二失败记录,重新上传至少一次所述第二失败记录中所述指定周期内上传失败的日志,获得重新上传结果,若所述重新上传结果为重新上传成功,则将重新上传成功的日志的信息从所述数据持久器中的所述第二失败记录中删除;
在重新上传的次数达到第二设定次数时,若所述指定周期中不存在上传失败的日志,将所述第二失败记录从所述数据持久器中删除,若所述指定周期中存在上传失败的日志,在所述数据持久器中,将所述指定周期对应的所述第二失败记录标记为设定标记。
7.根据权利要求5或6所述的日志收集系统,其特征在于,所述任务调度器,还用于:将所述数据持久器中标记为设定标记的所述第一失败记录或所述第二失败记录提交至处理平台。
8.根据权利要求1-6任一项所述的日志收集系统,其特征在于,所述系统还包括流量限速器;
所述流量限速器,用于:在所述日志上传器上传日志的过程中,控制上传日志的速度不超过上限值。
9.根据权利要求2所述的日志收集系统,其特征在于,所述日志扫描器,还用于:
扫描所述指定周期内产生的日志;
若扫描到对所述日志的文件进行报文摘要算法计算所得的第一结果,则确定所述日志扫描成功;在扫描成功的日志的信息中携带所述指定周期后,将所述扫描成功的日志的信息传输给所述日志上传器;
若未扫描到所述第一结果,则确定所述日志扫描失败;将所述指定周期和扫描失败的指示,作为第一失败记录写入所述数据持久器。
10.根据权利要求9所述的日志收集系统,其特征在于,所述日志的信息中还包括所述第一结果和所述日志的文件标识;
所述日志上传器,还用于:
从所述日志的信息中获取所述第一结果和所述文件标识;
当确定中心服务器的已有日志中不包括具有所述文件标识的目标日志,或当确定第二结果与所述第一结果不相同且所述第二结果为对所述目标日志进行报文摘要算法所得,则确定所述日志上传失败;在上传失败的日志的信息中携带所述指定周期;将所述上传失败的日志的信息和上传失败的指示,作为第二失败记录写入所述数据持久器。
11.一种日志收集方法,其特征在于,应用于服务器集群中的任意一个服务器,包括:
扫描产生的日志,获得扫描结果;
在所述扫描结果为扫描失败时,生成包括扫描失败的指示的第一失败记录,并按照所述第一失败记录执行至少一次扫描日志的过程,将重新扫描结果为成功的日志信息传输给日志上传器,并删除数据持久器中的所述第一失败记录;
在所述扫描结果为扫描成功时,获得扫描成功的日志的信息,根据所述扫描成功的日志的信息上传日志,获得上传结果;
将所述上传结果为上传失败的日志的信息和上传失败的指示,作为第二失败记录,并按照所述第二失败记录执行至少一次上传日志的过程,将重新上传成功的日志的信息从所述数据持久器中的所述第二失败记录中删除。
12.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求11所述的日志收集方法。
13.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求11所述的日志收集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010814835.6A CN112073219B (zh) | 2020-08-13 | 2020-08-13 | 日志收集系统及方法、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010814835.6A CN112073219B (zh) | 2020-08-13 | 2020-08-13 | 日志收集系统及方法、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112073219A CN112073219A (zh) | 2020-12-11 |
CN112073219B true CN112073219B (zh) | 2022-09-09 |
Family
ID=73661373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010814835.6A Active CN112073219B (zh) | 2020-08-13 | 2020-08-13 | 日志收集系统及方法、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112073219B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596941B (zh) * | 2020-12-28 | 2023-10-03 | 凌云光技术股份有限公司 | 一种工业图像处理软件的工具结果判定方法及装置 |
US11892816B2 (en) * | 2021-09-29 | 2024-02-06 | Nanya Technology Corporation | Method of operating testing system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3089036A1 (en) * | 2015-02-23 | 2016-11-02 | International Business Machines Corporation | Handling failure of a command to add a record to a log |
CN110661650A (zh) * | 2019-09-05 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种日志管理方法、装置及电子设备和存储介质 |
CN111371590A (zh) * | 2020-02-16 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种监控交换机bmc日志的方法、系统及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614814B (zh) * | 2018-10-31 | 2023-12-22 | 北京方盈智能数字科技有限公司 | 基于日志监控的扫描敏感日志的方法、装置和计算机设备 |
-
2020
- 2020-08-13 CN CN202010814835.6A patent/CN112073219B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3089036A1 (en) * | 2015-02-23 | 2016-11-02 | International Business Machines Corporation | Handling failure of a command to add a record to a log |
CN110661650A (zh) * | 2019-09-05 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种日志管理方法、装置及电子设备和存储介质 |
CN111371590A (zh) * | 2020-02-16 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种监控交换机bmc日志的方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112073219A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112073219B (zh) | 日志收集系统及方法、设备、存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN112988683A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN112100052A (zh) | 一种接口测试场景的回放方法及装置 | |
CN114077525A (zh) | 异常日志处理方法、装置、终端设备、云服务器及系统 | |
CN113342689A (zh) | 一种接口的自动化测试方法、装置、电子设备及存储介质 | |
CN116089220A (zh) | 基于操作系统的指标巡检方法及其装置、电子设备 | |
JP6615071B2 (ja) | 計算機システム及びテストケース管理方法 | |
CN115048257A (zh) | 系统业务功能验证方法、装置、计算机设备和存储介质 | |
CN114528201A (zh) | 异常代码定位方法、装置、设备及介质 | |
CN101510172B (zh) | 测试系统及方法 | |
CN115809200A (zh) | 基于python的UI自动化用例调用方法及装置 | |
CN113868096B (zh) | 异步数据传输的监控方法及装置、电子设备、存储介质 | |
CN113746924B (zh) | 一种电网业务数据跨区传输方法及装置 | |
CN111198798B (zh) | 服务稳定性的测量方法及装置 | |
CN114064510A (zh) | 功能测试方法、装置、电子设备和存储介质 | |
CN115620877A (zh) | 一种医疗数据上传云平台的方法、系统、设备及存储介质 | |
CN113867778A (zh) | 一种镜像文件的生成方法、装置、电子设备及存储介质 | |
CN110362464B (zh) | 软件分析方法及设备 | |
CN113010376A (zh) | 一种对存储训练数据的云存储系统的监测方法及装置 | |
CN110365627B (zh) | 应用程序同步方法、装置、计算设备以及存储介质 | |
WO2019205382A1 (zh) | 电子装置、采集征信数据的方法及存储介质 | |
CN112131180A (zh) | 数据上报方法、装置以及存储介质 | |
CN117234949B (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 |