一种容器监控方法和装置制造方法及图纸

技术编号:12988567 阅读:89 留言:0更新日期:2016-03-09 20:42
本发明专利技术实施例公开了一种容器监控方法和装置,用于对物理机上运行的多个被监控对象进行监控,该多个被监控对象的类型包括容器、容器内的进程和容器内的线程中的至少一种,该物理机包括主监控器,该主监控器接收该多个被监控对象各自上报的监控信息,该多个被监控对象中相同类型的被监控对象的监控信息是采用相同的通道上报的,该主监控器根据该监控信息和该标识确定该多个被监控对象各自的服务状态,能减少现有技术的监控过程中对资源的消耗,进一步解决了由于资源消耗大,从而无法满足对容器的多维度监控的需求的问题。

【技术实现步骤摘要】
一种容器监控方法和装置
本专利技术涉及物理机领域,更具体的涉及一种容器监控方法和装置。
技术介绍
容器(Container)技术是当前云计算的热点技术,它是一种轻量级虚拟化技术,通过进程组管理达到资源隔离的目的。由于容器具有易部署,启动速度快等优点,目前互联网行业已经大量部署容器,例如google的GAE(googleappengine)等。云计算厂商google,redhat等都在基于容器技术提供服务。近年来,容器密集化部署的趋势越来越明显,一台物理机上部署的容器数量已可以达到成百上千,并且随着技术的发展还会持续增多,而多数容器中又分布着多个进程或线程。为了保证容器在运行时的可靠性和可服务性(指可以确保为需要的应用提供合格的服务),需要对容器及其内部进程和线程的运行状态进行监控,准确获悉容器运行中出现的问题,并采用合理的策略解决。该监控具体可以包括对容器的监控,对容器内进程的监控和对容器内线程的监控。现有的容器监控方法中,由于容器的密集部署,而容器内又分布着诸多进程和/或线程,因此如果要全面监控容器及容器内进程和线程的运行情况,需要耗费大量的资源,严重影响物理机的性能,而在物理机的资源受限的情况下,甚至难以满足对容器的多维度监控的需求。
技术实现思路
有鉴于此,本专利技术实施例提供了一种用于容器的监控方法和装置,能够解决容器监控中资源开销过大的问题,进而能够满足对物理机上部署的容器进行多维度的监控的需求。第一方面,本专利技术实施例提供了一种容器监控方法,用于对物理机上运行的多个被监控对象进行监控,所述多个被监控对象的类型包括容器、容器内的进程和容器内的线程中的至少一种,所述物理机包括主监控器,所述监控方法包括:所述主监控器获得所述多个被监控对象各自上报的监控信息,其中,所述多个被监控对象中相同类型的被监控对象的监控信息是采用相同的通道上报的,所述多个被监控对象中的每一个被监控对象都具有唯一的标识,所述每一个被监控对象的监控信息包括心跳信息和服务质量报告中的至少一种,所述心跳信息表示上报所述心跳信息的被监控对象在心跳周期内的运行状态,所述服务质量报告用于记载上报所述服务质量报告的被监控对象承载的应用的服务质量QoS;所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态。这种容器监控的方法能够解决容器监控中资源开销过大的问题,进而能够满足对物理机上部署的容器进行多维度的监控的需求。在上报的监控信息包括心跳信息的情况下,被监控对象的服务状况包括该被监控对象的运行状态;在上报的监控信息包括服务质量报告的情况下,被监控对象的服务状况包括被监控对象所承载的应用的服务质量。当然,在上报的监控信息包括心跳信息和服务质量报告的情况下,被监控对象的服务状况包括该被监控对象的运行状态和被监控对象所承载的应用的服务质量。在第一方面的第一种可能的实现方式中,所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态,包括:所述主监控器通过所述多个被监控对象的监控信息所在的数据区与所述多个被监控对象的标识间的对应关系,确定上报所述监控信息的所述多个被监控对象各自的服务状态,所述数据区是上报所述监控信息的所述多个被监控对象的数据区,所述数据区包括堆和栈中的至少一种。需理解的是,在该操作系统运行过程中,该标识也注册在该操作系统的内存中。具体的,该标识注册在该操作系统内核态的内存中。需要说明的是,现有技术中由于容器的隔离性,运行在用户态的该多个被监控对象的视角有局限性,无法获知自己在操作系统中的唯一标识,也就无法通过在监控信息中加上标识的方式来使主监控器区分出监控信息的上报者的身份,因此现有技术方案是通过建立的与每个被监控对象一一对应的通道来标识被监控对象的。而本专利技术实施例的方案中,主监控器根据该上报的监控信息所在的数据区和存储在内存中的该多个被监控对象的属性信息(具体是该标识)的对应关系,确定上报的监控信息的上报者,从而能够多个被监控对象共用一个通道上报监控信息,达到节省资源的效果。结合第一方面和第一方面第一种可能的实现方式中的任一种,在第一方面的第二种可能的实现方式中,所述通道为文件或者进程间的通信连接。结合第一方面到第一方面第二种实现方式,在第三种可能的实现方式中,所述通道为Proc文件系统,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过Proc文件系统中的一个或多个文件上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享所述Proc文件系统中的同一个文件,以用于所述监控信息的上报。结合第一方面到第一方面第二种实现方式中的任一种,在第四种可能的实现方式中,所述通道为设备文件,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过一个或多个设备文件上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个设备文件,以用于所述监控信息的上报。结合第一方面到第一方面第二种实现方式中的任一种,在第五种可能的实现方式中,所述通道为Socket通信连接,其中,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过一个或多个Socket通信连接上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个Socket通信连接的地址,以用于所述监控信息的上报。需要说明的是,具体的,该Socket通信连接可以是UnixDomainSocket通信连接。结合第一方面到第一方面第二种实现方式的任一种实现方式,在第六种可能的实现方式中,所述通道为进程间通信通道IPC,所述多个被监控对象包括线程和进程中的至少一种,每个所述多个被监控对象所在的容器包括一监控线程,每个所述多个被监控对象所在的容器包括一监控线程,其中,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过各自对应的监控线程上报的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个IPC与所述主监控器通信,以用于所述监控信息的上报。结合第一方面到第一方面第六种实现方式中的任意一种,在第七种可能的实现方式中,在第一种可能的实现方式中,所述监控信息为所述心跳信息,所述方法还包括:所述主监控器确定所述多个被监控对象的配置信息,所述多个被监控对象的配置信息包括所述多个被监控对象的身份信息、心跳信息上报方式和所述心跳周期,所述多个被监控对象的身份信息包括所述多个被监控对象的标识,所述心跳信息上报方式指示所述通道的类型,所述心跳周期表示被监控对象在运行正常情况下上报心跳信息的时间间隔;所述主监控器向所述多个被监控对象推送各自的心跳信息上报方式,所述多个被监控对象是由所述身份信息中的标识确定的;相应的,所述主监控器获得所述多个被监控对象各自上报的监控信息,包括:所述主监控器获得所述多个被监控对象各自上报的心跳信息,所述心跳信息是根据所述多个被监控对象各自对应的心跳信息上报方式上报的;相应的,所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所本文档来自技高网...
一种容器监控方法和装置

