一种容器应用的日志处理方法及系统与流程

文档序号:11216148阅读:210来源:国知局
一种容器应用的日志处理方法及系统与流程

本发明涉及计算机技术领域,具体涉及一种容器应用的日志处理方法及系统。



背景技术:

一台服务器上部署的应用程序将数以百计,服务器上运行的应用程序将记录应用程序相关的日志,即应用程序运行的相关信息以及出错信息,并将记录的日志存储到指定的日志目录,以便程序员查找并分析日志,对应用程序进行相应调试,同时,也便于运维人员基于查找到的日志对系统进行错误排查处理。大的业务系统包括大量服务器,并且每台服务器上运行大量应用程序,程序员或运维人员需要对大量服务器上的大量应用程序的日志进行查找和分析,因此需要投入很大的人力进行日志处理工作,并且耗时长,效率低。

为降低人力成本,提高日志处理工作的效率,现有技术提出了一些日志收集工具,例如log4j,是apache开源的用于应用日志收集的系统,log4j以应用程序作为日志的收集对象,需要在开发的每个应用程序中集成log4j的日志收集客户端模块,收集应用程序的日志,并调用log4j的日志模块,将日志写入到一台统一的日志服务器上。

在容器环境下,应用程序高度密集分布在服务器上,每个应用程序都需要集成log4j的客户端模块并各自工作,将收集的日志写入统一的日志服务器,每个服务器将部署与应用程序相同数量的log4j客户端模块,使服务器负担加重,同时,各个应用程序分别需要进行log4j客户端模块的调用和程序编写,加重了程序员的负担。



技术实现要素:

本发明提供一种容器应用的日志处理方法及系统,用于解决现有技术的日志处理系统对应用服务器造成的负担过重的问题。

本发明实施例的一方面提供了一种容器应用的日志处理方法,包括:

日志收集子系统对应用服务器中多个容器应用的日志目录进行内容检测,所述日志目录用于存储所述容器应用的日志信息;

当检测到所述日志目录存在日志更新时,所述日志收集子系统获取更新的日志信息;

所述日志收集子系统将所述更新的日志信息发送至日志存储子系统;

所述日志存储子系统对所述更新的日志信息进行解析得到日志记录,并存储所述日志记录。

可选的,所述日志记录包括日志生成时间、应用名、容器名和具体日志内容中的一项或多项日志参数信息。

可选的,所述日志存储子系统存储所述日志记录之后,所述方法还包括:

所述日志存储子系统以所述日志参数信息对所述日志记录建立日志索引,并存储所述日志索引。

可选的,所述日志存储子系统存储所述日志索引之后,所述方法还包括:

日志查询服务器通过日志查询网页界面接收用户输入的日志查询指令,所述日志查询指令包括目标日志参数信息;

所述日志查询服务器通过调用日志查询接口从所述日志存储子系统中获取所述日志查询指令对应的目标日志记录,并向用户返回查询结果。

可选的,所述日志收集子系统将所述更新的日志信息发送至日志存储子系统包括:

所述日志收集子系统将所述更新的日志信息发送至消息队列服务器;

所述消息队列服务器对所述更新的日志信息进行缓存;

所述日志存储子系统从所述消息队列服务器中获取所述更新的日志信息。

可选的,所述日志存储子系统包括多台日志存储服务器,所述日志存储子系统存储所述日志记录或者所述日志索引包括:

所述日志存储子系统对所述日志记录或者所述日志索引进行数据分片,得到日志分片或索引分片;

所述日志存储子系统将所述日志分片或索引分片分散的写入所述多台日志存储服务器。

本发明实施例的第二方面提供了一种容器应用的日志处理方法系统,包括日志收集子系统和日志存储子系统;

日志收集子系统用于:

对应用服务器中多个容器应用的日志目录进行内容检测,所述日志目录用于存储所述容器应用的日志信息;

当检测到所述日志目录存在日志更新时,获取更新的日志信息;

将所述更新的日志信息发送至日志存储子系统;

所述日志存储子系统用于:

对所述更新的日志信息进行解析得到日志记录,并存储所述日志记录。

可选的,所述日志记录包括日志生成时间、应用名、容器名和具体日志内容中的一项或多项日志参数信息。

可选的,所述日志存储系统还用于:

以所述日志参数信息对所述日志记录建立日志索引,并存储所述日志索引。

