CN116643958A - 日志数据处理方法及装置 - Google Patents

日志数据处理方法及装置 Download PDF

Info

Publication number
CN116643958A
CN116643958A CN202310491878.9A CN202310491878A CN116643958A CN 116643958 A CN116643958 A CN 116643958A CN 202310491878 A CN202310491878 A CN 202310491878A CN 116643958 A CN116643958 A CN 116643958A
Authority
CN
China
Prior art keywords
log
file
data
processed
log file
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
Application number
CN202310491878.9A
Other languages
English (en)
Inventor
张钦尧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Beijing Oceanbase Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Oceanbase Technology Co Ltd filed Critical Beijing Oceanbase Technology Co Ltd
Priority to CN202310491878.9A priority Critical patent/CN116643958A/zh
Publication of CN116643958A publication Critical patent/CN116643958A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书一个或多个实施方式涉及数据库技术领域,提供了一种日志数据处理方法及装置。一种日志数据处理方法,包括从预设存储模块中读取预先存储的日志追踪位置,对于每种日志类型的日志文件,根据日志追踪位置确定待处理的日志文件,并对待处理的日志文件进行解析处理得到目标日志数据。本说明书实施方式中,利用预设存储模块动态维护每种日志类型的日志数据对应的日志追踪位置,无需为每个日志文件生成对应的状态文件,降低了产生的数据量,实现对日志文件的持久化追踪。而且,可以实现一个进程中支持同时解析多种日志类型的日志数据,降低对硬件资源的占用,提高日志数据的处理效率。

Description

日志数据处理方法及装置
技术领域
本说明书一个或多个实施方式涉及数据库技术领域,尤其涉及一种日志数据处理方法及装置。
背景技术
数据库系统是金融、商业、交通等很多行业实现信息化的基础设施,数据库系统在运行时,通常会产生大量用于记录数据库系统在运行中发生的事件和操作的数据库日志,基于这些日志可以对数据库运行的状况进行分析,实现诸如日志链路搜索、日志查询、监控告警等功能。
发明内容
为提高针对日志数据的处理性能,本说明书一个或多个实施方式提供了一种日志数据处理方法、装置、电子设备及存储介质。
第一方面,本说明书一个或多个实施方式提出了一种日志数据处理方法,包括:
从预设存储模块中读取预先存储的日志追踪位置;所述预设存储模块被配置为用于存储每种日志类型的日志文件所对应的日志追踪位置,所述日志追踪位置表示日志文件的读取位置;
对于每种日志类型的日志文件,根据所述日志追踪位置确定待处理的日志文件,并对所述待处理的日志文件进行解析处理得到目标日志数据。
在本说明书一个或多个实施方式中,所述对于每种日志类型的日志文件,根据所述日志追踪位置确定待处理的日志文件,包括:
对于每种日志类型的日志文件,获取所述日志追踪位置所指示的日志文件对应的时间信息,所述时间信息包括所述日志文件的产生时刻;
根据每个日志文件的标识信息,确定所述产生时刻至当前时刻之间的日志文件为所述待处理的日志文件。
在本说明书一个或多个实施方式中,所述对所述待处理的日志文件进行解析处理得到目标日志数据,包括:
将所述待处理的日志文件按照时间顺序依次加入处理队列;
基于预先配置的与所述待处理的日志文件的日志类型相对应的解析方式,对所述处理队列中的所述待处理的日志文件进行解析处理,得到所述目标日志数据。
在本说明书一个或多个实施方式中,日志数据处理方法还包括:
响应于所述处理队列中的数据量达到第一预设数据量阈值,暂停对所述待处理的日志文件进行解析处理的过程。
在本说明书一个或多个实施方式中,日志数据处理方法还包括:
在对所述待处理的日志文件进行解析处理的过程中,响应于读取的日志数据达到第二预设数据量阈值,将当前读取位置存储在所述预设存储模块中,得到所述日志追踪位置;
和/或,
响应于对所述待处理的日志文件进行解析处理的过程中断,将当前读取位置存储在所述预设存储模块中,得到所述日志追踪位置。
在本说明书一个或多个实施方式中,所述日志类型包括数据库服务日志、数据库代理日志以及管理进程日志中的一种或多种。
在本说明书一个或多个实施方式中,在得到目标日志数据之后,所述方法还包括:
基于所述目标日志数据进行日志分析处理,得到对应的日志分析结果。
第二方面,本说明书一个或多个实施方式提供了一种日志数据处理装置,包括日志采集模块,所述日志采集模块被配置于代理进程,所述日志采集模块包括多个处理子模块,每个处理子模块用于处理一种日志类型的日志文件,所述处理子模块被配置为:
从预设存储模块中读取预先存储的日志追踪位置;所述预设存储模块被配置为用于存储每种日志类型的日志文件所对应的日志追踪位置,所述日志追踪位置表示日志文件的读取位置;
根据所述日志追踪位置确定待处理的日志文件,并对所述待处理的日志文件进行解析处理得到目标日志数据。
在本说明书一个或多个实施方式中,所述处理子模块包括文件检测模块,所述文件检测模块被配置为:
对于每种日志类型的日志文件,获取所述日志追踪位置所指示的日志文件对应的时间信息,所述时间信息包括所述日志文件的产生时刻;
根据每个日志文件的标识信息,确定所述产生时刻至当前时刻之间的日志文件为所述待处理的日志文件。
在本说明书一个或多个实施方式中,所述处理子模块包括:
队列模块,被配置为将所述待处理的日志文件按照时间顺序依次加入处理队列;
数据处理模块,被配置为基于预先配置的与所述待处理的日志文件的日志类型相对应的解析方式,对所述处理队列中的所述待处理的日志文件进行解析处理,得到所述目标日志数据。
在本说明书一个或多个实施方式中,所述队列模块被配置为:
响应于所述处理队列中的数据量达到第一预设数据量阈值,暂停对所述待处理的日志文件进行解析处理的过程。
在本说明书一个或多个实施方式中,所述预设存储模块被配置为:
在对所述待处理的日志文件进行解析处理的过程中,响应于读取的日志数据达到第二预设数据量阈值,将当前读取位置存储在所述预设存储模块中,得到所述日志追踪位置;
和/或,
响应于对所述待处理的日志文件进行解析处理的过程中断,将当前读取位置存储在所述预设存储模块中,得到所述日志追踪位置。
在本说明书一个或多个实施方式中,所述日志类型包括数据库服务日志、数据库代理日志以及管理进程日志中的一种或多种。
在本说明书一个或多个实施方式中,日志数据处理装置还包括日志分析模块,所述日志分析模块被配置为:
基于所述目标日志数据进行日志分析处理,得到对应的日志分析结果。
第三方面,本说明书一个或多个实施方式提供了一种电子设备,包括:
处理器;以及
存储器,存储有计算机指令,所述计算机指令用于使所述处理器执行根据第一方面任意实施方式所述的方法。
第四方面,本说明书一个或多个实施方式提供了一种存储介质,存储有计算机指令,所述计算机指令用于使计算机执行根据第一方面任意实施方式所述的方法。
本说明书一个或多个实施方式的日志数据处理方法,包括从预设存储模块中读取预先存储的日志追踪位置,对于每种日志类型的日志文件,根据日志追踪位置确定待处理的日志文件,并对待处理的日志文件进行解析处理得到目标日志数据。本说明书实施方式中,利用预设存储模块动态维护每种日志类型的日志数据对应的日志追踪位置,无需为每个日志文件生成对应的状态文件,降低了产生的数据量,实现对日志文件的持久化追踪。而且,可以实现一个进程中支持同时解析多种日志类型的日志数据,降低对硬件资源的占用,提高日志数据的处理效率。
附图说明
图1是根据本说明书一示例性实施方式中日志数据处理的原理图。
图2是根据本说明书一示例性实施方式中日志数据处理装置的结构图。
图3是根据本说明书一示例性实施方式中日志数据处理方法的流程图。
图4是根据本说明书一示例性实施方式中处理子模块的结构框图。
图5是根据本说明书一示例性实施方式中日志数据处理方法的流程图。
图6是根据本说明书一示例性实施方式中日志数据处理方法的流程图。
图7是根据本说明书一示例性实施方式中电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书一个或多个实施方式相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施方式的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施方式中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施方式中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施方式中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施方式中也可能被合并为单个步骤进行描述。
数据库是当前很多行业,例如金融、商业、交通等行业实现信息化建设的基础设施,数据库系统的性能是这些行业可以有效向用户提供正常服务的保障。数据库系统在运行中,通常会产生大量用于记录数据库系统运行中发生的例如事件、操作以及运行状态的数据库日志。基于这些日志可以对数据库运行的状况进行分析,实现诸如日志链路搜索、日志查询、监控告警等功能。
例如以OceanBase数据库为例,OCP(Oceanbase Cloud Platform)是针对OceanBase数据库提供的运维管理平台,其提供了针对日志监控告警、日志链路搜索以及日志查询等相关功能,这些功能的实现依赖于OCP平台的OCP Agent(代理)对数据库日志数据的实时采集和处理。
图1示出了一种针对数据库日志数据进行采集及处理的示意图。如图1所示,通常,各个数据库组件产生各种类型的日志数据,然后将这些日志数据写入文本形式的日志文件中,可以通过下游的日志分析系统或者日志采集系统读取这些日志文件,并对日志文件中的日志数据进行解析,基于解析得到的各种类型的日志数据,实现相应的日志分析功能。
日志轮替是指在日志数据写入日志文件的过程中,当日志文件达到指定大小时,会新建一个新的同名文件来记录后续的日志内容,旧日志文件一般会被重新命名为带有时间戳的日志文件,从而可以避免单个日志文件体积过大。
基于此,在日志采集过程中需要读取大量的日志文件,为实现对日志文件中的日志内容进行追踪读取,相关技术中,往往需要针对每个日志文件生成对应的状态文件,状态文件用于记录该日志文件的追踪情况,例如日志追踪位置等。在日志文件数量较多的情况下,对应生成的状态文件数量也较多,造成数据量增大,而且每次查询日志追踪情况时,都需要读取较多的状态文件,影响日志数据处理效率。
为了解决上述技术问题,本说明书实施方式提供了一种日志数据处理方法、装置、电子设备及存储介质,旨在优化针对数据库日志数据的处理方法,在追踪日志时无需为每个日志文件生成一个状态文件,降低数据量,且提高日志数据的处理效率和持久化追踪效果。
图2示出了本说明书一些实施方式中日志数据处理装置的架构图,下面结合图2对实现本说明书方案的各软件模块进行说明。
如图2所示,在一些实施方式中,本说明书示例的日志数据处理装置包括日志采集模块Log_tailer,该日志采集模块Log_tailer被配置于代理进程(Agent),代理进程Agent是运维管理平台部署在被管控设备上的用于采集数据、执行运维指令的进程。例如前述OceanBase数据库示例中,可将日志采集模块Log_tailer配置于前述OCP平台的Agent进程中。
本说明书示例中,日志采集模块Log_tailer包括一个或多个处理子模块Log_tailer_executor,每个处理子模块Log_tailer_executor用于处理一种日志类型的日志文件。可以理解,在数据库系统运行时,从不同数据库组件采集到的日志文件往往为不同日志类型,也即日志文件格式不同,从而对应的日志解析方式也不同。例如以前述的OceanBase数据库为例,日志文件可包括数据库服务(OBSever)日志、数据库代理(OBProxy)日志、管理进程(Agent)日志以及Linux系统日志等多种日志类型。
本说明书实施方式中,利用每个处理子模块Log_tailer_executor来处理一种日志类型的日志文件,实现多种日志类型的日志文件的并行处理。例如图2示例中,日志采集模块Log_tailer共配置3个处理子模块Log_tailer_executor,每个处理子模块Log_tailer_executor对应处理一种日志类型的日志文件。当然,本领域技术人员可以理解,图2仅作为本说明书实施方式的一种示例,在其他实施方式中,处理子模块Log_tailer_executor的数量并不局限于3,本说明书对此不再赘述。
日志采集模块Log_tailer还配置有预设存储模块Position_store,预设存储模块Position_store是指位置存储器,其主要用于存储在对日志文件进行日志追踪时的日志追踪位置,日志追踪位置表示对日志文件的读取位置。每个处理子模块Log_tailer_executor可以通过读取该日志追踪位置,确定上次读取到的日志文件以及日志行的位置。
基于图2所示的日志数据处理装置的架构,下面结合图3对本说明书实施方式的日志数据处理方法进行说明。
如图3所示,在一些实施方式中,本说明书示例的日志数据处理方法,包括:
S310、从预设存储模块中读取预先存储的日志追踪位置。
S320、对于每种日志类型的日志文件,根据日志追踪位置确定待处理的日志文件,并对待处理的日志文件进行解析处理得到目标日志数据。
本说明书实施方式中,对日志数据进行处理是指,将日志文件中的文本格式的日志数据,解析处理为结构化的目标日志数据,从而供下游设备基于该结构化的目标日志数据,实现相应的日志分析功能,例如日志链路搜索、日志查询、监控告警等功能。
结合图1、图2可知,每个数据库组件产生一种日志类型的日志文件,而且由于日志轮替机制每种日志类型下会产生多个日志文件。在对日志文件的日志数据进行处理时,需要能够持久化地追踪日志读取位置,而且在当前日志文件的日志数据处理完成之后,还要追踪新产生的日志文件。
结合前述可知,传统方案中,需要为每个日志文件生成对应的状态文件,从而利用状态文件来记录对应日志文件的日志追踪位置,实现对新日志文件的追踪。而本说明书实施方式中,则无需为每个日志文件生成状态文件,参见图2所示,本说明书实施方式中,可以利用预设存储模块Position_store来记录每种日志类型的日志数据的日志追踪位置,从而在日志数据处理时,每个处理子模块Log_tailer_executor可以直接从预设存储模块Position_store读取日志追踪位置,基于该日志追踪位置即可准确定位上次追踪的日志文件及数据位置。
例如一些实施方式中,处理子模块Log_tailer_executor可以每处理预设数量行的日志数据,将当前读取的日志位置在预设存储模块Position_store中记录更新一次,实现日志追踪位置的存储及更新。从而,在系统异常中断的情况下,在系统恢复时,每个处理子模块Log_tailer_executor即可从预设存储模块Position_store中读取得到最新的日志追踪位置,实现对上次读取的日志文件到当前时刻之间的日志文件的追踪,无需查询每个日志文件的状态文件,系统也就无需为每个日志文件产生对应的状态文件。
例如另一些实施方式中,处理子模块Log_tailer_executor可以在系统正常停止或退出的情况下,将当前读取的日志位置在预设存储模块Position_store中记录更新,实现日志追踪位置的存储及更新。从而系统重新启动时,处理子模块Log_tailer_executor可以通过读取预设存储模块Position_store中记录的日志追踪位置,实现对上次读取的日志文件到当前时刻之间新产生日志文件的追踪,无需查询每个日志文件的状态文件,系统也就无需为每个日志文件产生对应的状态文件。
本说明书下文实施方式中,对预设存储模块Position_store中日志追踪位置的写入和读取过程进行说明,在此暂不详述。
通过上述可以看到,对于每种日志类型的日志文件的持久化追踪过程中,只需要每个处理子模块Log_tailer_executor为一类日志文件维护一个日志追踪位置即可,无需为每个日志文件产生对应的状态文件,极大缩减了系统数据量。而且,在对日志文件进行追踪时,只需要基于日志追踪位置即可快速定位,无需查询大量的状态文件,以此提高日志数据的处理效率和持久化追踪效果。
在本说明书实施方式中,每个处理子模块Log_tailer_executor在读取得到日志追踪位置之后,即可根据日志追踪位置确定需要进行处理日志文件,也即本说明书所述的待处理的日志文件。例如一些实施方式中,处理子模块Log_tailer_executor首先可读取预设存储模块Position_store中的日志追踪位置,确定上次追踪到的日志文件以及在文件中的追踪位置,基于该日志文件的时间信息确定该日志文件产生时刻到当前时刻之间是否产生有新日志文件,在有新日志文件产生的情况下,将新产生的日志文件确定为待处理的日志文件。本说明书下文实施方式中对新日志文件的追踪过程进行说明,在此暂不详述。
处理子模块Log_tailer_executor在根据日志追踪位置确定待处理的日志文件之后,即可对待处理的日志文件进行解析处理,将原本文本行形式的日志数据处理为结构化的目标日志数据。在一些实施方式中,可以基于处理队列将待处理的日志文件依次放入处理队列中,从而处理子模块Log_tailer_executor可以按照队列中的时间顺序依次进行日志数据的追踪和解析。本说明书下文实施方式对此进行说明,在此暂不详述。
结合图1、图2所示,在得到结构化的目标日志数据之后,即可利用下游的日志分析系统实现诸如日志链路搜索、日志查询、监控告警等相关分析功能,本说明书对此不作限制。
结合前述可知,本说明书实施方式中,利用预设存储模块动态维护每种日志类型的日志数据对应的日志追踪位置,无需为每个日志文件生成对应的状态文件,只需要每种日志类型的日志文件维护一个日志追踪位置即可,极大降低了产生的数据量。而且,在对日志文件进行追踪时,只需要基于日志追踪位置即可快速定位,无需查询大量的状态文件,提高日志数据的处理效率和持久化追踪效果。
另外,通过为每种日志类型的日志文件配置一个处理子模块Log_tailer_executor,从而在一个日志采集进程中可以同时实现对多种日志类型的日志数据的追踪和解析。在传统方式中,若想实现支持多种日志类型,需要启动多个日志采集进程,极大占用了硬件资源,而若是在一个日志采集进程中配置多种日志类型,则每次对日志文件的日志数据进行解析时都需要遍历所有的解析方式,十分耗时。而本说明书实施方式中,通过在日志采集进程配置多个并行的处理子模块Log_tailer_executor,实现一个进程中支持同时解析多种日志类型的日志数据,降低对硬件资源的占用,而且每个处理子模块Log_tailer_executor负责处理一种日志类型的日志数据,无需遍历所有解析方式,极大提高日志数据的处理效率。
通过上述可知,本说明书实施方式中,利用预设存储模块动态维护每种日志类型的日志数据对应的日志追踪位置,无需为每个日志文件生成对应的状态文件,降低了产生的数据量,实现对日志文件的持久化追踪。而且,可以实现一个进程中支持同时解析多种日志类型的日志数据,降低对硬件资源的占用,提高日志数据的处理效率。
参见图2所示,以日志采集模块Log_tailer中的一个处理子模块Log_tailer_executor为例,图4示出了处理子模块Log_tailer_executor的结构框图,下面结合图4进行说明。
如图4所示,在一些实施方式中,处理子模块Log_tailer_executor包括配置模块Config、文件检测模块Watch_new_log、处理队列以及数据处理模块Process_lines。
配置模块Config用于预先配置对应日志类型的日志目录、文件模式(Pattern)以及解析方式等,日志目录用于指示该日志类型的日志文件的位置,文件模式用于指示例如文件名称等信息,解析方式是指对该日志类型的日志数据进行解析的方式。每个处理子模块Log_tailer_executor的配置模块Config中的信息可以预先配置好,等待后续调取使用。
文件检测模块Watch_new_log用于轮询监听是否有新的日志文件产生,并将新产生的日志文件确定为本说明书所述的待处理的日志文件。处理队列是指需要进行解析的日志文件的存放队列,本说明书实施方式中,可以将待处理的日志文件按照时间顺序依次放入处理队列中,从而数据处理模块Process_lines可以按照时间顺序依次对处理队列中的日志文件的日志数据进行读取和解析,得到解析后的目标日志数据。
为便于理解,下面将结合图2和图4示例,以一个处理子模块Log_tailer_executor对一种日志类型的日志数据进行处理的完整流程进行说明。
在日志采集进程初始阶段,对预设存储模块Position_store初始化,从而处理子模块Log_tailer_executor读取预设存储模块Position_store,即可确定预设存储模块Position_store中并未存储日志追踪位置。此时,文件检测模块Watch_new_log通过轮询方式,基于配置模块Config配置的日志目录和文件模式,检测到最新产生的日志文件,在检测到日志文件的情况下,将该日志文件确定为待处理的日志文件,并将待处理的日志文件加入处理队列中。
数据处理模块Process_lines读取处理队列中的日志文件,并对日志文件中的日志数据进行扫描和解析。数据处理模块Process_lines可以基于预先在配置模块Config中配置的解析方式,对日志文件中的日志数据进行解析,得到结构化的目标日志数据。
与此同时,数据处理模块Process_lines每次还需要根据读取到的日志数据的数据量,向预设存储模块Position_store中写入当前的读取位置,也即写入日志追踪位置。
可以理解,日志文件中的日志数据为文本形式的数据,在对日志数据进行解析时需要对日志文本数据进行逐行扫描。本说明书实施方式中,可以针对扫描的日志数据的数据量设置第二预设数据量阈值,当每次扫描的数据量达到第二预设数据量阈值时,即可将当前读取位置存储在预设存储模块Position_store中,保持预设存储模块Position_store中的日志追踪位置持久化更新。
例如一个示例中,第二预设数量阈值为n行,n可以取值例如1000、2000、5000、10000等,本说明书对此不作限制。以第二预设数量阈值n=10000为例,也即,数据处理模块Process_lines每读取10000行日志数据,则需要向预设存储模块Position_store中记录一次读偏移量,该读偏移量表示当前读取位置,也即本说明书所述的日志追踪位置。并且,基于本次记录的日志追踪位置对前一次记录的日志追踪位置进行更新,保持预设存储模块Position_store中记录最新的日志追踪位置。
在另一些实施方式中,还可以在系统正常停止或者退出时,数据处理模块Process_lines将当前读取位置向预设存储模块Position_store中记录一次,并对前一次记录的日志追踪位置进行更新。从而,在系统下次启动时,即可以通过读取预设存储模块Position_store中的日志追踪位置实现日志文件的继续追踪。
如图5所示,在一些实施方式中,本说明书示例的日志数据处理方法,根据日志追踪位置确定待处理的日志文件的过程,包括:
S510、对于每种日志类型的日志文件,获取日志追踪位置所指示的日志文件对应的时间信息,时间信息包括日志文件的产生时刻。
S520、根据每个日志文件的标识信息,确定产生时刻至当前时刻之间的日志文件为待处理的日志文件。
结合图2、图4示例,仍以其中一个处理子模块Log_tailer_executor为例,通过前述过程对预设存储模块Position_store中的日志追踪位置的动态维护,处理子模块Log_tailer_executor可以从预设存储模块Position_store中读取得到最新的日志追踪位置,该日志追踪位置表示上次记录的针对日志数据追踪解析的位置,该日志追踪位置对应于处理队列中的某个日志文件,也即正在处理的日志文件。结合前述可知,日志轮替产生的日志文件携带有时间戳,该时间戳即可作为本说明书所述的时间信息,时间信息用于标识该日志文件的产生时刻。
从而,本说明书实施方式中,即可将该时间信息所指示的产生时刻至当前时刻确定为本次针对新日志文件进行检测的时间段。例如一个示例中,读取到的日志追踪位置所指示的日志文件对应的产生时刻为T0,从而,可将产生时刻T0至当前时刻T1之间的时间段(T0~T1)确定为本次针对新日志文件进行检测的时间段。
在确定本次针对新日志文件进行检测的时间段之后,即可根据该时间段追踪所有位于该时间段的日志文件。在一些实施方式中,在该时间段中可能未产生日志文件,从而文件检测模块Watch_new_log等待下次轮询检测即可。
在另一些实施方式中,在该时间段中可能包括有一个或多个日志文件,值得说明的是,由于日志追踪位置所指示的日志文件是当前处理的日志文件,并不一定是处理队列队尾的日志文件。因此,在该时间段内包括的一个或多个日志文件,可能是已经放入处理队列的旧日志文件,也可能是新产生的新日志文件,因此,需要对旧日志文件和新日志文件进行区分。
通过前述可知,由日志轮替产生的日志文件的文件名相同,因此,采用常规的文件名检测难以区别新旧日志文件。从而本说明书一些实施方式中,可以根据每个日志文件的标识信息来进行新旧日志文件的区分,标识信息例如包括日志文件携带的设备号、Inode号等,通过识别每个日志文件的标识信息,即可确定该时间段内新产生的新日志文件,并将新日志文件确定为待处理的日志文件,然后将待处理的日志文件放入处理队列中,排队等待数据处理模块Process_lines读取处理。
本说明书实施方式中,基于日志追踪位置对应的产生时刻和当前时刻之间的时间段进行新日志文件检测,大大降低了由于仅扫描新产生日志文件导致的日志文件遗漏风险,保证日志数据处理的稳定性和可靠性。
可以理解,随着数据库系统不断运行,由于日志轮替会不断产生新的日志文件,文件检测模块Watch_new_log可以轮询的方式监听新产生的日志文件,从而不断将新产生的日志文件加入处理队列。文件检测模块Watch_new_log轮询的时间周期本说明书不作限制,例如一个示例中,轮询的时间周期可以是1秒。
本说明书一些实施方式中,以一次轮询过程为例,文件检测模块Watch_new_log首先可以根据处理队列中队尾的日志文件,确定队尾日志文件的产生时刻T2,从而将该产生时刻T2至当前时刻T3之间的时间段(T2~T3)确定为本次轮询的时间段。
在确定本次轮询的时间段之后,即可根据该时间段追踪所有位于该时间段的日志文件。在一些实施方式中,在该时间段中可能未产生日志文件,从而文件检测模块Watch_new_log等待下次轮询即可。在另一些实施方式中,在该时间段中可能包括有一个或多个日志文件,可以通过前述针对新旧日志文件进行检测的方式,也即根据每个日志文件的标识信息来进行新旧日志文件的区分,确定新产生的日志文件,并将新产生的日志文件放入处理队列中,排队等待数据处理模块Process_lines读取处理。
上述以文件检测模块Watch_new_log的一次轮询过程为例进行了说明,在每个轮询周期中,文件检测模块Watch_new_log依次重复执行上述过程即可,本说明书对此不再赘述。
如图6所示,在一些实施方式中,本说明书示例的日志数据处理方法,对待处理的日志文件进行解析处理得到目标日志数据的过程,包括:
S610、将待处理的日志文件按照时间顺序依次加入处理队列。
S620、基于预先配置的与待处理的日志文件的日志类型相对应的解析方式,对处理队列中的待处理的日志文件进行解析处理,得到目标日志数据。
结合图2、图4示例,仍以其中一个处理子模块Log_tailer_executor为例,文件检测模块Watch_new_log在确定待处理的日志文件之后,即可将待处理的日志文件按照时间顺序依次加入处理队列中。
与前述数据解析过程相同,数据处理模块Process_lines按照时间顺序依次从处理队列中取出日志文件,并对日志文件的日志数据进行读取和解析。在数据解析时,需要根据配置模块Config中预先配置的解析方式对日志数据进行解析,从而将文本形式的日志数据处理为对应的结构化数据,得到目标日志数据。与此同时,数据处理模块Process_lines每次还需要根据读取到的日志数据的数据量,向预设存储模块Position_store中写入当前的读取位置,也即写入日志追踪位置,从而对预设存储模块Position_store中的日志追踪位置进行动态更新。对于写入日志追踪位置的过程,本领域技术人员参照前述即可,在此不再赘述。
在上述实施方式中,仅针对日志采集模块Log_tailer中的其中一个处理子模块Log_tailer_executor对一种日志类型的日志数据进行处理的过程进行了说明,对于其他处理子模块Log_tailer_executor的原理与之相同,本领域技术人员参照前述即可理解并充分实施,本说明书对此不再赘述。
在实时数据处理过程中,往往会出现下游消费端的数据消费速度低于上游生产端的数据生成速度,从而导致生产端主动阻塞的现象。例如在本说明书实施方式的日志数据处理场景中,如果下游对目标日志的消费速度低于日志数据的解析速度,就会造成日志数据解析出现阻塞,如果没有恰当的控制策略,很容易导致产生的目标日志数据被丢弃,造成日志数据丢失,无法高效稳定对数据库日志进行分析。反压即为针对这一现象的有效解决手段,反压功能可以实现在消费端来不及消费的情况下,控制生成端等待消费端消费完再生产。
为实现反压功能,本说明书一些实施方式中,可以在对处理子模块Log_tailer_executor编程时,利用编程语言(例如go语音)的Channel(通道)机制,将处理子模块Log_tailer_executor的输入与输出打通,从而在输出的目标日志数据卡住的情况下,也可以同步停止日志数据的入队及解析,使得输入端与输出端速度保持一致,避免日志数据丢失。
在另一些实施方式中,也可以利用处理队列来实现反压功能。例如结合图4所示,可以预先针对处理队列设置第一预设数据量阈值,该第一预设数据量阈值表示处理队列所能容纳的数据量的临界至。从而,在处理队列中的数据量达到第一预设数据量阈值的情况下,说明消费端的消费速度较慢,此时可以暂停日志数据的入队以及解析。
通过上述可知,本说明书实施方式中,利用预设存储模块动态维护每种日志类型的日志数据对应的日志追踪位置,无需为每个日志文件生成对应的状态文件,降低了产生的数据量,实现对日志文件的持久化追踪。而且,可以实现一个进程中支持同时解析多种日志类型的日志数据,降低对硬件资源的占用,提高日志数据的处理效率。
另外,具有反压功能,避免日志数据丢失,从而提高日志数据处理的稳定性和鲁棒性。而且,值得说明的是,本说明书实施方式中,用户可以根据具体日志类型在日志采集模块Log_tailer中自主配置相应数据和解析方式的处理子模块Log_tailer_executor,利于多种日志类型场景的增量部署。
在一些实施方式中,本说明书提供了一种日志数据处理装置,该装置可参照前述图2和图4所示,其包括日志采集模块Log_tailer,所述日志采集模块Log_tailer被配置于代理(Agent)进程,所述日志采集模块Log_tailer包括多个处理子模块Log_tailer_executor,每个处理子模块Log_tailer_executor用于处理一种日志类型的日志文件,处理子模块Log_tailer_executor被配置为:
从预设存储模块Position_store中读取预先存储的日志追踪位置;预设存储模块Position_store被配置为用于存储每种日志类型的日志文件所对应的日志追踪位置,日志追踪位置表示日志文件的读取位置;
根据日志追踪位置确定待处理的日志文件,并对待处理的日志文件进行解析处理得到目标日志数据。
在本说明书一个或多个实施方式中,处理子模块Log_tailer_executor包括文件检测模块Watch_new_log,文件检测模块Watch_new_log被配置为:
对于每种日志类型的日志文件,获取日志追踪位置所指示的日志文件对应的时间信息,时间信息包括日志文件的产生时刻;
根据每个日志文件的标识信息,确定产生时刻至当前时刻之间的日志文件为待处理的日志文件。
在本说明书一个或多个实施方式中,处理子模块Log_tailer_executor包括:
队列模块,被配置为将待处理的日志文件按照时间顺序依次加入处理队列;
数据处理模块Process_lines,被配置为基于预先配置的与待处理的日志文件的日志类型相对应的解析方式,对处理队列中的待处理的日志文件进行解析处理,得到目标日志数据。
在本说明书一个或多个实施方式中,队列模块被配置为:
响应于处理队列中的数据量达到第一预设数据量阈值,暂停对所述待处理的日志文件进行解析处理的过程。
在本说明书一个或多个实施方式中,预设存储模块Position_store被配置为:
在对待处理的日志文件进行解析处理的过程中,响应于读取的日志数据达到第二预设数据量阈值,将当前读取位置存储在预设存储模块中,得到日志追踪位置;
和/或,
响应于对待处理的日志文件进行解析处理的过程中断,将当前读取位置存储在预设存储模块中,得到日志追踪位置。
在本说明书一个或多个实施方式中,日志类型包括数据库服务日志、数据库代理日志以及管理进程日志中的一种或多种。
在本说明书一个或多个实施方式中,日志数据处理装置还包括日志分析模块,日志分析模块被配置为:
基于目标日志数据进行日志分析处理,得到对应的日志分析结果。
在一些实施方式中,本说明书提供了一种电子设备,包括:
处理器;以及
存储器,存储有计算机指令,计算机指令用于使处理器执行上述任意实施方式的方法。
在一些实施方式中,本说明书提供了一种存储介质,存储有计算机指令,计算机指令用于使计算机执行上述任意实施方式的方法。
图7是一示例性实施方式提供的一种电子设备的示意结构图。请参考图7,在硬件层面,该电子设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他场景所需要的硬件。本说明书一个或多个实施方式可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施方式并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施方式进行了描述。其它实施方式在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施方式中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施方式使用的术语是仅仅出于描述特定实施方式的目的,而非旨在限制本说明书一个或多个实施方式。在本说明书一个或多个实施方式和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施方式范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施方式的较佳实施方式而已,并不用以限制本说明书一个或多个实施方式,凡在本说明书一个或多个实施方式的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施方式保护的范围之内。

