docker容器环境下注入应用探针的方法和装置制造方法及图纸

技术编号:26030864 阅读:62 留言:0更新日期:2020-10-23 21:08
本发明专利技术涉及计算机技术领域,提出了一种docker容器环境下注入应用探针的方法和装置,方法包括进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,当监视到docker容器管理进程启动新的容器时,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;自动注入探针的步骤:当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。通过上述技术方案,解决了现有技术中docker容器环境下,操作系统无法对容器内应用进程事务级的性能进行监控的问题。

【技术实现步骤摘要】
docker容器环境下注入应用探针的方法和装置
本专利技术涉及计算机
,具体的,涉及docker容器环境下注入应用探针的方法和装置。
技术介绍
docker容器环境是一个独立的运行时环境,通过将软件应用和应用所依赖的库、配置、工具打包在一起,实现应用的快速部署。docker容器引擎技术基于linux内核提供的命名空间特性来实现容器进程、网络、文件等资源的封装和隔离。主机进程和容器进程、不同容器的进程都处于不同的命名空间,拥有各自独立的系统资源,无法互相访问,docker容器为在这些容器中执行的进程提供了一个模拟单独操作系统的执行环境。容器的灵活性和高效性以及它们提供的隔离特性使容器成为实现敏捷应用管理的理想工具,越来越多的厂商开始使用容器来部署业务系统。与此同时,产生了如何监控运行在docker容器环境内的应用程序性能的新需求。Kubernetes套件内的存活探针和就绪探针是在docker容器内定期执行的小程序,用于探测容器的健康状态,但这些度量指标不足以评估在容器中运行的业务系统的性能表现。目前流行的基于代理探针的性能监控系统通常利用更改进程环境变量或启动参数来自动注入应用探针,然后再从这些应用进程获取事务级的性能数据。上述的注入过程方式在常规的操作系统上运行良好,但由于docker容器资源隔离的特性,导致无法将应用探针注入到docker容器的进程内。本专利技术提出一种能够将应用探针自动注入到docker容器内应用进程的方法及装置,进而能够获取这些应用进程获取事务级的性能数据,以达到性能监控的目的。
技术实现思路
本专利技术提出docker容器环境下注入应用探针的方法和装置,解决了现有技术中docker容器环境下,操作系统无法对容器内应用进程事务级的性能进行监控的问题。本专利技术的技术方案如下:第一方面,一种docker容器环境下注入应用探针的方法,用于将宿主机操作系统的应用探针注入docker容器的应用进程中,包括进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;自动注入探针的步骤:当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。第二方面,一种docker容器环境下注入应用探针的装置,包括进程探测模块,用于建立一个回调通道,对docker容器管理进程进行监视,当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;自动注入模块,用于当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。第三方面,一种docker容器环境下注入应用探针的装置,包括存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,所述计算机程序包括:进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;自动注入探针的步骤:当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。第四方面,一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;自动注入探针的步骤:当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。本专利技术的工作原理及有益效果为:本专利技术中通过建立回调通道,接收启动新容器的事件,并且在新容器的执行环境内,将宿主机操作系统的应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下,这个挂载动作突破了docker容器资源隔离的特性,使得容器内部应用进程可以使用宿主机上的的应用探针资源;挂载应用探针模块后,启动自动注入探针的步骤,在检测到容器内应用进程启动时,分析新启动进程的执行环境,以确定新启动的进程是否可以自动注入应用探针,当检测到进程满足自动注入的条件时,设置进程的环境变量或更改进程的启动参数,并在执行应用程序的业务逻辑之前注入对应的应用探针;自动注入的应用探针仍然按照原有的监控逻辑正常执行,就仿佛他们仍在宿主机的环境中工作一样。本专利技术实现了docker容器环境下应用探针在应用进程的自动注入,进而能够获取应用进程中事务级的性能数据,以达到性能监控的目的。附图说明下面结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术方法流程图;图2为本专利技术装置的一个实施例结构示意图;图3为本专利技术装置的又一实施例结构示意图;图中:21进程守护模块,22进程探测模块,23自动注入模块,300总线,301接收器,302处理器,303发送器,304存储器,306总线接口。具体实施方式下面将结合本专利技术实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都涉及本专利技术保护的范围。如图1所示,本实施例提出了一种docker容器环境下注入应用探针的方法,包括进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;自动注入探针的步骤:当监测到一本文档来自技高网
...

【技术保护点】
1.一种docker容器环境下注入应用探针的方法,用于将宿主机操作系统的应用探针注入docker容器的应用进程中,其特征在于,包括/n进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,/n当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;/n自动注入探针的步骤:当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。/n

【技术特征摘要】
1.一种docker容器环境下注入应用探针的方法,用于将宿主机操作系统的应用探针注入docker容器的应用进程中,其特征在于,包括
进程探测的步骤:建立一个回调通道,对docker容器管理进程进行监视,
当监视到docker容器管理进程启动新的容器时,在新容器的执行环境内,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;
自动注入探针的步骤:当监测到一docker容器上有新的应用进程启动时,分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件,在确定新应用进程满足自动注入应用探针的条件后,设置新应用进程的环境变量或更改新应用进程的启动参数,并在新应用进程执行业务逻辑之前注入对应的应用探针。


2.根据权利要求1所述的docker容器环境下注入应用探针的方法,其特征在于,进程探测的步骤之前,还包括进程守护的步骤,具体为:
定时枚举操作系统内的进程信息,分析进程的执行环境,以确定进程是否是docker容器管理进程;
在确定进程是docker容器管理进程后,启动进程探测的步骤。


3.根据权利要求2所述的docker容器环境下注入应用探针的方法,其特征在于,所述操作系统为Linux操作系统,定时枚举操作系统内的进程信息具体为:
通过ps命令获取宿主机上所有进程的进程编号pid;
获取/proc/[pid]/cmdline中可执行文件的名称及参数;
根据可执行文件的名称及参数识别docker容器管理进程。


4.根据权利要求1所述的docker容器环境下注入应用探针的方法,其特征在于,所述操作系统为Linux操作系统,进程探测的步骤具体为:
调用ptrace函数设置系统函数回调,建立对docker容器管理进程的监控,并接收有关docker容器管理进程中发生的事件的通知;
在监控到有新容器启动时,在回调函数内mount文件到docker进程,调整新容器的文件系统,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下。


5.根据权利要求1所述的docker容器环境下注入应用探针的方法,其特征在于,所述操作系统为Linux操作系统,自动注入探针的步骤具体为:
在/etc/ld.so.preload文件中插入自动注入动态扩展库,当docker容器内有新的应用进程启动时,自动加载所述自动注入动态扩展库;
通过自动注入动态扩展库分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件;
当新应用进程满足自动注入应用探针时,设置进程的环境变量或更改进程的启动参数,并在真正执行新应用...

【专利技术属性】
技术研发人员:熊伟高娟娟
申请(专利权)人:华北电力大学保定
类型:发明
国别省市:河北;13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1