CN107239382A - 一种容器应用的日志处理方法及*** - Google Patents
一种容器应用的日志处理方法及*** Download PDFInfo
- Publication number
- CN107239382A CN107239382A CN201710487826.9A CN201710487826A CN107239382A CN 107239382 A CN107239382 A CN 107239382A CN 201710487826 A CN201710487826 A CN 201710487826A CN 107239382 A CN107239382 A CN 107239382A
- Authority
- CN
- China
- Prior art keywords
- log
- daily record
- record storage
- information
- query
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种容器应用的日志处理方法及***,用于解决现有技术的日志处理***对应用服务器造成的负担过重的问题。本发明实施例方法包括:日志收集子***对应用服务器中多个容器应用的日志目录进行内容检测,日志目录用于存储容器应用的日志信息;当检测到日志目录存在日志更新时,日志收集子***获取更新的日志信息;日志收集子***将更新的日志信息发送至日志存储子***;日志存储子***对更新的日志信息进行解析得到日志记录,并存储日志记录。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种容器应用的日志处理方法及***。
背景技术
一台服务器上部署的应用程序将数以百计,服务器上运行的应用程序将记录应用程序相关的日志,即应用程序运行的相关信息以及出错信息,并将记录的日志存储到指定的日志目录,以便程序员查找并分析日志,对应用程序进行相应调试,同时,也便于运维人员基于查找到的日志对***进行错误排查处理。大的业务***包括大量服务器,并且每台服务器上运行大量应用程序,程序员或运维人员需要对大量服务器上的大量应用程序的日志进行查找和分析,因此需要投入很大的人力进行日志处理工作,并且耗时长,效率低。
为降低人力成本,提高日志处理工作的效率,现有技术提出了一些日志收集工具,例如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-dd h:m:s的格式,例如2017-01-09 01: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-09 01: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,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种容器应用的日志处理方法,其特征在于,包括:
日志收集子***对应用服务器中多个容器应用的日志目录进行内容检测,所述日志目录用于存储所述容器应用的日志信息;
当检测到所述日志目录存在日志更新时,所述日志收集子***获取更新的日志信息;
所述日志收集子***将所述更新的日志信息发送至日志存储子***;
所述日志存储子***对所述更新的日志信息进行解析得到日志记录,并存储所述日志记录。
2.根据权利要求1所述的容器应用的日志处理方法,其特征在于,所述日志记录包括日志生成时间、应用名、容器名和具体日志内容中的一项或多项日志参数信息。
3.根据权利要求2所述的容器应用的日志处理方法,其特征在于,所述日志存储子***存储所述日志记录之后,所述方法还包括:
所述日志存储子***以所述日志参数信息对所述日志记录建立日志索引,并存储所述日志索引。
4.根据权利要求3所述的容器应用的日志处理方法,其特征在于,所述日志存储子***存储所述日志索引之后,所述方法还包括:
日志查询服务器通过日志查询网页界面接收用户输入的日志查询指令,所述日志查询指令包括目标日志参数信息;
所述日志查询服务器通过调用日志查询接口从所述日志存储子***中获取所述日志查询指令对应的目标日志记录,并向用户返回查询结果。
5.根据权利要求1至4中任一项所述的容器应用的日志处理方法,其特征在于,所述日志收集子***将所述更新的日志信息发送至日志存储子***包括:
所述日志收集子***将所述更新的日志信息发送至消息队列服务器;
所述消息队列服务器对所述更新的日志信息进行缓存;
所述日志存储子***从所述消息队列服务器中获取所述更新的日志信息。
6.根据权利要求5所述的容器应用的日志处理方法,其特征在于,所述日志存储子***包括多台日志存储服务器,所述日志存储子***存储所述日志记录或者所述日志索引包括:
所述日志存储子***对所述日志记录或者所述日志索引进行数据分片,得到日志分片或索引分片;
所述日志存储子***将所述日志分片或索引分片分散的写入所述多台日志存储服务器。
7.一种容器应用的日志处理***,其特征在于,包括日志收集子***和日志存储子***;
日志收集子***用于:
对应用服务器中多个容器应用的日志目录进行内容检测,所述日志目录用于存储所述容器应用的日志信息;
当检测到所述日志目录存在日志更新时,获取更新的日志信息;
将所述更新的日志信息发送至日志存储子***;
所述日志存储子***用于:
对所述更新的日志信息进行解析得到日志记录,并存储所述日志记录。
8.根据权利要求7所述的容器应用的日志处理***,其特征在于,所述日志记录包括日志生成时间、应用名、容器名和具体日志内容中的一项或多项日志参数信息。
9.根据权利要求8所述的容器应用的日志处理***,其特征在于,所述日志存储***还用于:
以所述日志参数信息对所述日志记录建立日志索引,并存储所述日志索引。
10.根据权利要求9所述的容器应用的日志处理***,其特征在于,所述日志处理***还包括日志查询服务器,所述日志查询服务器用于:
通过日志查询网页界面接收用户输入的日志查询指令,所述日志查询指令包括目标日志参数信息;
通过调用日志查询接口从所述日志存储子***中获取所述日志查询指令对应的目标日志记录,并向用户返回查询结果。
11.根据权利要求7至10中任一项所述的容器应用的日志处理***,其特征在于,所述日志处理***还包括消息队列服务器,所述消息队列服务器用于:
接收所述日志收集子***发送的所述更新的日志信息;
对所述更新的日志信息进行缓存;
所述日志存储子***还用于从所述消息队列服务器中获取所述更新的日志信息。
12.根据权利要求11所述的容器应用的日志处理***,其特征在于,所述日志存储子***包括多台日志存储服务器,所述日志存储子***具体用于:
对所述日志记录或者所述日志索引进行数据分片,得到日志分片或索引分片;
将所述日志分片或索引分片分散的写入所述多台日志存储服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710487826.9A CN107239382A (zh) | 2017-06-23 | 2017-06-23 | 一种容器应用的日志处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710487826.9A CN107239382A (zh) | 2017-06-23 | 2017-06-23 | 一种容器应用的日志处理方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107239382A true CN107239382A (zh) | 2017-10-10 |
Family
ID=59987954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710487826.9A Pending CN107239382A (zh) | 2017-06-23 | 2017-06-23 | 一种容器应用的日志处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107239382A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766497A (zh) * | 2017-10-19 | 2018-03-06 | 北京京东尚科信息技术有限公司 | 基于容器的数据收集的方法及终端 |
CN107766512A (zh) * | 2017-10-23 | 2018-03-06 | 中国联合网络通信集团有限公司 | 一种日志数据存储方法和日志数据存储*** |
CN108132868A (zh) * | 2018-01-15 | 2018-06-08 | 政采云有限公司 | 一种数据监控方法、装置、计算设备及存储介质 |
CN108170573A (zh) * | 2017-12-15 | 2018-06-15 | 珠海金山网络游戏科技有限公司 | 一种移动终端日志的循环擦写方法及*** |
CN108446203A (zh) * | 2018-03-20 | 2018-08-24 | 万帮充电设备有限公司 | 服务器事务日志处理方法及装置 |
CN108762984A (zh) * | 2018-05-23 | 2018-11-06 | 杭州宏杉科技股份有限公司 | 一种连续性数据备份的方法及装置 |
CN110096485A (zh) * | 2019-03-18 | 2019-08-06 | 平安普惠企业管理有限公司 | 日志查询方法、装置、计算机设备及存储介质 |
WO2019161551A1 (zh) * | 2018-02-24 | 2019-08-29 | 黄裕才 | 基于logrotate技术的日志处理方法 |
CN110245059A (zh) * | 2019-05-20 | 2019-09-17 | 平安普惠企业管理有限公司 | 一种数据处理方法、设备及存储介质 |
CN110287154A (zh) * | 2019-06-06 | 2019-09-27 | 郑州阿帕斯科技有限公司 | 容器日志的查询方法及装置 |
CN110399357A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种集中管理大数据组件日志的方法、装置及*** |
CN110611592A (zh) * | 2019-09-20 | 2019-12-24 | 中国联合网络通信集团有限公司 | 日志记录方法及设备 |
CN110688355A (zh) * | 2018-06-19 | 2020-01-14 | 北京京东尚科信息技术有限公司 | 变更容器状态的方法和装置 |
CN111046011A (zh) * | 2019-11-27 | 2020-04-21 | 中科曙光国际信息产业有限公司 | 日志收集方法、***、节点、电子设备及可读存储介质 |
CN111061721A (zh) * | 2018-10-16 | 2020-04-24 | 成都鼎桥通信技术有限公司 | 数据处理方法及装置 |
CN111324606A (zh) * | 2020-01-23 | 2020-06-23 | 北京恒华伟业科技股份有限公司 | 数据分片的方法及装置 |
CN111694793A (zh) * | 2020-06-12 | 2020-09-22 | 北京金山云网络技术有限公司 | 一种日志存储方法、装置及日志查询方法、装置 |
CN112363905A (zh) * | 2021-01-13 | 2021-02-12 | 北京云真信科技有限公司 | 一种应用日志收集*** |
CN113094348A (zh) * | 2021-03-19 | 2021-07-09 | 北京达佳互联信息技术有限公司 | 日志管理方法及装置 |
US20220004480A1 (en) * | 2019-06-28 | 2022-01-06 | Boe Technology Group Co., Ltd. | Log data collection method, log data collection device, storage medium, and log data collection system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197700A (zh) * | 2006-12-05 | 2008-06-11 | 阿里巴巴公司 | 提供日志服务的方法及*** |
WO2016134072A1 (en) * | 2015-02-20 | 2016-08-25 | Threatstop, Inc. | Normalization and extraction of log data |
-
2017
- 2017-06-23 CN CN201710487826.9A patent/CN107239382A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197700A (zh) * | 2006-12-05 | 2008-06-11 | 阿里巴巴公司 | 提供日志服务的方法及*** |
WO2016134072A1 (en) * | 2015-02-20 | 2016-08-25 | Threatstop, Inc. | Normalization and extraction of log data |
Non-Patent Citations (2)
Title |
---|
仇臣: "Docker容器的性能监控和日志服务的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
奥凯恩M.杰森: "《机器人操作***浅析》", 30 September 2016 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766497A (zh) * | 2017-10-19 | 2018-03-06 | 北京京东尚科信息技术有限公司 | 基于容器的数据收集的方法及终端 |
CN107766512A (zh) * | 2017-10-23 | 2018-03-06 | 中国联合网络通信集团有限公司 | 一种日志数据存储方法和日志数据存储*** |
CN107766512B (zh) * | 2017-10-23 | 2021-02-02 | 中国联合网络通信集团有限公司 | 一种日志数据存储方法和日志数据存储*** |
CN108170573A (zh) * | 2017-12-15 | 2018-06-15 | 珠海金山网络游戏科技有限公司 | 一种移动终端日志的循环擦写方法及*** |
CN108132868A (zh) * | 2018-01-15 | 2018-06-08 | 政采云有限公司 | 一种数据监控方法、装置、计算设备及存储介质 |
WO2019161551A1 (zh) * | 2018-02-24 | 2019-08-29 | 黄裕才 | 基于logrotate技术的日志处理方法 |
CN108446203A (zh) * | 2018-03-20 | 2018-08-24 | 万帮充电设备有限公司 | 服务器事务日志处理方法及装置 |
CN108762984A (zh) * | 2018-05-23 | 2018-11-06 | 杭州宏杉科技股份有限公司 | 一种连续性数据备份的方法及装置 |
CN110688355A (zh) * | 2018-06-19 | 2020-01-14 | 北京京东尚科信息技术有限公司 | 变更容器状态的方法和装置 |
CN111061721A (zh) * | 2018-10-16 | 2020-04-24 | 成都鼎桥通信技术有限公司 | 数据处理方法及装置 |
CN110096485A (zh) * | 2019-03-18 | 2019-08-06 | 平安普惠企业管理有限公司 | 日志查询方法、装置、计算机设备及存储介质 |
CN110245059A (zh) * | 2019-05-20 | 2019-09-17 | 平安普惠企业管理有限公司 | 一种数据处理方法、设备及存储介质 |
WO2020233013A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 一种数据处理方法、设备及存储介质 |
CN110287154A (zh) * | 2019-06-06 | 2019-09-27 | 郑州阿帕斯科技有限公司 | 容器日志的查询方法及装置 |
US20220004480A1 (en) * | 2019-06-28 | 2022-01-06 | Boe Technology Group Co., Ltd. | Log data collection method, log data collection device, storage medium, and log data collection system |
CN110399357A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种集中管理大数据组件日志的方法、装置及*** |
US11755452B2 (en) * | 2019-06-28 | 2023-09-12 | Boe Technology Group Co., Ltd. | 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 |
CN110611592A (zh) * | 2019-09-20 | 2019-12-24 | 中国联合网络通信集团有限公司 | 日志记录方法及设备 |
CN110611592B (zh) * | 2019-09-20 | 2023-04-07 | 中国联合网络通信集团有限公司 | 日志记录方法及设备 |
CN111046011A (zh) * | 2019-11-27 | 2020-04-21 | 中科曙光国际信息产业有限公司 | 日志收集方法、***、节点、电子设备及可读存储介质 |
CN111046011B (zh) * | 2019-11-27 | 2024-02-23 | 中科曙光国际信息产业有限公司 | 日志收集方法、***、装置、电子设备及可读存储介质 |
CN111324606A (zh) * | 2020-01-23 | 2020-06-23 | 北京恒华伟业科技股份有限公司 | 数据分片的方法及装置 |
CN111694793A (zh) * | 2020-06-12 | 2020-09-22 | 北京金山云网络技术有限公司 | 一种日志存储方法、装置及日志查询方法、装置 |
CN112363905B (zh) * | 2021-01-13 | 2021-08-24 | 北京云真信科技有限公司 | 一种应用日志收集*** |
CN112363905A (zh) * | 2021-01-13 | 2021-02-12 | 北京云真信科技有限公司 | 一种应用日志收集*** |
CN113094348A (zh) * | 2021-03-19 | 2021-07-09 | 北京达佳互联信息技术有限公司 | 日志管理方法及装置 |
CN113094348B (zh) * | 2021-03-19 | 2024-02-23 | 北京达佳互联信息技术有限公司 | 日志管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239382A (zh) | 一种容器应用的日志处理方法及*** | |
Kuenning et al. | Automated hoarding for mobile computers | |
Gousios | The GHTorent dataset and tool suite | |
CN100571281C (zh) | 海量数据分级存储方法 | |
CN110166285B (zh) | 一种基于Docker的网络安全实验平台搭建方法 | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件***的构建方法 | |
Tang et al. | Deferred lightweight indexing for log-structured key-value stores | |
CN108463817A (zh) | 个性化实体库 | |
KR20100070967A (ko) | 클러스터 데이터 관리시스템 및 클러스터 데이터 관리 시스템에서 공유 재수행 로그를 이용한 데이터 재구축 방법 | |
CN109308329A (zh) | 一种基于云平台的日志收集方法和装置 | |
CN102597966B (zh) | 运行管理装置以及运行管理方法 | |
CN106657228A (zh) | 一种利用云端进行并发采集的爬虫实现方法 | |
CN110377595A (zh) | 一种车辆数据管理*** | |
CN104182482B (zh) | 一种新闻列表页判断方法及筛选新闻列表页的方法 | |
CN108595664A (zh) | 一种hadoop环境下的农业数据监控方法 | |
CN103631922A (zh) | 基于Hadoop集群的大规模Web信息提取方法及*** | |
US8019765B2 (en) | Identifying files associated with a workflow | |
CN106991177A (zh) | 一种分布式环境下实时日志的无损采集方法及其*** | |
CN108153804A (zh) | 一种对称分布式文件***的元数据日志更新方法 | |
CN110175206A (zh) | 用于多数据库分离的智能分析业务方法、***及介质 | |
CN110515958A (zh) | 基于大数据的数据一致性方法、装置、设备和存储介质 | |
CN107122238A (zh) | 基于Hadoop云计算框架的高效迭代机制设计方法 | |
CN113377292A (zh) | 一种单机存储引擎 | |
CN106682061A (zh) | 一种分布式起源数据收集与存储*** | |
Chen et al. | Optimal algorithms for finding user access sessions from very large Web logs |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171010 |