可选的,所述日志处理系统还包括日志查询服务器,所述日志查询服务器用于:

通过日志查询网页界面接收用户输入的日志查询指令,所述日志查询指令包括目标日志参数信息;

通过调用日志查询接口从所述日志存储子系统中获取所述日志查询指令对应的目标日志记录,并向用户返回查询结果。

可选的,所述日志处理系统还包括消息队列服务器,所述消息队列服务器用于:

接收所述日志收集子系统发送的所述更新的日志信息;

对所述更新的日志信息进行缓存;

所述日志存储子系统还用于从所述消息队列服务器中获取所述更新的日志信息。

可选的,所述日志存储子系统包括多台日志存储服务器,所述日志存储子系统具体用于:

对所述日志记录或者所述日志索引进行数据分片,得到日志分片或索引分片;

将所述日志分片或索引分片分散的写入所述多台日志存储服务器。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例可以利用日志收集子系统对应用服务器中多个容器应用的日志目录进行内容检测,当检测到日志目录存在日志更新时,日志收集子系统可以获取到更新的日志信息,之后日志收集子系统可以将更新的日志信息发送到日志存储子系统,日志存储子系统可以对更新的日志信息进行解析得到日志记录,并存储日志记录。由于本发明只需对应用服务器中多个容器应用的日志目录进行内容检测,便能获取该应用服务器中多个容器应用更新的日志信息,并统一上传至日志存储子系统,因此,本发明在一台应用服务器上只需安装一个日志收集子系统,用于检测容器应用的日志目录即可,和现有技术相比,可以减轻服务器的负担,减轻程序员和运维人员的负担。

附图说明

图1是本发明容器应用的日志处理方法一个实施例示意图;

图2是本发明容器应用的日志处理方法另一个实施例示意图;

图3是本发明日志查询服务器提供的日志查询网页界面一个实施例示意图;

图4是本发明日志查询服务器提供的日志查询网页界面另一个实施例示意图;

图5是本发明容器应用的日志处理方法另一个实施例示意图;

图6是本发明容器应用的日志处理系统一个实施例示意图;

图7是本发明容器应用的日志处理系统另一个实施例示意图。

具体实施方式

本发明实施例提供了一种容器应用的日志处理方法及系统,用于在日志处理系统的部署上减少应用服务器的负担。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中容器应用的日志处理方法一个实施例包括:

101、日志收集子系统对应用服务器中多个容器应用的日志目录进行内容检测;

日志处理系统可以包括日志收集子系统,日志收集子系统可以对应用服务器中多个容器应用的日志目录进行内容检测,容器应用的日志记录用于存储容器应用的日志信息。

102、当检测到日志目录存在日志更新时,日志收集子系统获取更新的日志信息;

当日志收集子系统检测到日志目录存在日志更新时,日志收集子系统可以获取更新的日志信息。

103、日志收集子系统将更新的日志信息发送至日志存储子系统;

日志收集子系统获取到容器应用更新的日志信息之后,可以将获取到的更新的日志信息发送至日志存储子系统。

104、日志存储子系统对更新的日志信息进行解析得到日志记录,并存储日志记录。

日志存储子系统可以接收到日志收集子系统发送的更新的日志信息,之后可以对接收到的更新的日志信息进行解析,得到日志记录,并对得到的日志记录进行存储。

本发明实施例可以利用日志收集子系统对应用服务器中多个容器应用的日志目录进行内容检测,当检测到日志目录存在日志更新时,日志收集子系统可以获取到更新的日志信息,之后日志收集子系统可以将更新的日志信息发送到日志存储子系统,日志存储子系统可以对更新的日志信息进行解析得到日志记录,并存储日志记录。由于本发明只需对应用服务器中多个容器应用的日志目录进行内容检测,便能获取该应用服务器中多个容器应用更新的日志信息,并统一上传至日志存储子系统,因此,本发明在一台应用服务器上只需安装一个日志收集子系统,用于检测容器应用的日志目录即可,和现有技术相比,可以减轻服务器的负担,减轻程序员的负担。

日志处理系统还可以包括消息队列服务器和日志查询服务器,请参阅图2,本发明实施例中容器应用的日志处理方法另一个实施例包括:

201、日志收集子系统收集应用服务器中容器应用的日志信息;

本发明可以以服务器为单位部署日志收集模块,也就是说,每一台应用服务器上部署一个日志收集模块,多台应用服务器部署的日志收集模块组成日志收集子系统。日志收集模块将观察指定的日志目录,当指定的日志目录有日志更新时,日志收集模块将自动收集日志。其中,指定的日志目录可以用于存储应用服务器中全部或部分容器应用的日志信息。通过步骤201,日志收集子系统可以同时从多个集群的多台服务器的多个应用收集日志信息。

202、日志收集子系统将日志信息发送至消息队列服务器;

日志收集子系统收集到容器应用的日志信息之后,可以将日志信息发送至消息队列服务器。

203、消息队列服务器对日志收集子系统收集的日志信息进行缓存;

消息队列服务器可以对接收到的日志信息进行缓存。在实际使用中,日志存储子系统与日志收集子系统部署于不同的服务器,通常情况下,会另外提供一台或多台服务器,用于部署日志存储子系统,若日志收集子系统直接将日志信息发送至日志存储子系统中,可能因日志收集子系统和日志存储子系统的速度不匹配而导致日志信息丢失。因此,步骤202和步骤203可以将日志收集子系统和日志存储子系统解耦,实现两个子系统之间的异步化。

优选的,消息队列服务器可以两两组队部署,也就是说,两台服务器作为一组,配置成主从同步模式,实现当主消息队列服务器宕机时,消息队列服务器仍然可以在另一台服务器上正常工作。

204、日志存储子系统获取消息队列服务器中缓存的日志信息;

将日志信息缓存在消息队列服务器之后,日志存储子系统可以获取消息队列服务器中缓存的日志信息存储到日志存储模块中。优选的,日志存储子系统可以监听消息队列服务器,当消息队列服务器存储新的日志信息时,日志存储子系统将从消息队列服务器中获取新的日志信息。

205、日志存储子系统存储日志信息,并解析成日志记录;

日志存储子系统获取到新的日志信息之后,可以存储更新的日志信息,并将日志信息解析成统一格式的日志记录,写入日志存储服务器。

一条日志记录可以包括日志生成时间、应用名、容器名和具体日志内容等字段。1)日志生成时间可以是yy-mm-ddh:m:s的格式,例如2017-01-0901:22:12表示日志记录时在2017年1月9日1点22分12秒生成的。2)应用名为一个最大长度为100个字符的字符串,例如“t3”或“xcmyt”等。3)容器名是一个最大长度为100个字符且有一定命名规则的字符串,可以设定规则为“应用名-10位阿拉伯数字组成的字符串-5位阿拉伯数字和26位小写字母组成字符串”,例如“t3-3486809255-oh7t0”或“xcmyt-1422840873-9n43w”等。4)具体日志内容可以包含日志级别、日志记录所在的程序段的程序名、程序行号,日志描述等子字段,其中,

a)日志级别可以定义“测试、信息、警告、错误、致命”等五个级别,测试级别用于调试应用程序时记录细粒度信息事件;信息级别用于应用运行过程中粗粒度信息事件;告警级别用于潜在错误的记录;错误级别用于记录错误事件,但仍然不影响系统的继续运行;致命级别用于记录严重的错误事件,将会导致应用程序的退出。

b)程序段的程序名表示日志记录所发生的所在程序文件名,例如一个java程序的例子为:com.mysql.jdbc.mysql;例如一个c++程序的例子为:cbox。

c)程序行号:记录日志发生在该程序的多少行,格式可以为n行号,例如n200表示发生在第200行。

d)日志描述:记录具体的日志描述,例如“从/opt/data/1.txt文件读取了第1到23行数据”。

以上描述的日志记录的1个具体例子为:

“2017-01-0901:22:12|xcmyt|xcmyt-1422840873-9n43w|(信息,com.mysql.jdbc.mysql,n123,从/opt/data/1.txt文件读取了第1到23行数据)”,表示2017年1月9日1点22分12秒,xcmyt应用的xcmyt-1422840873-9n43w容器的com.mysql.jdbc.mysql程序的123行生成了一条日志级别为“信息”,具体描述为“从/opt/data/1.txt文件读取了第1到23行数据”的日志记录。

206、日志存储子系统以日志参数信息对存储的日志记录建立日志索引,并存储;