Claims (10)

1.一种日志数据处理方法,其特征在于,包括:
从预设存储模块中读取预先存储的日志追踪位置;所述预设存储模块被配置为用于存储每种日志类型的日志文件所对应的日志追踪位置,所述日志追踪位置表示日志文件的读取位置;
对于每种日志类型的日志文件,根据所述日志追踪位置确定待处理的日志文件,并对所述待处理的日志文件进行解析处理得到目标日志数据。
2.根据权利要求1所述的方法,其特征在于,所述对于每种日志类型的日志文件,根据所述日志追踪位置确定待处理的日志文件,包括:
对于每种日志类型的日志文件,获取所述日志追踪位置所指示的日志文件对应的时间信息,所述时间信息包括所述日志文件的产生时刻;
根据每个日志文件的标识信息,确定所述产生时刻至当前时刻之间的日志文件为所述待处理的日志文件。
3.根据权利要求1所述的方法,其特征在于,所述对所述待处理的日志文件进行解析处理得到目标日志数据,包括:
将所述待处理的日志文件按照时间顺序依次加入处理队列;
基于预先配置的与所述待处理的日志文件的日志类型相对应的解析方式,对所述处理队列中的所述待处理的日志文件进行解析处理,得到所述目标日志数据。
4.根据权利要求3所述的方法,其特征在于,还包括:
响应于所述处理队列中的数据量达到第一预设数据量阈值,暂停对所述待处理的日志文件进行解析处理的过程。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:
在对所述待处理的日志文件进行解析处理的过程中,响应于读取的日志数据达到第二预设数据量阈值,将当前读取位置存储在所述预设存储模块中,得到所述日志追踪位置;
和/或,
响应于对所述待处理的日志文件进行解析处理的过程中断,将当前读取位置存储在所述预设存储模块中,得到所述日志追踪位置。
6.根据权利要求1所述的方法,其特征在于,
所述日志类型包括数据库服务日志、数据库代理日志以及管理进程日志中的一种或多种。
7.根据权利要求1所述的方法,其特征在于,在得到目标日志数据之后,所述方法还包括:
基于所述目标日志数据进行日志分析处理,得到对应的日志分析结果。
8.一种日志数据处理装置,其特征在于,包括日志采集模块,所述日志采集模块被配置于代理进程,所述日志采集模块包括多个处理子模块,每个处理子模块用于处理一种日志类型的日志文件,所述处理子模块被配置为:
从预设存储模块中读取预先存储的日志追踪位置;所述预设存储模块被配置为用于存储每种日志类型的日志文件所对应的日志追踪位置,所述日志追踪位置表示日志文件的读取位置;
根据所述日志追踪位置确定待处理的日志文件,并对所述待处理的日志文件进行解析处理得到目标日志数据。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机指令,所述计算机指令用于使所述处理器执行根据权利要求1至7任一项所述的方法。
10.一种存储介质,其特征在于,存储有计算机指令,所述计算机指令用于使计算机执行根据权利要求1至7任一项所述的方法。
CN202310491878.9A 2023-05-04 2023-05-04 日志数据处理方法及装置 Pending CN116643958A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310491878.9A CN116643958A (zh) 2023-05-04 2023-05-04 日志数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310491878.9A CN116643958A (zh) 2023-05-04 2023-05-04 日志数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN116643958A true CN116643958A (zh) 2023-08-25

Family

ID=87622176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310491878.9A Pending CN116643958A (zh) 2023-05-04 2023-05-04 日志数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN116643958A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033470A (zh) * 2023-10-08 2023-11-10 天津市天河计算机技术有限公司 数据生成方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033470A (zh) * 2023-10-08 2023-11-10 天津市天河计算机技术有限公司 数据生成方法、装置、设备及介质
CN117033470B (zh) * 2023-10-08 2024-01-30 天津市天河计算机技术有限公司 数据生成方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN112346829B (zh) 一种用于任务调度的方法及设备
CN109542889B (zh) 流式数据列存储方法、装置、设备和存储介质
CN111930848B (zh) 数据分区存储方法、装置及系统
CN113111129A (zh) 数据同步方法、装置、设备及存储介质
CN111737265B (zh) 区块数据访问方法、区块数据存储方法及装置
CN116643958A (zh) 日志数据处理方法及装置
CN109951494B (zh) 仿真数据处理方法、装置、仿真设备及存储介质
CN111241122A (zh) 任务监测方法、装置、电子设备和可读存储介质
CN111400361A (zh) 数据实时存储方法、装置、计算机设备和存储介质
CN114415973B (zh) 慢盘检测方法、装置、电子设备及存储介质
CN111767957A (zh) 一种日志异常的检测方法、装置、存储介质及电子设备
CN110046188A (zh) 业务处理方法及其系统
CN112433964B (zh) 一种清理缓存脏数据的方法及设备
CN110442439B (zh) 任务进程处理方法、装置和计算机设备
CN113297245A (zh) 获取执行信息的方法及装置
CN108536759B (zh) 一种样本回放数据存取方法及装置
US9286348B2 (en) Dynamic search system
CN110515803B (zh) 针对日志消息的处理方法、装置以及电子设备
CN109508446B (zh) 一种日志处理方法和装置
CN110597603A (zh) 一种分布式排期任务的调度方法与系统
CN113821193A (zh) 一种信息生成的方法、装置和存储介质
CN111143711A (zh) 对象搜索方法及系统
CN117251384B (zh) 一种接口自动化测试用例生成方法及系统
CN117389980B (zh) 日志文件分析方法及装置、计算机设备和可读存储介质
CN113608803A (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