【技术保护点】
一种容器监控方法,用于对物理机上运行的多个被监控对象进行监控,其特征在于,所述多个被监控对象的类型包括容器、容器内的进程和容器内的线程中的至少一种,所述物理机包括主监控器,所述监控方法包括:所述主监控器获得所述多个被监控对象各自上报的监控信息,其中,所述多个被监控对象中相同类型的被监控对象的监控信息是采用相同的通道上报的,所述多个被监控对象中的每一个被监控对象都具有唯一的标识,所述每一个被监控对象的监控信息包括心跳信息和服务质量报告中的至少一种,所述心跳信息表示上报所述心跳信息的被监控对象在心跳周期内的运行状态,所述服务质量报告用于记载上报所述服务质量报告的被监控对象承载的应用的服务质量QoS;所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态。

【技术特征摘要】
1.一种容器监控方法,用于对物理机上运行的多个被监控对象进行监控,其特征在于,所述多个被监控对象的类型包括容器、容器内的进程和容器内的线程中的至少一种,所述物理机包括主监控器,所述监控方法包括:所述主监控器获得所述多个被监控对象各自上报的监控信息,其中,所述多个被监控对象中相同类型的被监控对象的监控信息是采用相同的通道上报的,所述多个被监控对象中的每一个被监控对象都具有唯一的标识,所述每一个被监控对象的监控信息包括心跳信息和服务质量报告中的至少一种,所述心跳信息表示上报所述心跳信息的被监控对象在心跳周期内的运行状态,所述服务质量报告用于记载上报所述服务质量报告的被监控对象承载的应用的服务质量QoS;所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态。2.根据权利要求1所述的方法,其特征在于,所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态,包括:所述主监控器通过所述多个被监控对象的监控信息所在的数据区与所述多个被监控对象的标识间的对应关系,确定上报所述监控信息的所述多个被监控对象各自的服务状态,所述数据区是上报所述监控信息的所述多个被监控对象的数据区,所述数据区包括堆和栈中的至少一种。3.根据权利要求1或2所述的方法,其特征在于,所述通道为文件或者进程间的通信连接。4.根据权利要求3所述的方法,其特征在于,所述通道为Proc文件系统,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过Proc文件系统中的一个或多个文件上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享所述Proc文件系统中的同一个文件,以用于所述监控信息的上报。5.根据权利要求3所述的方法,其特征在于,所述通道为设备文件,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过一个或多个设备文件上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个设备文件,以用于所述监控信息的上报。6.根据权利要求3所述的方法,其特征在于,所述通道为Socket通信连接,其中,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过一个或多个Socket通信连接上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个Socket通信连接的地址,以用于所述监控信息的上报。7.根据权利要求3所述的方法,其特征在于,所述通道为进程间通信通道IPC,所述多个被监控对象包括线程和进程中的至少一种,每个所述多个被监控对象所在的容器包括一监控线程,其中,所述主监控器接收所述多个被监控对象各自上报的监控信息包括:所述主监控器接收所述多个被监控对象通过各自对应的监控线程上报的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个IPC与所述主监控器通信,以用于所述监控信息的上报。8.根据权利要求1所述的方法,其特征在于,所述监控信息为所述心跳信息,所述方法还包括:所述主监控器确定所述多个被监控对象的配置信息,所述多个被监控对象的配置信息包括所述多个被监控对象的身份信息、心跳信息上报方式和所述心跳周期,所述多个被监控对象的身份信息包括所述多个被监控对象的标识,所述心跳信息上报方式指示所述通道的类型,所述心跳周期表示被监控对象在运行正常情况下上报心跳信息的时间间隔;所述主监控器向所述多个被监控对象推送各自的心跳信息上报方式,所述多个被监控对象是由所述身份信息中的标识确定的;相应的,所述主监控器获得所述多个被监控对象各自上报的监控信息,包括:所述主监控器获得所述多个被监控对象各自上报的心跳信息,所述心跳信息是根据所述多个被监控对象各自对应的心跳信息上报方式上报的;相应的,所述主监控器根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态,包括:所述主监控器根据所述多个被监控对象的所述心跳周期和所述心跳信息,确定所述多个被监控对象各自的运行状态。9.根据权利要求8所述的方法,其特征在于,所述多个被监控对象的配置信息还包括所述多个被监控对象运行异常情况下的处理策略,所述身份信息还包括所述多个被监控对象的从属关系和配合关系中的至少一种,所述物理机还包括管理器,所述方法还包括:所述主监控器根据所述运行异常情况下的处理策略确定所述多个被监控对象中运行异常的被监控对象和关联被监控对象的处理动作,所述关联被监控对象与所述运行异常的被监控对象中的至少一个具有从属关系或者配合关系;所述管理器根据所述处理动作对所述多个被监控对象中运行异常的被监控对象和关联被监控对象进行处理。10.根据权利要求1所述的方法,其特征在于,所述监控信息为所述服务质量报告,所述方法还包括:所述主监控器确定所述多个被监控对象的配置信息,所述多个被监控对象的配置信息包括所述多个被监控对象的身份信息、服务质量报告上报方式和服务质量要求,所述多个被监控对象的身份信息包括所述多个被监控对象的标识,所述服务质量报告上报方式指示所述通道的类型,所述服务质量要求用于确定所述多个被监控对象承载的应用的QoS是否合格;所述主监控器向所述多个被监控对象推送各自的服务质量报告上报方式,所述多个被监控对象是由所述身份信息中的标识确定的;相应的,所述主监控器获得所述多个被监控对象各自上报的监控信息,包括:所述主监控器获得所述多个被监控对象各自上报的服务质量报告,所述服务质量报告是根据所述多个被监控对象各自对应的服务质量报告上报方式上报的;相应的,所述主监控器根据根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态包括:所述主监控器根据所述多个被监控对象的服务质量要求和所述服务质量报告确定所述多个被监控对象各自承载的应用的服务质量是否合格。11.根据权利要求10所述的方法,其特征在于,所述多个被监控对象的配置信息还包括服务质量不合格的情况下的处理策略,所述身份信息还包括所述多个被监控对象的从属关系和配合关系中的至少一种,所述物理机还包括管理器,所述方法还包括:所述主监控器根据所述服务质量不合格的情况下的处理策略确定所述多个被监控对象中服务质量不合格的被监控对象和关联被监控对象的处理动作,所述关联被监控对象与所述服务质量不合格的被监控对象中的至少一个具有从属关系或者配合关系;所述管理器根据所述处理动作对所述多个被监控对象中服务质量不合格的被监控对象和关联被监控对象进行处理。12.根据权利要求1所述的方法,其特征在于,所述物理机还包括发送模块,所述方法还包括:所述发送模块向管理服务器发送处理指令,所述处理指令包括处理动作和待处理的被监控对象的标识,所述处理指令被所述管理服务器用于将所述待处理的被监控对象对应的应用部署到其他至少一台物理机上,所述处理动作是所述主监控器根据所述多个被监控对象的服务状态和服务状态异常的情况下的处理策略确定的。13.根据权利要求1所述的方法,其特征在于,所述物理机还包括备监控器,所述方法还包括:在所述主监控器未在第一配置时长内收到所述备监控器的心跳信息的情况下,所述主监控器触发所述备监控器退出运行状态以便所述被监控器重新被启动,所述备监控器的心跳信息表示所述备监控器在一时间周期内运行正常;在所述备监控器未在第二配置时长内收到所述主监控器的心跳信息的情况下,所述备监控器触发所述主监控器退出运行状态,所述备监控器接管所述被监控对象使所述备监控器为当前的主监控器,所述主监控器所在的物理机重新启动所述主监控器使所述主监控器为当前的备监控器,所述主监控器的心跳信息表示所述主监控器在一时间周期内运行正常。14.一种物理机,其特征在于,所述物理机包括接收模块和主监控模块,所述物理机上运行多个被监控对象,所述接收模块用于提供所述多个被监控对象上报监控信息的通道,所述通道被所述多个被监控对象用于向所述主监控模块上报所述监控信息,所述主监控模块用于通过所述接收模块接收所述监控信息,其中,所述多个被监控对象中相同类型的被监控对象的监控信息是采用相同的通道上报的,所述多个被监控对象的类型包括容器、容器内的进程和容器内的线程中的至少一种,所述多个被监控对象中的每一个被监控对象都具有唯一的标识,所述每一个被监控对象的监控信息包括心跳信息和服务质量报告中的至少一种,所述心跳信息表示上报所述心跳信息的被监控对象在心跳周期内的运行状态,所述服务质量报告用于记载上报所述服务质量报告的被监控对象承载的应用的QoS;所述主监控模块还用于根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态。15.根据权利要求14所述的物理机,其特征在于,在所述根据所述多个被监控对象的监控信息和所述多个被监控对象的标识确定所述多个被监控对象各自的服务状态的方面,所述主监控模块通过所述多个被监控对象的监控信息所在的数据区与所述多个被监控对象的标识间的对应关系,确定上报所述监控信息的所述多个被监控对象各自的服务状态,所述数据区是上报所述监控信息的所述多个被监控对象的数据区,所述数据区包括堆和栈中的至少一种。16.根据权利要求14或15所述的物理机,其特征在于,所述通道为文件或者进程间的通信连接。17.根据权利要求16所述的物理机,其特征在于,所述通道为Proc文件系统,在所述通过所述接收模块接收所述监控信息的方面,所述主监控模块用于通过所述接收模块接收所述多个被监控对象通过Proc文件系统中的一个或多个文件上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享所述Proc文件系统中的同一个文件,以用于所述监控信息的上报。18.根据权利要求16所述的物理机,其特征在于,所述通道为设备文件,在所述通过所述接收模块接收所述监控信息的方面,所述主监控模块用于接收所述多个被监控对象通过一个或多个设备文件上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个设备文件,以用于所述监控信息的上报。19.根据权利要求16所述的物理机,其特征在于,所述通道为Socket通信连接,在所述通过所述接收模块接收所述监控信息的方面,所述主监控模块用于通过所述接收模块接收所述多个被监控对象通过一个或多个Socket通信连接上报的各自的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个Socket通信连接的地址,以用于所述监控信息的上报。20.根据权利要求16所述的物理机,其特征在于,所述通道为进程间通信通道IPC,所述多个被监控对象包括线程和进程中的至少一种,每个所述多个被监控对象所在的容器包括一监控线程,其中,在所述通过所述接收模块接收所述监控信息的方面,所述主监控模块用于通过所述接收模块接收所述多个被监控对象通过各自对应的监控线程上报的监控信息,其中,所述多个被监控对象中相同类型的被监控对象共享同一个IPC与所述主监控器通信,以用于所述监控信息的上报。21.根据权利要求14所述的物理机,其特征在于,所述监控信息为所述心跳信息,所述主监控模块还用于确定所述多个被监控对象的配置信息,所述多个被监控对象的配置信息包括所述多个被监控对象的身份信息、心跳信息上报方式和所述心跳周期,所述多个被监控对象的身份信息包括所述多个被监控对象的标识,所述心跳信息上报方式指示所述通道的类型,所述心跳周期表示被监控对象在运行正常情况下上报心跳信息的时间间隔;所述主监控模块还用于向所述多个被监控对象推送各自的心跳信息上报方式,所述多个被监控对象是由所述身份信息中的标识确定的;相应的,在所述通过所述接收模块接收所述监控信息的方面,所述主监控模块用于通过所述接收模块获得所述多个被监控对象各自上报的心跳信息,所述心跳信息是根据各自对应的心跳信息上报方式上报的;相应的,在根据所述多个被监控对象的监控...

【专利技术属性】
技术研发人员:吴启翾代雷陈善席
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1