步骤205之后,程序员或运维人员可以在日志存储子系统中查找容器应用的日志记录,进行日志分析。为了加快程序员或运维人员的日志查询速度,日志存储子系统可以对存储的日志记录按需建立日志索引,并对建立的日志索引进行存储。比如,可以以集群名、应用名、容器名、日志时间、关键词等日志参数信息、以查询二叉树等方式建立日志索引,将日志查询时的全记录遍历操作转变为二叉树的快速搜索操作。若日志记录条数为n,通过建立日志索引可将用户查询操作的时间复杂度从原来的o(n)降低为o(logn)。同时,优选的,日志存储子系统可以采用分布式内存架构方式存储日志索引,从而进一步降低日志索引的读取时间。

日志存储子系统可以根据用户输入的查询参数对日志存储子系统中存储的日志记录进行快速查找,查找确定与查询指令相应的日志记录,并将查询结果返回给用户。为了方便日志查询界面和日志存储子系统的分离,使得用户不用在部署着日志存储子系统的服务器上进行日志查询,日志处理系统可以设置日志查询服务器和查询访问接口服务器,以网页服务的方式建立日志查询访问接口,接口的输入参数可以包括集群名、应用名、容器名、日志起始时间、日志结束时间和关键词等字段,输出为1条或多条日志记录,为用户提供易用的网页界面,快速查询日志记录,降低日志处理工作量。具体的,请参阅如下步骤207至步骤209。

207、日志查询服务器为用户提供日志查询网页界面,并接收用户输入的日志查询指令;

日志查询服务器可以为用户提供日志查询网页界面,对应于日志存储子系统中存储的日志记录以及查询访问接口服务器的输入参数,日志查询网页界面可以为用户提供集群名、应用名、容器名、日志起始时间、日志结束时间等筛选选项,并支持用户进行自定义关键词查询,用户在日志查询网页界面选择目标日志参数信息后可以下达日志查询指令,日志查询服务器可以接收到用户输入的日志查询指令,接收到的日志查询指令包括需要查找的目标日志记录的目标日志参数信息。

208、日志查询服务器调用日志查询接口在日志存储子系统中获取日志查询指令对应的目标日志记录;

日志查询服务器接收到用户输入的日志查询指令之后,可以调用查询访问接口服务器的日志查询接口,向日志存储子系统发送数据读取请求,数据读取请求中包括接口的输入参数的取值,输入参数的取值与日志查询指令中的目标日志参数信息相对应,日志存储子系统根据数据读取请求中的输入参数查找相应的目标日志索引,之后通过目标日志索引查询相应的目标日志记录,并通过日志查询接口向日志查询服务器返回目标日志记录,之后日志查询服务器可以在日志存储子系统中获取日志查询指令对应的目标日志记录,将获取到的一条或多条目标日志记录展示在日志查询网页界面上。

209、日志查询服务器向用户返回查询结果。

日志查询服务器获取到日志查询指令对应的目标日志记录之后,可以向用户返回查询结果,将获取到的一条或多条目标日志记录展示在日志查询网页界面上。

为了举例说明步骤207至步骤209,假设日志查询服务器提供的日志查询网页界面如图3所示,框1内为日志查询网页界面,框2、框3、框4、框5、框6分别为集群名、应用名、容器名、日志时间范围、关键词的筛选选项,具体的筛选选项可以由用户自定义填入,也可以为用户提供包括多个可选项的下拉菜单,由用户选择以选定筛选参数,在日志查询界面上,通过下拉框选择一个最近的时间范围。例如,日志时间范围的筛选选项,可以为用户提供2分钟内、5分钟内、30分钟内等的可选时间范围,可以由用户自定义时间范围,自定义时间范围支持输入到目前为止的任意时间段,精确到秒。框7为查询按钮,当用户选择好上述筛选条件之后,可以选择框7,此时日志查询服务器可以将以上选择的服务器集群、应用实例名、容器名、时间范围、关键词封装成请求包,通过日志查询接口调用,将请求包发送至日志存储子系统。之后日志查询服务器可以获取日志存储服务器中与请求包中筛选信息相匹配的查询结果包,并对查询结果包进行解析,解析得到日志查询结果,并展示在日志查询界面的框8中。

由于应用服务器中的容器应用不断生成新的日志信息,因此日志存储子系统中存储的日志记录在不断更新,为了方便用户看到实时更新的日志查询结果,日志查询服务器可以向用户提供自动滚屏刷新功能选项,如框9所示,当用户选择框9时,日志查询服务器可以实时、或者没隔一定时长便调用日志查询接口,将请求包发送至日志存储子系统,以获取更新的日志查询结果。

