CN111324423B - 容器内进程的监控方法、装置、存储介质和计算机设备 - Google Patents
容器内进程的监控方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN111324423B CN111324423B CN202010140560.2A CN202010140560A CN111324423B CN 111324423 B CN111324423 B CN 111324423B CN 202010140560 A CN202010140560 A CN 202010140560A CN 111324423 B CN111324423 B CN 111324423B
- Authority
- CN
- China
- Prior art keywords
- abnormal
- container
- target
- running state
- running
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种容器内进程的监控方法、装置、存储介质和计算机设备,所述方法包括:获取目标容器内的各目标进程的运行状态;当所述运行状态表征存在停止运行的异常进程时,获取所述异常进程的可运行程序目录;根据所述异常进程的可运行程序目录重启所述异常进程,并返回所述获取所述目标容器内的各目标进程的运行状态的步骤。上述容器内进程的监控方法可对在容器内运行的进程进行监测,在检测到容器内进程停止运行时可以直接根据该进程的可运行程序目录重启该进程,避免进程得不到及时维护的情况,提高维护容器内进程的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种容器内进程的监控方法、装置、计算机可读存储介质和计算机设备。
背景技术
应用程序通常是指一系列运行在操作系统中的服务,在实际应用中可能存在需切换应用程序的运行环境的情况,为了在切换运行环境后,保证应用程序仍然能够可靠地运行,出现了容器。
一个容器包含了完整的运行时环境:应用程序、这个应用程序所需的全部依赖、类库、其他二进制文件、配置文件,它们统一被打入了一个包中。通过将应用平台和其依赖容器化,操作系统发行版本和其他基础环境造成的差异,都被抽象掉了,因此使用容器可以保证在切换运行环境后保证应用程序仍能保持运行。
然而,目前针对容器内运行应用程序的进程,需要通过人工检测是否发生异常,通过人工检测容器内进程是否发生异常容易发生应用程序得不到及时维护的情况。
发明内容
基于此,有必要针对通过人工检测容器内进程是否发生异常容易发生应用程序得不到及时维护的技术问题,提供一种容器内进程的监控方法、装置、计算机可读存储介质和计算机设备。
一种容器内进程的监控方法,包括:
获取目标容器内的各目标进程的运行状态;
当所述运行状态表征存在停止运行的异常进程时,获取所述异常进程的可运行程序目录;
根据所述异常进程的可运行程序目录重启所述异常进程,并返回所述获取所述目标容器内的各目标进程的运行状态的步骤。
一种容器内进程的监控装置,所述装置包括:
运行状态获取模块,用于获取目标容器内的各目标进程的运行状态;
可运行程序目录获取模块,用于当所述运行状态表征出现停止运行的异常进程时,获取所述异常进程的可运行程序目录;
重启模块,用于根据所述异常进程的可运行程序目录重启所述异常进程,返回所述获取目标容器内的各目标进程的运行状态的步骤。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述容器内的进程监控方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述容器内的进程监控方法的步骤。
上述容器内进程的监控方法、装置、存储介质和计算机设备中,获取目标容器内的各目标进程的运行状态,当运行状态表征出现停止运行的异常进程时,获取异常进程的可运行程序目录,并根据异常进程的可运行程序目录重启异常进程,然后返回获取目标容器内的各目标进程的运行状态的步骤;上述方法可对在容器内运行的进程进行监测,在检测到容器内进程停止运行时可以直接根据该进程的可运行程序目录重启该进程,避免进程得不到及时维护的情况,提高维护容器内进程的效率。
附图说明
图1为一个实施例中容器内进程的监控方法的流程示意图;
图2为另一个实施例中容器内进程的监控方法的流程示意图;
图3为另一个实施例中容器内进程的监控方法的流程示意图;
图4为另一个实施例中容器内进程的监控方法的流程示意图;
图5为一个具体实施例中发送的异常提示信息的示意图;
图6为一个具体实施例中容器内进程的监控方法的流程场景示意图;
图7为一个实施例中容器内进程的监控装置的结构框图;
图8为另一个实施例中容器内进程的监控装置的结构框图;
图9为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请中提供一种容器内进程的监控方法,在一些实施例中,容器内进程的监控方法应用于容器内进程的监控系统,该容器内进程的监控系统包括用于运行目标容器的服务器和用于实现容器内进程进行监控的服务器。用于实现容器内进程进行监控的服务器根据维护进程列表从运行目标容器的服务器中获取对应的各目标进程的运行状态,当运行状态表征出现停止运行的异常进程时,获取异常进程的可运行程序目录,并根据异常进程的可运行程序目录重启异常进程。用于运行目标容器的服务器和用于实现容器内进程进行监控的服务器通过网络连接。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在另一些实施例中,上述容器内进程的监控方法仅涉及一个服务器,即目标容器的运行和对目标容器内的进程进行监控在同一个服务器中实现。
如图1所示,在一个实施例中,提供了一种容器内进程的监控方法。请参照图1,该容器内进程的监控方法具体包括步骤S110至步骤S130。
步骤S110,获取目标容器内的各目标进程的运行状态。
其中,容器是指包含了应用程序完整的运行时环境:应用程序、这个应用程序所需的全部依赖、类库、其他二进制文件、配置文件,它们统一被打入了一个包中,应用程序可以在容器中运行;目标容器是指本实施例中所需要监控的容器,目标容器可以是一个,也可以是多个;进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体;本实施例中在容器中运行应用程序的进程称为容器内进程,一个容器内可能运行一个进程,也有可能运行多个进程,这多个进程为一个或多个应用程序提供服务。在一个具体实施例,目标容器为Docker,Docker是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,可以实现虚拟化;其中,Linux是一套类Unix操作系统,是一个基于POSIX(Portable Operating SystemInterface,可移植操作系统接口)和Unix的多用户、多任务、支持多线程和多CPU的操作系统。
目标容器内有进程运行,本实施例中目标容器内的目标进程是指运行在目标容器内的待监控的进程,待监控的进程可以是目标容器内的所有进程,也可以是运行在目标容器的部分特定进程,记为目标进程;在目标进程为运行在目标容器内的部分特定进程的一个实施例中,可以通过进程的IP地址获取需要监控的目标进程的运行状态。
在一个实施例中,获取目标容器内的各目标进程的运行状态包括:通过调用运行状态读取指令获取目标容器内的各目标进程的运行状态;在一个具体实施例中,运行状态读取指令可以是linux操作系统中的指令;可以理解地,通过各进程的运行状态可以确定目标容器内的各目标进程是否正常运行。
步骤S120,当运行状态表征存在停止运行的异常进程时,获取异常进程的可运行程序目录。
当检测到运行状态为停止运行的进程时,表示目标容器内出现发生异常的进程,本实施例中将停止运行的进程记为异常进程;可运行程序目录是指进程中可运行的程序的集合,其中可以包括进程中运行的程序、该程序的启动指令等信息;在一个实施例中获取异常进程的可运行程序目录包括:读取目标容器的预设配置文件获得异常进程的可运行程序目录。进一步地,在获取到异常进程的可运行进程目录之后即可重启异常进程。
步骤S130,根据异常进程的可运行程序目录重启异常进程,并返回获取目标容器内的各目标进程的运行状态的步骤。
在一个实施例中,根据异常进程的可运行程序目录重启异常进程包括步骤:根据异常进程的可运行程序目录获取异常进程的程序启动指令;根据程序启动指令重启异常进程。
重启异常进程后返回获取各目标进程的运行状态的步骤,在下一次获取的各目标进程的运行状态中可以确定对于该异常进程的重启是否成功。进一步地,对于根据目标容器对应的维护进程列表获取维护进程列表中各进程的运行状态,可以是每隔预设时间段获取各进程的运行状态,在本实施例中,对于异常进程根据可运行程序目录重启之后,返回获取各进程的运行状态的步骤实际上是指跳转到每隔预设时间段根据维护进程列表获取各进程的运行状态的步骤。在一个具体实施例中,每间隔1秒根据目标容器的维护进程列表获取各进程的运行状态;在其它实施例中预设时间段也可以根据实际情况进行设置。
上述容器内进程的监控方法,获取目标容器内的各目标进程的运行状态,当运行状态表征出现停止运行的异常进程时,获取异常进程的可运行程序目录,并根据异常进程的可运行程序目录重启异常进程,然后返回获取目标容器内的各目标进程的运行状态的步骤;上述方法可对在容器内运行的进程进行监测,在检测到容器内进程停止运行时可以直接根据该进程的可运行程序目录重启该进程,避免进程得不到及时维护的情况,提高维护容器内进程的效率。
在一个实施例中,如图2所示,上述方法在根据异常进程的可运行程序目录重启异常进程之后,在返回获取目标容器内的各目标进程的运行状态的步骤之前,还包括步骤S210:更新异常进程的重启次数。
请继续参照图2,在本实施例中,根据异常进程的可运行程序目录重启异常进程包括步骤S131:读取异常进程的重启次数,当异常进程的重启次数小于或者等于预设阈值时,根据异常进程的可运行程序目录重启异常进程。
本实施例中在对异常进程进行重启之后返回获取目标容器内各目标进程的运行状态之前,对于该异常进程的重启次数进行更新,重启次数可以用于记录同一个进程是否多次发生异常进行重启;在本实施例中,在根据各进程的运行状态确定存在停止运行的异常进程时,先读取该异常进程的重启次数,如果该异常进程的重启次数满足小于或者等于预设阈值的条件,则可执行根据异常进程的可运行程序目录重启该异常进程的步骤;在一个实施例中,各进程的初始重启次数为零。
进一步地,在一个实施例中,上述方法在根据目标容器的维护进程列表获取各进程的运行状态之后,还包括:检测各进程的重启次数,对于运行状态为正常运行且重启次数为非零的进程,将其重启次数清零;例如,维护进程列表中的进程X的初始重启次数为0,当获取到各进程的运行状态之后,确定进程X的运行状态表征进程X停止运行,获取进程X的可运行程序目录,根据进程X的可运行程序目录重启进程X,并更新进程X的重启次数为1,返回根据维护进程列表获取各进程的运行状态的步骤;若进程X的运行状态表征进程X仍为停止运行,若进程X的重启次数(1次)小于或者等于预设阈值,则继续根据进程X的可运行程序目录重启进程X,同时由于进程X连续两次停止运行进行重启,对于进程X的重启次数更新为2次,再返回根据维护进程列表获取各进程的运行状态的步骤;若本次确定进程X的运行状态为正常运行,表示上一次重启进程X成功,此时将进程X的重启次数(2次)清零。
在另一个实施例中,如图3所示,获取目标容器内的各目标进程的运行状态包括步骤S310:根据目标容器对应的维护进程列表,获取维护进程列表中各目标进程的运行状态;其中,目标容器对应的维护进程列表通过读取预设配置文件获得;进一步地,在本实施例中,在获取目标容器内的各目标进程的运行状态之后,上述方法还包括步骤S320:读取异常进程的重启次数,当异常进程的重启次数大于预设阈值时,将异常进程从维护进程列表中删除,更新维护进程列表,并返回根据目标容器对应的维护进程列表,获取维护进程列表中各目标进程的运行状态的步骤。
如果异常进程的重启次数超过了预设阈值,表示该异常进程多次尝试重启未成功,该进程可能无法通过自动恢复正常运行,需要人工介入,在本实施例中,对于重启次数超过预设阈值的进程,将其从维护进程列表中删除,不再尝试重启该进程,也不再监控该进程的运行状态,更新维护进程列表;进一步地,在一个实施例中,在异常进程从维护进程列表中删除,更新维护进程列表之后,还包括:向异常进程的进程维护人发送提示信息。在一个实施例中,预设配置文件中包含了各进程对应的进程维护人以及各进程维护人的联系方式,具体可以是电话、即时聊天软件、自定义的设备等的联系方式,本实施例中可以通过读取预设配置文件获取异常进程的进程维护人的联系方式,并基于异常进程的进程维护人的联系方式向异常进程的异常进程维护人发送提示信息。
在一个实施例中,如图4所示,上述方法在获取目标容器内的各目标进程的运行状态之后,还包括步骤S410:当运行状态表征存在停止运行的异常进程时,生成与异常进程对应的异常记录文件。
在本实施例中将包含运行在目标容器内的待监控的进程的列表记为目标容器的维护进程列表,服务器根据目标容器的维护进程列表可知需要监控目标容器中的哪些进程;在一个实施例中,维护进程列表与目标容器一一对应;进一步地,维护进程列表可以通过读取目标容器对应的预设配置文件获得;在一个实施例中,预设配置文件包括对应的目标容器的IP(Internet Protocol,网际互连协议)地址以及目标容器内运行的进程的相关信息等,其中,进程的相关信息可以包括进程名称、进程对应的相关维护人以及进程的可运行程序目录,因此通过读取目标容器对应的预设配置文件中的目标容器内进程的相关信息(进程名称)即可获得维护进程列表。
在一个实施例中,根据目标容器的维护进程列表,获取维护进程列表中各进程的运行状态包括:通过调用运行状态读取指令获取维护进程列表中各进程的运行状态;在一个具体实施例中,运行状态读取指令可以是linux操作系统中的相关指令,即调用linux操作系统中的相关指令获取目标容器内的各目标进程的运行状态。
在本实施例中只要通过运行状态确定存在停止运行的异常进程,则生成与该异常进程对应的异常记录文件;在一个实施例中,异常进程对应的异常记录文件可以包括异常进程的IP地址、异常进程所在的目标容器名称和异常进程停止运行发生的时间等信息;进一步地,在一个实施例中,将生成的异常记录文件存入预设路径。
进一步地,在确定出现停止运行的异常进程的一个实施例中,对于进程监控重启次数,并根据重启次数确定是否需要重启进程,将重启次数超过预设阈值的异常进程从维护进程列表中删除不再尝试重启该异常进程,可以避免生成大量的异常进程维护文件。
进一步地,在一个实施例中,请继续参照图4,上述方法还包括步骤S420至步骤S440。
步骤S420,每隔预设时间段查询是否存在异常记录文件。
预设时间段可以根据实际情况进行设置,在一个具体实施例中,每隔1秒查询是否存在异常记录文件。一个实施例中,每隔预设时间段在存储异常记录文件的预设路径中查询是否存在异常记录文件。
步骤S430,当查询到存在异常记录文件时,获取异常记录文件对应的异常进程所在容器的异常信息。
在查询到存在异常记录文件时,根据异常记录文件确定对应的异常进程,以及异常进程所在的容器,然后从所在容器获取异常信息;在一个实施例中,获取异常进程所在容器的异常信息包括:获取异常进程所在容器的系统信息,包括但不限于cpu(centralprocessing unit,中央处理器)信息、内存信息、磁盘信息、网络信息等等;在本实施例中,查询是否存在异常记录文件间隔的预设时间段可以设置为较短的时间间隔。
在另一个实施例中,获取异常进程所在容器的异常信息包括:查找异常进程所在容器的tmp文件和进程运行目录是否存在coredump文件,进一步地,当在异常进程所在容器中查找到coredump文件时,还包括步骤:对coredump文件进行gdb分析,获得分析结果;其中,tmp文件是各种软件或系统产生的临时文件,也就是常说的垃圾文件;coredunmp文件是指当应用程序出错而异常中断时,OS(Operating System,操作系统)会把程序工作的当前状态存储成一个coredunmp文件,通常情况下coredump文件包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等;对coredump文件进行gdb分析包括:通过调用gdb指令解析coredump文件中的信息。
在另一个实施例中,获取异常进程所在容器的异常信息包括:获取异常进程所在容器的系统信息,以及查找异常进程所在容器的tmp文件和进程运行目录是否存在coredump文件。
在一个实施例中,监控的目标容器包括多个时,需根据异常记录文件确定对应的异常进程所在的容器是哪一个目标容器;其中,根据异常记录文件可以确定异常进程,根据预设配置文件可以确定异常进程所在容器;在另一个实施例中,当监控的目标容器为一个时,异常进程所在容器即为目标容器。
步骤S440,根据异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息。
其中,进程维护人是指异常进程或者异常进程所在容器对应的负责人;在一个实施例中,通过读取预设配置文件中可获知异常进程或者异常进程所在容器对应的进程维护人对应的设备的信息。
在一个实施例中,根据异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息包括:生成提示信息,将获取的异常信息与提示信息一同发送至进程维护人对应的设备;进一步地,在一个具体实施例中,将异常进程所在容器的系统信息,以及检测到的coredump文件进行gdb分析获得的coredump信息与提示信息一同发送至进程维护人对应的设备。如图5所示,为一个具体实施例中发送的异常提示信息的示意图。
上述实施例中的容器内进程的监控方法,定期检测是否存在异常记录文件,一旦检测到存在异常记录文件则根据异常记录文件获取对应的异常进程所在容器的异常信息,并根据异常信息向容器进程维护人设备发送异常提示信息,可以完成自动对容器内运行的进程监控的过程,减少人力。
在一个实施例中,上述容器内进程的监控方法在目标容器内部执行。本实施例中实际上是将对容器内进程的监控系统做成agent模式,部署在每一个容器中,能更方便的收集容器中系统运行资源信息,且如果一个监控系统发生故障,不会影响到所在容器以外的其他监控系统对各自容器内进程的监控。
进一步地,在容器内进程的监控方法在目标容器内部执行的一个实施例中,目标容器即为该容器内进程的监控方法所在容器,通过读取目标容器对应的预设配置文件确定维护进程列表中包括的进程即为所在容器内的进程。
在一个实施例中,本申请还提供一种应用场景,该应用场景应用上述的容器内进程的监控方法。具体地,该容器内进程的监控方法在该应用场景的应用如下:
如图6所示为一个具体实施例中容器内进程的监控方法的流程场景示意图,本实施例中可以将对容器内进程的监控方法可以分为监控进程的运行和分析上报两个部分;本实施例中,容器内进程的监控系统中存在一份预设配置文件,预设配置文件与需要监控的目标容器对应,其中包含了所维护的容器ip,进程名,进程维护人和进程可运行程序目录;服务器通过读取上述预设配置文件获得维护进程列表。其中,监控进程运行包括以下步骤:以1s的时间间隔获取维护进程列表中各进程的运行状态,当获取的运行状态表征出现停止运行的异常进程时,根据预设配置文件获取到异常进程的可运行程序目录,根据可运行程序目录重启该异常进程;对于获取维护进程列表中各进程的运行状态之后,先读取重启次数是否小于或等于预设阈值,若是根据异常进程的可运行程序目录重启异常进程,进一步地,在重启异常进程之后,在返回获取目标容器内的各目标进程的运行状态的步骤之前,对异常进程更新重启次数;若否则不再重启异常进程,并将该异常进程从维护进程列表中剔除,更新维护进程列表。
进一步地,在本实施例中,上述方法还包括:当获取的运行状态表征出现异常的生成与异常进程对应的异常记录文件,进行异常进程的异常情况的记录;对于重启次数超过预设阈值次数的进程剔除出维护进程列表,可以避免生成大量异常记录文件和coredump文件。
分析上报包括以下步骤:容器内进程的监控系统以1s的时间间隔轮询异常记录文件,当检测到存在异常记录文件时,获取异常记录文件对应进程所在的容器的系统信息,包括但不限于cpu、内存、磁盘、网络信息等,并且在该容器的tmp和进程运行目录检查coredump文件,一旦发现coredump文件,则进行自动gdb分析,并将系统信息和coredump信息一起发送给进程维护人。
上述容器内进程的监控方法实时监控容器内进程运行情况,在发现停止运行的异常进程时自动拉起,确保进程的稳定运行;同时生成对应的异常记录文件记录进程异常时的系统信息和异常信息,方便测试、开发人员快速分析出问题和解决方案。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,本申请还提供一种容器内进程的监控装置,如图7所示,该装置包括:运行状态获取模块710、可运行程序目录获取模块720以及重启模块730。其中:
运行状态获取模块710,用于获取目标容器内的各目标进程的运行状态;
可运行程序目录获取模块720,用于当运行状态表征出现停止运行的异常进程时,获取异常进程的可运行程序目录;
重启模块730,用于根据异常进程的可运行程序目录重启异常进程,返回由运行状态获取模块710获取目标容器内的各目标进程的运行状态。
上述容器内进程的监控装置,获取目标容器内的各目标进程的运行状态,当运行状态表征出现停止运行的异常进程时,获取异常进程的可运行程序目录,并根据异常进程的可运行程序目录重启异常进程,然后返回获取目标容器内的各目标进程的运行状态的步骤;上述方法可对在容器内运行的进程进行监测,在检测到容器内进程停止运行时可以直接根据该进程的可运行程序目录重启该进程,避免进程得不到及时维护的情况,提高维护容器内进程的效率。
在一个实施例中,上述容器内进程的监控装置还包括:重启次数更新模块,用于更新异常进程的重启次数;在本实施例中,重启模块730具体用于读取异常进程的重启次数,当异常进程的重启次数小于或者等于预设阈值时,根据异常进程的可运行程序目录重启异常进程。
在另一个实施例中,上述容器内进程的监控装置中的运行状态获取模块710还用于根据目标容器对应的维护进程列表,获取维护进程列表中各目标进程的运行状态;其中,目标容器对应的维护进程列表通过读取预设配置文件获得;在本实施例中,重启模块730包括维护进程列表更新模块,用于读取异常进程的重启次数,当异常进程的重启次数大于预设阈值时,将异常进程从维护进程列表中删除,更新维护进程列表,返回由运行状态获取模块710根据目标容器对应的维护进程列表,获取维护进程列表中各进程的运行状态。
在一个实施例中,重启模块730还包括程序启动指令获取模块,用于根据异常进程的可运行程序目录获取异常进程的程序启动指令;在本实施例中,重启模块还用于根据程序启动指令重启异常进程。
在一个实施例中,如图8所示,上述容器内进程的监控装置还包括:异常记录文件生成模块810,用于当运行状态表征存在停止运行的异常进程时,生成与异常进程对应的异常记录文件。
进一步地,在一个实施例中,请继续参照图8,上述容器内进程的监控装置还包括:异常记录文件查询模块820,异常信息获取模块830以及异常提示信息发送模块840;其中:
异常记录文件查询模块820,用于每隔预设时间段查询是否存在异常记录文件。
异常信息获取模块830,用于当查询到存在异常记录文件时,获取异常记录文件对应的异常进程所在容器的异常信息。
异常提示信息发送模块840,用于根据异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息。
关于容器内进程的监控装置的具体限定可以参见上文中对于容器内进程的监控方法的限定,在此不再赘述。上述容器内进程的监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设配置文件等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种容器内进程的监控方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取目标容器内的各目标进程的运行状态;当运行状态表征存在停止运行的异常进程时,获取异常进程的可运行程序目录;根据异常进程的可运行程序目录重启异常进程,并返回获取目标容器内的各目标进程的运行状态的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:读取异常进程的重启次数,当异常进程的重启次数小于或者等于预设阈值时,根据异常进程的可运行程序目录重启异常进程;更新异常进程的重启次数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据目标容器对应的维护进程列表,获取维护进程列表中各目标进程的运行状态;其中,目标容器对应的维护进程列表通过读取预设配置文件获得;读取异常进程的重启次数,当异常进程的重启次数大于预设阈值时,将异常进程从维护进程列表中删除,更新维护进程列表,并返回获取目标容器内的各目标进程的运行状态的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据异常进程的可运行程序目录获取异常进程的程序启动指令;根据程序启动指令重启异常进程。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当运行状态表征存在停止运行的异常进程时,生成与异常进程对应的异常记录文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:每隔预设时间段查询是否存在异常记录文件;当查询到存在异常记录文件时,获取异常记录文件对应的异常进程所在容器的异常信息;根据异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息。
在一个实施例中,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取目标容器内的各目标进程的运行状态;当运行状态表征存在停止运行的异常进程时,获取异常进程的可运行程序目录;根据异常进程的可运行程序目录重启异常进程,并返回获取目标容器内的各目标进程的运行状态的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:读取异常进程的重启次数,当异常进程的重启次数小于或者等于预设阈值时,根据异常进程的可运行程序目录重启异常进程;更新异常进程的重启次数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据目标容器对应的维护进程列表,获取维护进程列表中各目标进程的运行状态;其中,目标容器对应的维护进程列表通过读取预设配置文件获得;读取异常进程的重启次数,当异常进程的重启次数大于预设阈值时,将异常进程从维护进程列表中删除,更新维护进程列表,并返回根据目标容器对应的维护进程列表,获取维护进程列表中各进程的运行状态的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据异常进程的可运行程序目录获取异常进程的程序启动指令;根据程序启动指令重启异常进程。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当运行状态表征存在停止运行的异常进程时,生成与异常进程对应的异常记录文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:每隔预设时间段查询是否存在异常记录文件;当查询到存在异常记录文件时,获取异常记录文件对应的异常进程所在容器的异常信息;根据异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种容器内进程的监控方法,所述方法在目标容器内部执行,所述目标容器为所述方法所在容器,所述方法包括:
获取目标容器内的各目标进程的运行状态;
当所述运行状态表征存在停止运行的异常进程时,获取所述异常进程的可运行程序目录;
根据所述异常进程的可运行程序目录重启所述异常进程,并返回获取目标容器内的各目标进程的运行状态的步骤;
在所述获取目标容器内的各目标进程的运行状态之后,还包括:
检测各进程的重启次数;
若所述异常进程的重启次数大于预设阈值,将所述异常进程从所述目标容器对应的维护进程列表中删除,不再尝试重启所述异常进程,不再监控所述异常进程的运行状态,以避免生成大量的异常进程维护文件,并更新所述维护进程列表,向所述异常进程的进程维护人发送提示信息,并返回获取目标容器内的各目标进程的运行状态的步骤;
对于运行状态为正常运行且重启次数为非零的进程,将其重启次数清零;
在所述获取目标容器内的各目标进程的运行状态之后,还包括:
当所述运行状态表征存在停止运行的异常进程时,生成与所述异常进程对应的异常记录文件;
所述方法还包括:
每隔预设时间段查询是否存在异常记录文件;
当查询到存在所述异常记录文件时,获取所述异常记录文件对应的异常进程所在容器的异常信息;获取所述异常记录文件对应的异常进程所在容器的异常信息包括:查找异常进程所在容器的tmp文件和进程运行目录是否存在coredump文件,若存在coredump文件,通过调用gdb指令解析coredump文件中的信息,获得分析结果,所述coredump文件包含了程序运行时的内存、寄存器状态、堆栈指针以及内存管理信息;
根据所述异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息。
2.根据权利要求1所述的容器内进程的监控方法,其特征在于:
所述获取目标容器内的各目标进程的运行状态包括:根据目标容器对应的维护进程列表,获取所述维护进程列表中各目标进程的运行状态;其中,所述目标容器对应的维护进程列表通过读取预设配置文件获得。
3.根据权利要求1所述的容器内进程的监控方法,其特征在于,所述根据所述异常进程的可运行程序目录重启所述异常进程包括:
根据所述异常进程的可运行程序目录获取所述异常进程的程序启动指令;
根据所述程序启动指令重启所述异常进程。
4.根据权利要求1所述的容器内进程的监控方法,其特征在于,异常进程对应的异常记录文件包括异常进程的IP地址、异常进程所在的目标容器名称和异常进程停止运行发生的时间等信息。
5.一种容器内进程的监控装置,其特征在于,所述装置设置在目标容器内部,所述目标容器为所述装置所在容器,所述装置包括:
运行状态获取模块,用于获取目标容器内的各目标进程的运行状态;
可运行程序目录获取模块,用于当所述运行状态表征出现停止运行的异常进程时,获取所述异常进程的可运行程序目录;
重启模块,用于读取异常进程的重启次数,当异常进程的重启次数小于或者等于预设阈值时,根据所述异常进程的可运行程序目录重启所述异常进程,返回获取所述目标容器内各目标进程的运行状态的步骤;
所述重启模块包括维护进程列表更新模块,用于检测各进程的重启次数,当异常进程的重启次数大于预设阈值时,将异常进程从维护进程列表中删除,不再尝试重启所述异常进程,不再监控所述异常进程的运行状态,以避免生成大量的异常进程维护文件,并更新维护进程列表,返回由运行状态获取模块根据目标容器对应的维护进程列表,获取维护进程列表中各进程的运行状态;对于运行状态为正常运行且重启次数为非零的进程,将其重启次数清零;
异常记录文件生成模块,用于当运行状态表征存在停止运行的异常进程时,生成与异常进程对应的异常记录文件;
异常记录文件查询模块,用于每隔预设时间段查询是否存在异常记录文件;
异常信息获取模块,用于当查询到存在异常记录文件时,获取异常记录文件对应的异常进程所在容器的异常信息;获取所述异常记录文件对应的异常进程所在容器的异常信息包括:查找异常进程所在容器的tmp文件和进程运行目录是否存在coredump文件,若存在coredump文件,通过调用gdb指令解析coredump文件中的信息,获得分析结果,所述coredump文件包含了程序运行时的内存、寄存器状态、堆栈指针以及内存管理信息;
异常提示信息发送模块,用于根据异常进程所在容器的异常信息向进程维护人对应的设备发送异常提示信息。
6.根据权利要求5所述的容器内进程的监控装置,其特征在于,还包括:
重启次数更新模块,用于更新异常进程的重启次数。
7.根据权利要求5所述的容器内进程的监控装置,其特征在于:
所述运行状态获取模块,还用于根据目标容器对应的维护进程列表,获取维护进程列表中各目标进程的运行状态;其中,目标容器对应的维护进程列表通过读取预设配置文件获得。
8.根据权利要求5所述的容器内进程的监控装置,其特征在于:
所述重启模块还包括程序启动指令获取模块,用于根据异常进程的可运行程序目录获取异常进程的程序启动指令;
所述重启模块还用于根据程序启动指令重启异常进程。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010140560.2A CN111324423B (zh) | 2020-03-03 | 2020-03-03 | 容器内进程的监控方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010140560.2A CN111324423B (zh) | 2020-03-03 | 2020-03-03 | 容器内进程的监控方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324423A CN111324423A (zh) | 2020-06-23 |
CN111324423B true CN111324423B (zh) | 2022-03-04 |
Family
ID=71169081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010140560.2A Active CN111324423B (zh) | 2020-03-03 | 2020-03-03 | 容器内进程的监控方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324423B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858177B (zh) * | 2020-07-22 | 2023-12-26 | 广州六环信息科技有限公司 | 进程间通信的异常修复方法、装置、电子设备及存储介质 |
CN111737089B (zh) * | 2020-07-23 | 2021-04-23 | 北京升鑫网络科技有限公司 | 一种容器内信息资产的实时清点方法、装置及计算设备 |
CN113568768B (zh) * | 2021-07-28 | 2023-04-28 | 宁波三星医疗电气股份有限公司 | 一种能源控制器容器状态监控方法 |
CN113806304B (zh) * | 2021-08-23 | 2023-07-18 | 北京天融信网络安全技术有限公司 | 一种获取软件文件路径的方法及系统 |
CN113760409A (zh) * | 2021-09-09 | 2021-12-07 | 广州市百果园网络科技有限公司 | 服务实例管理方法、装置、设备及存储介质 |
CN116185642B (zh) * | 2023-04-24 | 2023-07-18 | 安徽海马云科技股份有限公司 | 容器内存的优化方法及装置、存储介质、电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915263A (zh) * | 2015-06-30 | 2015-09-16 | 北京奇虎科技有限公司 | 基于容器技术的进程故障处理方法及装置 |
CN105096973A (zh) * | 2015-08-03 | 2015-11-25 | 石家庄融尚科技有限公司 | 银行业务档案光盘脱机安全存储系统及存储方法 |
CN107357731A (zh) * | 2017-07-17 | 2017-11-17 | 福建星瑞格软件有限公司 | 进程产生core dump问题的监控、分析和处理方法 |
CN108121595A (zh) * | 2016-11-28 | 2018-06-05 | 中国科学院声学研究所 | 一种Docker容器多进程管理方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2680352A1 (en) * | 2008-09-23 | 2010-03-23 | Applied Radio Technologies Corporation | Waste compactor and container monitoring system |
CN101739327A (zh) * | 2008-11-07 | 2010-06-16 | 北大方正集团有限公司 | 一种对服务进程进行监控修复的方法和系统 |
CN102622290A (zh) * | 2012-03-07 | 2012-08-01 | 苏州阔地网络科技有限公司 | 一种进程监控的方法及系统 |
US20160368785A1 (en) * | 2015-06-16 | 2016-12-22 | Ilan ZAMIR | Methods and systems to reduce air pollution combined with water desalination of power station's marine waste water |
CN105389243B (zh) * | 2015-10-26 | 2018-06-05 | 华为技术有限公司 | 一种容器监控方法和装置 |
CN105677533B (zh) * | 2015-12-30 | 2018-12-11 | 广东欧珀移动通信有限公司 | 应用进程监控方法及应用进程监控装置 |
CN107423112B (zh) * | 2017-06-28 | 2020-06-26 | 浪潮云信息技术有限公司 | 一种Docker容器状态实时同步方法 |
JP2019159977A (ja) * | 2018-03-15 | 2019-09-19 | 富士通株式会社 | 制御プログラム、制御装置及び制御方法 |
CN109783197A (zh) * | 2019-01-18 | 2019-05-21 | 北京百度网讯科技有限公司 | 用于程序运行时环境的调度方法和装置 |
-
2020
- 2020-03-03 CN CN202010140560.2A patent/CN111324423B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915263A (zh) * | 2015-06-30 | 2015-09-16 | 北京奇虎科技有限公司 | 基于容器技术的进程故障处理方法及装置 |
CN105096973A (zh) * | 2015-08-03 | 2015-11-25 | 石家庄融尚科技有限公司 | 银行业务档案光盘脱机安全存储系统及存储方法 |
CN108121595A (zh) * | 2016-11-28 | 2018-06-05 | 中国科学院声学研究所 | 一种Docker容器多进程管理方法及系统 |
CN107357731A (zh) * | 2017-07-17 | 2017-11-17 | 福建星瑞格软件有限公司 | 进程产生core dump问题的监控、分析和处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111324423A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324423B (zh) | 容器内进程的监控方法、装置、存储介质和计算机设备 | |
CN108399132B (zh) | 一种调度测试方法、装置及存储介质 | |
US7908521B2 (en) | Process reflection | |
CN107016480B (zh) | 任务调度方法、装置及系统 | |
CN112416581B (zh) | 定时任务的分布式调用系统 | |
CN107589951B (zh) | 一种集群升级方法及装置 | |
CN110109741B (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
CN107040576B (zh) | 信息推送方法及装置、通讯系统 | |
CN108038039B (zh) | 记录日志的方法及微服务系统 | |
CN115543740A (zh) | 业务运行异常监控方法、系统、设备及存储介质 | |
CN110618853B (zh) | 一种僵尸容器的检测方法、装置及设备 | |
CN113965576B (zh) | 基于容器的大数据采集方法、装置、存储介质和设备 | |
CN111342986B (zh) | 分布式节点管理方法及装置、分布式系统、存储介质 | |
CN114237510A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112328602B (zh) | 一种数据写入Kafka的方法、装置及设备 | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN114691445A (zh) | 集群故障处理方法、装置、电子设备及可读存储介质 | |
CN109446034B (zh) | 上报崩溃事件的方法、装置、计算机设备及存储介质 | |
CN115373886A (zh) | 服务群组容器停机方法、装置、计算机设备和存储介质 | |
CN115525568A (zh) | 代码覆盖率的巡检方法、装置、计算机设备及存储介质 | |
CN115756659A (zh) | 一种服务装配、部署和运维的集成方法及系统 | |
US20230066698A1 (en) | Compute instance warmup operations | |
CN112181702B (zh) | 一种线程监测方法及装置 | |
CN114579252A (zh) | 一种监测应用状态的方法、系统、存储介质及设备 | |
CN113918407A (zh) | 一种管理服务进程的方法、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40023707 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |