一种日志数据处理的方法、电子设备和可读存储介质与流程

文档序号:12917429阅读:246来源:国知局
一种日志数据处理的方法、电子设备和可读存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种日志数据处理的方法、电子设备和可读存储介质。



背景技术:

随着大数据时代的到来,诸如智能设备、云计算和物联网等的课题革新成为互联网技术行业新的技术革命。其中,日志数据作为各种智能设备的信息输出,是人与机器之间联系的重要渠道。

随着计算机技术的迅猛发展,各类应用系统产生的日志数据呈现指数式的增长,如何从海量的日志数据中及时发现有价值的信息已经成为当前研究的重要课题。

目前,处理海量数据的技术不断成长和创新,但是主要的技术手段仍集中在linux操作系统下,linux操作系统是基于unix操作系统发展而来的系统,相比之下,windows系统的分布更为广泛,所包括的应用程序及生成的日志规模也更为巨大,对windows系统的日志的分析具有更重大的价值和意义。但是,对于windows系统来说,日志数据分析存在跨操作系统的障碍,如何实现高效的跨系统收集日志数据是进行日志数据分析的前提。

系统日志(英文:syslog)协议是在网络之间互连协议(英文:internetprotocol,缩写:ip)网络中转发系统日志数据的工业标准协议。日志工具rsyslog作为日志采集工具,扩展了syslog协议,可用于监控本地日志并通过网络转发数据。基于此,本发明的发明人发现,rsyslog只能处理单一日志文件,不能监控多源日志文件,在大量的日志管理任务场景下缺乏灵活性和扩展性。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

有鉴于此,本发明要解决的技术问题是,如何提供一种日志数据处理的方法、电子设备和可读存储介质能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务的灵活性和扩展性。

为解决以上技术问题,本发明在第一方面提供一种日志数据处理的方法,包括:

持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生;

当有新的日志数据产生时,读取所述新的日志数据,在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式;

通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

在一种可能的实现方式中,所述持续监听第一操作系统所在的第一服务器下的目标日志文件包括:

同时独立监听第一操作系统所在的第一服务器下的多个目标文件夹,对所述多个目标文件夹作并行处理,并根据配置监听所述多个目标文件夹中特定类型的目标日志文件。

在一种可能的实现方式中,所述读取所述新的日志数据包括:

获取新的日志数据产生的目标日志文件的列表、所述新的日志数据产生的目标日志文件的上次终止位置和所述新的日志数据产生的目标日志文件的本次终止位置;

从所述新的日志数据产生的目标日志文件的上次终止位置逐行读取日志数据,直到所述新的日志数据产生的目标日志文件的本次终止位置。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:

当数据传输发生错误时,动态设定socket重联的启动时间,所述

socket重联的启动时间随所述错误的次数增加而增加。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:

当数据传输发生错误时,返回到错误发生前的所述转化后的待传输日志数据的数据终止节点,并从所述数据终止节点开始,重新将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

由此,本发明提供的一种日志数据处理的方法能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务灵活性和扩展性,为快速发现操作系统和应用程序问题、提升服务效率提供可行的解决方案。

为解决以上技术问题,本发明在第二方面提供一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行:

持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生;

当有新的日志数据产生时,读取所述新的日志数据,在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式;

通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

在一种可能的实现方式中,所述持续监听第一操作系统所在的第一服务器下的目标日志文件包括:

同时独立监听第一操作系统所在的第一服务器下的多个目标文件夹,对所述多个目标文件夹作并行处理,并根据配置监听所述多个目标文件夹中特定类型的目标日志文件。

在一种可能的实现方式中,所述读取所述新的日志数据包括:

获取新的日志数据产生的目标日志文件的列表、所述新的日志数据产生的目标日志文件的上次终止位置和所述新的日志数据产生的目标日志文件的本次终止位置;

从所述新的日志数据产生的目标日志文件的上次终止位置逐行读取日志数据,直到所述新的日志数据产生的目标日志文件的本次终止位置。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:

当数据传输发生错误时,动态设定socket重联的启动时间,所述socket重联的启动时间随所述错误的次数增加而增加。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:

当数据传输发生错误时,返回到错误发生前的所述转化后的待传输日志数据的数据终止节点,并从所述数据终止节点开始,重新将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

由此,本发明提供的一种电子设备能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务灵活性和扩展性,为快速发现操作系统和应用程序问题、提升服务效率提供可行的解决方案。

为解决以上技术问题,本发明在第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于:

持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生;

当有新的日志数据产生时,读取所述新的日志数据,在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式;

通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

在一种可能的实现方式中,所述持续监听第一操作系统所在的第一服务器下的目标日志文件包括:

同时独立监听第一操作系统所在的第一服务器下的多个目标文件夹,对所述多个目标文件夹作并行处理,并根据配置监听所述多个目标文件夹中特定类型的目标日志文件。