日志查询网页界面返回日志查询结果后,用户可以对日志查询结果中的日志记录进行分析,当用户找到需要重点分析的日志记录时,很多情况下希望能查看与该日志记录相关联的其他日志记录,比如该条日志记录的前后多行日志记录,因此,本发明日志查询网页界面,即图3的框1中,可以包括关联查询选项,如图4中的框10,用户希望查看某条日志记录的关联日志记录时,可以选择展开该条日志记录,此时,日志查询服务器可以根据用户的指令显示关联日志记录窗口界面,如图4中的框10,可以支持用户选择关联日志记录的行数,在接收到用户的查询指令后,可以将选择的日志记录以及前/后日志记录的行数等信息封装成请求包,通过日志查询接口调用,将请求包发送至日志存储子系统。之后日志查询服务器可以获取日志存储服务器中与请求包中筛选信息相匹配的查询结果包,并对查询结果包进行解析,解析得到日志查询结果,并展示在日志查询界面中。

在实际使用中,优选的,日志处理系统可以设置多台日志接口服务器,优选的,可以在每台日志接口服务器上部署一个日志查询接口,由于日志查询接口的无状态特性,即多次查询操作之间没有关联,当部分日志接口服务器宕机时,其他日志接口服务器可继续承载日志查询服务,从而实现日志查询接口的高可靠性。

优选的,日志处理系统可以设置多台日志查询服务器,并在每台日志查询服务器上部署一个日志查询界面,由于日志查询界面也具有无状态特性,当部分日志查询服务器宕机时,其他日志查询服务器可以继续承载日志查询界面,从而实现日志查询界面的高可靠性。

关于图2对应的实施例,日志存储子系统可以存储日志记录和日志索引,为了实现日志存储子系统的高性能、高可靠性和易扩展性,请参阅图5,日志存储子系统的信息读写方法一个实施例包括:

501、从至少两台日志存储服务器中选举主节点;

高性能的日志存储子系统通常包括多台日志存储服务器,多台日志存储服务器可以为无中心架构,通过选举机制可以从中选举一个主节点来管理其他日志存储服务器。多台日志存储服务器之间会保留心跳检查机制,比如每隔10~30秒的心跳检查机制,当选举出来的主节点宕机时,日志存储子系统中的其他日志存储服务器能够通过心跳检查机制发现主节点宕机事件,并重新选举新的主节点。

502、当接收对日志记录或日志索引的写入指令时,利用主节点对日志记录或日志索引进行数据分片得到日志分片或索引分片;

日志存储子系统可以设置有日志存储写入服务器,当日志存储子系统接收对日志记录或日志索引的写入指令时,日志存储写入服务器可以访问日志存储服务器中的主节点,主节点可以控制日志记录或日志索引在日志存储服务器中的存储。

优选的,主节点可以对待写入的日志记录或日志索引进行数据分片,得到日志分片或索引分片。日志记录和索引记录可以按照一个设定的分片数量进行分片,例如日志记录有10gb,日志索引有20gb,日志存储服务器台数为m(m≥1),可以设定日志记录分片数为2m,日志索引分片为4m,则日志记录将在每个日志存储服务器有2个分片,而日志索引将在每个日志存储服务器有4个分片。

503、将日志分片或索引分片分散的写入各个日志存储服务器;

主节点得到日志分片或索引分片之后,可以将日志分片或索引分片写入各个日志存储服务器,优选的,可以将数据分片分散存储在多个日志存储服务器上,进行数据查询时,查询动作将同时发生在多台日志存储服务器上,实现多台服务器的同时并发操作,从而加快数据查询速度。

另外,针对日志索引的存储,由于数据查询时,根据二八原理,也就是重要的少数与琐碎的多数,用户经常需要查看的日志记录只占所有存储的日志记录中的一小部分,因此,优选的,可以将这部分经常查询的日志记录对应的日志索引存储在内存中,而其他日志索引存储在磁盘中,由于内存的读写效率通常比磁盘高1000倍,所以通过这种方式,可以大幅度提升重要数据的查询速度。

504、对日志存储服务器存储的日志分片或索引分片进行复制,并将复制得到的日志分片或索引分片写入其他日志存储服务器;

