docker容器中应用日志的获取及查看方法及其装置与流程

文档序号:14676825发布日期:2018-06-12 21:36阅读:1573来源:国知局

本发明涉及docker容器技术领域,具体涉及一种docker容器中应用日志的获取及查看方法及其装置。



背景技术:

本发明是一种基于容器化技术的应用日志管理方法。涉及到云计算、docker容器技术,以及日志管理技术。容器技术场景下,应用程序是运行在容器中,产生的日志也存储于容器中,不方便查看和获取。常见的处理方式是在每个容器中运行一个日志收集程序,统一将日志收集出来,集中处理。此方法消耗了计算资源。同时增加网络带宽的使用。

为解决docker中应用日志的收集和处理,现有技术通常是每个docker容器中运行一个日志收集程序。通过网络将日志发送到集中接收的服务器,进行实现日志的管理目的。造成部署不方便,同时消耗了docker的计算资源,占用了docker集群的网络带宽。



技术实现要素:

为解决上述问题,本发明提供了一种docker集群环境中应用程序日志的获取和查看功能。该方法无需在docker中运行日志收集程序,也不需要占用网络带宽将应用日志发送到其它服务器,节约计算资源和网络带宽。

本发明的通过如下技术方案来实现上述目的。

本发明的第一方面提供了一种docker容器中应用日志的获取及查看方法,包括如下步骤:

接收用户访问指令;

提供docker容器列表以及与docker容器与其宿主机的对应关系;

提供docker容器中日志目录的打开链接;

判断日志目录的打开链接是否被点击,如果是,则生成获取宿主机对应的docker容器日志目录的统一资源定位符url;

通过url获取日志目录中的日志列表以便用户下载或查看。

进一步地,所述对应关系包括宿主机的ip地址和主机名信息。

进一步地,所述docker容器中的日志目录直接挂载到宿主机的目录下。

进一步地,所述宿主机的目录与docker容器的id相关联。

进一步地,所述url带有宿主机的ip地址、docker容器的id以及docker容器的日志目录的信息。

本发明的另一个方面提供了一种docker容器中应用日志的获取及查看装置,包括:

接收模块,用于接收用户访问指令;

docker容器web管理模块,用于存储docker容器列表与其宿主机的对应关系,并提供所述用户访问的用户图形接口和docker容器中日志目录的打开链接;

统一资源定位符url生成模块,当判断日志目录的打开链接被点击时,生成获取宿主机对应的docker容器日志目录的url;

日志下载服务模块,通过url获取日志目录中的日志列表以便用户下载或查看。

进一步地,所述对应关系包括宿主机的ip地址和主机名信息。

进一步地,所述docker容器中的日志目录直接挂载到宿主机的目录下。

进一步地,所述宿主机的目录与docker容器的id相关联。

进一步地,所述url带有宿主机的ip地址、docker容器的id以及docker容器的日志目录的信息。

本发明中将容器中日志的目录以volume方式挂载到宿主机的目录下,将宿主机的目录与docker容器id相关联。这样在通过docker容器web管理模块管理日志的时候,生成带有宿主机ip地址和容器id以及容器日志目录信息的url。根据此url通过日志下载服务模块获取日志列表,实现查看和下载的功能。

本发明的上述技术方案具有如下有益的技术效果:解决了docker集群环境中应用程序日志的获取和查看功能;无需在docker中运行日志收集程序,也不需要占用网络带宽将应用日志发送到其它服务器;节约了网络传输带宽和每个docker中日志收集程序占用的cpu和内存等计算资源。

附图说明

图1是本发明的docker容器中应用日志的获取及查看方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

docker容器技术提供了一种Volume的方式将容器的目录直接挂载到宿主机的目录下的方式。在本发明中将容器中日志的目录以volume方式挂载到宿主机的目录下,并将宿主机的目录与docker容器id相关联。这样在通过docker容器web管理模块管理日志的时候,生成带有宿主机ip地址和容器id以及容器日志目录信息的url(Uniform Resource Locator,统一资源定位符);根据此url通过日志下载服务模块获取日志列表,实现查看和下载的功能。用户通过docker容器web管理模块来查看docker容器列表。该模块记录着全部容器的列表以及与容器对应的宿主机的ip地址主机名等信息。同时该模块提供docker中日志目录的打开链接。用户点击这个链接的时候,生成获取宿主机对应docker日志目录的url。请求宿主机上的日志下载模块返回该docker的日志列表。用户通过docker日志列表可以直接查看或下载每一个日志条目。

根据上述内容,本发明提供了一种docker容器中应用日志的获取及查看方法,如图1所示,具体包括如下步骤:

(1)接收用户访问指令;

用户从宿主机列表中选择或搜索特定的宿主机,并可以搜索或选择特定的docker。用户选择一台宿主机后将会看到该宿主机下的所有docker容器。

(2)提供docker容器列表以及与docker容器与其宿主机的对应关系;

一个宿主机上可以创建多个docker容器。在宿主机的vlomun目录,即docker通过volumn机制可以直接访问的宿主机目录中,以docker容器的id为目录名创建目录,供该docker容器访问。

(3)提供docker容器中日志目录的打开链接;所述docker容器中的日志目录直接挂载到宿主机的目录下;宿主机的目录与docker容器的id相关联。

在宿主机上可以直接访问docker容器写到volumn目录中的日志文件。每个宿主机上以该volumn为root目录,开启web服务,就可以提供docker日志文件的下载服务。

(4)判断日志目录的打开链接是否被点击,如果是,则生成获取宿主机对应的docker容器日志目录的统一资源定位符url;

docker容器的日志列表,是通过本发明的日志下载模块提供的,即远程连接该docker的宿主机,进入该docker所在的volumn目录,抓取日志文件列表,展示到web控制台上面。如果用户单击某个日志文件,则根据上述方式,可生成该url。例如,http://宿主机:port/docker-volumen/docker-id/logs/demo.log,此为日志文件下载url。

通过url获取日志列表以便用户下载或查看;所述url带有宿主机的ip地址、docker容器的id以及docker容器的日志目录的信息。

本发明的另一方面,还提供了与上述方法对应的一种docker容器中应用日志的获取及查看装置,包括:

接收模块,用于接收用户访问指令;

docker容器web管理模块,用于存储docker容器列表与其宿主机的对应关系,所述对应关系包括宿主机的ip地址和主机名信息;并提供所述用户访问的用户图形接口和docker容器中日志目录的打开链接,所述docker容器中的日志目录直接挂载到宿主机的目录下,所述宿主机的目录与docker容器的id相关联;

统一资源定位符url生成模块,当判断日志目录的打开链接被点击时,生成获取宿主机对应的docker容器日志目录的url;所述url带有宿主机的ip地址、docker容器的id以及docker容器的日志目录的信息;

日志下载服务模块,通过url获取日志列表以便用户下载或查看。

本发明中将容器中日志的目录以volume方式挂载到宿主机的目录下,将宿主机的目录与docker容器id相关联。这样在通过docker容器web管理模块管理日志的时候,生成带有宿主机ip地址和容器id以及容器日志目录信息的url。根据此url通过日志下载服务模块获取日志列表,实现查看和下载的功能。该方法和装置无需在docker中运行日志收集程序,也不需要占用网络带宽将应用日志发送到其它服务器,节约计算资源和网络带宽。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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