在一种可能的实现方式中,所述读取所述新的日志数据包括:

获取新的日志数据产生的目标日志文件的列表、所述新的日志数据产生的目标日志文件的上次终止位置和所述新的日志数据产生的目标日志文件的本次终止位置;

从所述新的日志数据产生的目标日志文件的上次终止位置逐行读取日志数据,直到所述新的日志数据产生的目标日志文件的本次终止位置。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:

当数据传输发生错误时,动态设定socket重联的启动时间,所述

socket重联的启动时间随所述错误的次数增加而增加。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:

当数据传输发生错误时,返回到错误发生前的所述转化后的待传输日志数据的数据终止节点,并从所述数据终止节点开始,重新将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

由此,本发明提供的非暂态计算机可读存储介质能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务灵活性和扩展性,为快速发现操作系统和应用程序问题、提升服务效率提供可行的解决方案。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出本发明实施例提供的一种日志数据处理的方法的流程图;

图2示出本发明实施例提供的一种日志数据处理的方法的流程图;

图3示出本发明实施例提供的一种日志数据处理的方法的流程图;

图4示出本发明实施例提供的电子设备的硬件结构示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件未作详细描述,以便于凸显本发明的主旨。

实施例1

图1示出本发明实施例提供的一种日志数据处理的方法的流程图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群等。如图所示,该方法包括:

步骤s1、持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生。

步骤s2、当有新的日志数据产生时,读取所述新的日志数据。

步骤s3、在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式。

步骤s4、通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

套接字(英文:socket)是支持tcp/ip的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。

由此,本发明实施例提供的一种日志数据处理的方法,能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务灵活性和扩展性,为快速发现操作系统和应用程序问题、提升服务效率提供可行的解决方案。

实施例2

图2示出本发明实施例提供的一种日志数据处理的方法的流程图,如图所示,该方法包括:

步骤s1、持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生。本步骤可以具体包括:

步骤s11、同时独立监听第一操作系统所在的第一服务器下的多个目标文件夹,对所述多个目标文件夹作并行处理,并根据配置监听所述多个目标文件夹中特定类型的目标日志文件。

定期扫描文件内容,记录当前监听的文件列表、各文件的字节数和文件终止位置。由此,能够在不同类型的日志文件中过滤指定的日志文件类型。

步骤s12、当有新的日志数据产生时,文件夹字节数将发生变化,当最新扫描记录的字节数与记录的历史最新字节数不同时,表示有新的日志数据产生。

所述的新日志数据包括目标文件夹里新生成的日志文件或已有日志文件中新生成的日志记录。

步骤s2、当有新的日志数据产生时,读取所述新的日志数据。

在一种可能的实现方式中,本步骤可以具体包括:

步骤s21、获取新的日志数据产生的目标日志文件的列表、所述新的日志数据产生的目标日志文件的上次终止位置和所述新的日志数据产生的目标日志文件的本次终止位置。

步骤s22、从所述新的日志数据产生的目标日志文件的上次终止位置逐行读取日志数据,直到所述新的日志数据产生的目标日志文件的本次终止位置。

步骤s3、在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式。

在一种可能的实现方式中,可以在所述新的日志数据中添加所述第一服务器的代码、配置标识和日志数据格式以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式。其中,配置标识用于区分所述第一服务器下用于不同目标的日志,可用信息摘要算法5(英文:message-digestalgorithm5,缩写:md5)的方式生成唯一标识符,日志数据格式,用于进行格式校验和日志解析。

步骤s4、通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

在一种可能的实现方式中,本步骤可以具体包括:

步骤s41、当数据传输发生错误时,动态设定socket重联的启动时间,所述socket重联的启动时间随所述错误的次数增加而增加。

步骤s42、当数据传输发生错误时,返回到错误发生前的所述转化后的待传输日志数据的数据终止节点,并从所述数据终止节点开始,重新将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。由此,设置socket组件的断线重联机制,保证数据传输的完整性和一致性。

由此,本发明实施例提供的一种日志数据处理的方法,能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务灵活性和扩展性,能够在不同类型的日志文件中过滤指定的日志文件类型,并且能够设置socket组件的断线重联机制,保证数据传输的完整性和一致性。

实施例3

图3示出本发明实施例提供的一种日志数据处理的方法的流程图,如图所示,该方法包括:

步骤s1、持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生。

在一种可能的实现方式中,第一操作系统可以为windows操作系统。

日志数据收集系统配指定所需监听的windows系统所在的服务器a下的目标日志文件夹和文件类型。

在一种可能的实现方式中,可以在服务器a下启动监听模块,监听模块定期扫描配置好的目标日志文件,记录监听的文件列表,文件字节数和文件终止位置,存储为info_latest。info_latest包含3列信息,分别是文件id(file_id),文件字节数(file_bytes),文件终止位置(file_endlocation)。

监听模块对比上次扫描的记录结果info_last与本次扫描结果info_latest,按下述方式生成新日志数据的文件信息info_new,info_new中包含3列信息,分别是file_id,file_last_endlocation,file_latest_endlocation。

步骤s2、当有新的日志数据产生时,读取所述新的日志数据。

info_new的生成方式可以包括:

当某一监听文件(file_id=x)同时在info_last和info_latest中且info_latest中该文件的字节数大于info_last中记录的字节数时,info_new将记录该文件的信息,其中file_id=x,file_last_endlocation是info_last中文件x的file_endlocation,file_latest_endlocation是info_latest中文件x的file_endlocation。

当某一监听文件(file_id=y)仅出现在info_latest中时,info_new将记录该文件的信息,其中file_id=y,file_last_endlocation是0,file_latest_endlocation是info_latest中文件y的file_endlocation。

对于其他情况,系统视为日志文件未发生变化,info_new不记录。

当监听模块探知指定的监听文件发生变化时,启动数据读取模块,同时监听模块将info_new传送给数据读取模块,并更新系统中记录的监听信息至最新状态,即用info_latest替换info_last。

步骤s3、在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式。

数据读取模块对info_new中的任一文件z,从文件z上次扫描记录的终止位置(file_last_endlocation)逐行读取数据直到本次扫描记录的文件终止位置(file_latest_endlocation)。对每行日志数据,数据读取模块将添加服务器主机名和配置的标识到原始日志数据,把日志数据转化为syslog格式。对于新生成的日志文件,数据读取模块将从文件的起始位置开始读取。

步骤s4、通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

本发明实施例设置了socket组件的断线重联机制。当socket数据传输过程发生错误时,系统将获取该错误信息,并启动socket重联机制。socket重联的启动时间根据系统的机制会随着socket错误的次数增加而增加。

当socket出现错误重联时,系统会回到错误发生前的数据终止节点,并从该数据节点开始重新开始数据传输,保证数据的完整性和一致性。

步骤s5、在接收数据的第二服务器上,启动数据接收模块,通过flume监听socket发送数据的目标端口,实时接收数据传输模块所发送的日志数据。

flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统,flume支持在日志系统中定制各类数据发送方,用于收集数据。在接收数据的第二服务器上,启动数据接收模块,通过flume监听socket发送数据的目标端口,实时接收数据传输模块所发送的日志数据,在一种可能的实现方式中,还可以根据接收的日志格式对日志数据进行相应的解析。

在一种可能的实现方式中,接收数据的第二服务器可以为linux系统所在的服务器。本实施例以第一操作系统为windows系统,第二操作系统为linux系统为例进行说明,但本发明的实现方式并不限于此,本发明的实现方式也可以包括诸如第一操作系统为linux系统,第二操作系统为windows系统等多种实现方式。

由此,本发明实施例提供的一种日志数据处理的方法,能够监控多源日志文件,并实现多源日志数据的跨系统转发,提高业务灵活性和扩展性,为快速发现操作系统和应用程序问题、提升服务效率提供可行的解决方案。

实施例4

图4示出本发明实施例提供的电子设备的硬件结构示意图,如图4所示,该设备包括:一个或多个处理器410以及存储器420,图4中以一个处理器410为例。该电子设备还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。输入装置430可接收输入的数字或字符信息,以及产生与功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行:持续监听第一操作系统所在的第一服务器下的目标日志文件,根据所述目标日志文件的列表、所述目标日志文件的字节数的变化来判断是否有新的日志数据产生;当有新的日志数据产生时,读取所述新的日志数据,在所述新的日志数据中添加所述第一服务器的代码和配置标识以形成待传输日志数据,并将所述待传输日志数据转化为系统日志syslog协议的格式;通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

在一种可能的实现方式中,所述持续监听第一操作系统所在的第一服务器下的目标日志文件包括:同时独立监听第一操作系统所在的第一服务器下的多个目标文件夹,对所述多个目标文件夹作并行处理,并根据配置监听所述多个目标文件夹中特定类型的目标日志文件。

在一种可能的实现方式中,所述读取所述新的日志数据包括:获取新的日志数据产生的目标日志文件的列表、所述新的日志数据产生的目标日志文件的上次终止位置和所述新的日志数据产生的目标日志文件的本次终止位置;从所述新的日志数据产生的目标日志文件的上次终止位置逐行读取日志数据,直到所述新的日志数据产生的目标日志文件的本次终止位置。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:当数据传输发生错误时,动态设定socket重联的启动时间,所述socket重联的启动时间随所述错误的次数增加而增加。

在一种可能的实现方式中,所述通过套接字socket将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口包括:当数据传输发生错误时,返回到错误发生前的所述转化后的待传输日志数据的数据终止节点,并从所述数据终止节点开始,重新将转化后的待传输日志数据发送至第二操作系统所在的第二服务器的指定端口。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

实施例5

本发明实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的方法并实现相应的效果。

以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1