主节点进行数据分片之后,可以对分片数据进行复制。可以在对数据分片进行存储之前进行复制操作,也可以在数据分片的存储之后进行复制操作。在本发明实施例中,以后者为例进行说明。主节点将日志分片或索引分片写入各个日志存储服务器之后,可以对各个日志存储服务器存储的日志分片或索引分片进行复制,并将复制得到的日志分片或索引分片写入其他日志存储服务器中,以使得同一数据分片内容备份在多个日志存储服务器中。例如设定复制数为n(n<m)(在此,若m=1,则n=0,那么复制份数只能取0),则每个分片将复制n份,并按照一个平衡策略尽量分散存储在多台日志存储服务器上,通过对日志分片或索引分片进行复制以及分散存储,可以加快数据查询的速度,同时还可以提高数据存储的可靠性,当某份数据分片因为系统原因(例如服务器宕机或数据异常)丢失时,可以利用其他日志存储服务器中的备份数据进行数据分片的恢复。

505、当接收对目标日志索引的读取指令时,利用主节点读取目标日志索引的各个分片索引;

日志存储子系统可以设置有日志存储读取服务器,当日志存储子系统接收对目标日志索引的读取指令时,日志存储读取服务器可以访问日志存储服务器中的主节点,主节点可以读取目标日志索引对应的所有索引分片。

506、通过目标日志索引查找对应的日志分片,从而得到目标索引对应的目标日志记录。

主节点找到目标日志索引之后,可以通过目标日志索引查找对应的目标日志记录的所有日志分片,从而获取到目标日志记录。

在本发明实施例的日志处理方法,解决传统技术需要在一台服务器上为多个应用程序部署对应数量的日志收集客户端模块的问题,同时减轻了程序员需要针对日志收集编写代码的工作量。其次,提出一种集中查询的方法与系统,针对服务器和应用程序数量很多的容器应用场景,实现一个集中存储日志和查询的日志处理系统,实现一个类似搜索引擎的日志集中查询界面,支持基于集群、应用、容器、时间、关键词等多个维度进行日志快速查询,解决程序员或运维人员需要查看或分析的服务器和日志数量庞大,需要投入很大的人力进行日志处理的工作量问题。

上面对本发明实施例中的容器应用的日志处理方法进行了描述,下面对本发明实施例中的容器应用的日志处理系统进行描述。

请参阅图6,本发明实施例中日志处理系统的一个实施例包括:

日志收集子系统601和日志存储子系统602;

日志收集子系统601用于:

对应用服务器中多个容器应用的日志目录进行内容检测,日志目录用于存储容器应用的日志信息;

当检测到日志目录存在日志更新时,获取更新的日志信息;

将更新的日志信息发送至日志存储子系统;

日志存储子系统602用于:

对更新的日志信息进行解析得到日志记录,并存储日志记录。

请参阅图7,本发明实施例中日志处理系统的另一个实施例包括:

日志收集子系统701、消息队列服务器702、日志存储子系统703、日志查询服务器704以及接口服务器705。

其中,日志收集子系统701集成于应用服务器7011,日志收集子系统701用于:

对应用服务器中多个容器应用的日志目录进行内容检测,日志目录用于存储容器应用的日志信息;

当检测到日志目录存在日志更新时,获取更新的日志信息;

将更新的日志信息发送至日志存储子系统。

消息队列服务器702用于:

接收日志收集子系统发送的更新的日志信息;

对更新的日志信息进行缓存。

日志存储子系统703用于:

从消息队列服务器中获取更新的日志信息;

对更新的日志信息进行解析得到日志记录,并存储日志记录;

以日志参数信息对日志记录建立日志索引,并存储日志索引。

日志存储子系统包括多台日志存储服务器7031(本发明实施例中以三台日志存储服务器为例),日志存储子系统703具体用于:

对日志记录或者日志索引进行数据分片,得到日志分片或索引分片;

将日志分片或索引分片分散的写入多台日志存储服务器。

日志查询子系统704用于:

通过日志查询网页界面接收用户输入的日志查询指令,日志查询指令包括目标日志参数信息;

通过调用日志查询接口从日志存储子系统中获取日志查询指令对应的目标日志记录,并向用户返回查询结果。

接口服务器705用于为日志查询子系统704提供日志查询接口。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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