Docker容器内应用程序的监控方法和发布平台与流程

文档序号:15883070发布日期:2018-11-09 18:19阅读:245来源:国知局

本发明实施例涉及计算机技术领域,尤其涉及一种Docker容器内应用程序的监控方法和发布平台。



背景技术:

当前,随着以Docker为代表的虚拟化容器技术的快速普及和使用,应用程序的弹性伸缩能力得到了前所未有的增强。当应用程序负载过高时,可以根据docker镜像动态创建应用程序的docker容器来扩展应用程序的承载能力,在应用程序负载下降后,再动态销毁docker容器来减少应用程序对资源的闲置和浪费。

监控系统作为监测和控制应用程序的运维工具,在复杂的动态伸缩机制下,能够及时准确的反应操作系统和应用程序的状态和问题,其作用将会越来越重要。同时,在分布式应用程序环境下,监控系统需要管理大量监控对象,同样面临着巨大的性能压力。

现有的监控系统中,主要为zabbix监控系统。该zabbix监控系统具有分布式的总服务器/监控代理服务器模式。其中,监控代理服务器,用来收集监控数据和缓存并发送给总服务器,当监控对象的数量众多时,此模式可以简化zabbix监控系统的维护,降低总服务器的负载。

现有技术的zabbix监控系统提供部分监控对象自动发现功能,在监控对象为弹性伸缩的部署方式时,若监控对象进行自动销毁,监控对象的部署系统并不会通知zabbix监控系统,使zabbix监控系统继续对监控对象进行监控,使zabbix监控系统并不能区分监控对象是异常宕机还是正常销毁,使监控对象的部署方式为弹性伸缩的部署方式时不能实现对监控对象的动态监控。



技术实现要素:

本发明实施例提供一种Docker容器内应用程序的监控方法和发布平台,解决了现有技术中监控对象的部署方式为弹性伸缩的部署方式时不能实现对监控对象的动态监控的技术问题。

本发明实施例提供一种Docker容器内应用程序的监控方法,包括:

发布平台在物理机上创建应用程序的Docker容器,并启动所述Docker容器;

所述发布平台获取监控配置信息、监控项和报警规则信息;

所述发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建所述Docker容器对应的监控对象和监控项,以使所述Zabbix监控系统的Zabbix的总服务器从所述物理机上获取对应的监控数据,并根据监控数据和所述报警规则信息进行报警展示;

所述发布平台若确定应用程序的Docker容器满足销毁条件,则在所述物理机上销毁应用程序的Docker容器,并根据所述监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁所述Docker容器对应的监控对象、监控项和报警规则信息。

本发明实施例提供一种发布平台,包括:

第一创建模块,用于在物理机上创建应用程序的Docker容器,并启动所述Docker容器;

获取模块,用于所述发布平台获取监控配置信息、监控项和报警规则信息;

第二创建模块,用于根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建所述Docker容器对应的监控对象和监控项,以使所述Zabbix监控系统的Zabbix的总服务器从所述物理机上获取对应的监控数据,并根据监控数据和所述报警规则信息进行报警展示;

销毁模块,用于若确定应用程序的Docker容器满足销毁条件,则在所述物理机上销毁应用程序的Docker容器,并根据所述监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁所述Docker容器对应的监控对象、监控项和报警规则信息。

本发明实施例提供一种Docker容器内应用程序的监控方法和发布平台,通过发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器;发布平台获取监控配置信息、监控项和报警规则信息;发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项,以使Zabbix监控系统的Zabbix的总服务器从物理机上获取对应的监控数据,并根据监控数据和报警规则信息进行报警展示,发布平台若确定应用程序的Docker容器满足销毁条件,则在物理机上销毁应用程序的Docker容器,并根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息。由于Docker容器的创建和Zabbix监控系统中监控对象和监控项的创建均由发布平台统一进行,并且Docker容器的销毁和Zabbix监控系统中监控对象和监控项的销毁统一进行,实现了对监控对象的部署方式为弹性伸缩的部署方式时对监控对象的动态创建和销毁,保证了Docker容器的创建和销毁时,监控对象和监控项也一并创建和销毁,从而避免了现有技术中监控对象进行自动销毁时,继续对监控对象进行监控的现象发生,实现了对监控对象的动态监控。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明Docker容器内应用程序的监控方法实施例一的流程图;

图2为本发明Docker容器内应用程序的监控方法实施例二的流程图;

图3为本发明Docker容器内应用程序的监控方法实施例三的信令流程图;

图4为本发明发布平台实施例一的结构示意图;

图5为本发明发布平台实施例二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

图1为本发明Docker容器内应用程序的监控方法实施例一的流程图,如图1所示,本实施例提供的执行主体为应用程序的发布平台,该发布平台可以位于计算机或服务器的应用。则本实施例提供的WIFI热点服务的接入控制方法包括以下几个步骤。

步骤101,发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器。

具体地,本实施例中,应用程序可动态伸缩的进行部署。在应用程序通过Docker容器部署在物理机上时,发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器。

其中,每个应用程序可通过多个Docker容器部署在物理机上。在应用程序负载过高时,可创建并启动Docker容器来扩展应用程序的承载能力。

步骤102,发布平台获取监控配置信息、监控项和报警规则信息。

其中,监控配置信息为Zabbix监控系统的配置信息,如包括Zabbix监控系统中监控总服务器、监控代理服务器的IP地址信息、端口信息等。

其中,监控项为监控对象对应的监控指标,监控对象可以包括:物理机及物理机中Docker容器内的应用程序。对应于物理机的监控项可以为:CPU使用率、内存使用率、网络使用率等,该监控项为通用监控项。即对应于所有物理机进行的监控项,该监控项是相同的。对应于Docker容器内的应用程序的监控项为该Docker容器内的应用程序的特定监控项。该监控项根据监控的Docker容器内的应用程序的不同,该监控项可以不同。

其中,报警规则信息,即在监控数据在满足报警规则的条件下进行报警的信息。针对于不同的监控项,其报警规则信息不同。

具体地,监控项和报警规则信息为应用程序的配置信息,本实施例中,可将监控配置信息和应用程序的配置信息分别存储在配置中心装置上,该配置中心装置可以为计算机或服务器等。

步骤103,发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项,以使Zabbix监控系统的Zabbix的总服务器从物理机上获取对应的监控数据,并根据监控数据和报警规则信息进行报警展示。

具体地,本实施例中,发布平台根据监控配置信息,获取Zabbix监控系统中Zabbix的总服务器以及Zabbix的监控代理服务器的IP地址以及端口等信息,从而在Zabbix的总服务器上创建Docker容器对应的监控对象,以及该监控对象对应的监控项,并将报警规则加入到监控对象中。在Zabbix的总服务器上创建监控对象和监控项后,Zabbix的监控代理服务器与监控的物理机进行通信,从物理机中获取监控数据。并将监控数据发送给Zabbix的总服务器,以由Zabbix监控总服务器对监控数据进行收集、展示,并根据监控数据和报警规则信息判断监控数据是否符合报警条件,若符合,则进行报警展示等相应的监控操作。

本实施例中,发布平台获取到监控配置信息后,将监控配置信息发送给物理机的Docker容器以及Docker代理机,并且物理机中的Docker容器的应用程序获取到对应的应用程序配置信息,包括监控项和报警规则信息,Docker容器根据监控项对自身进行监控,形成特定监控数据,Docker代理机根据监控项对物理机进行监控,形成通用监控数据。并根据监控配置信息,将特定监控数据和通用监控数据发送给Zabbix监控系统的监控代理服务器。

步骤104,发布平台若确定应用程序的Docker容器满足销毁条件,则在物理机上销毁应用程序的Docker容器,并根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息。

本实施例中,若应用程序的Docker容器满足销毁条件,则发布平台在物理机上销毁应用程序的Docker容器,具体的销毁条件本实施例中不做限定。如可以为获取到应用程序的负载在预设阈值以下,还可以为发布平台接收到Docker容器的销毁指令等。

本实施例中,在发布平台在物理机上销毁应用程序的Docker容器后,一并将Zabbix监控系统的Zabbix的总服务器上该Docker容器对应的监控对象、监控项和报警规则信息进行销毁。具体地,本实施例中,发布平台根据监控配置信息,获取到对Docker容器进行监控的Zabbix的总服务器以及监控代理服务器的IP地址和端口,与Zabbix监控系统进行通信,将Zabbix的总服务器上对应的监控对象,以及该监控对象内的监控项和报警规则信息进行销毁。

本实施例提供的Docker容器内应用程序的监控方法,通过发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器;发布平台获取监控配置信息、监控项和报警规则信息;发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项,以使Zabbix监控系统的Zabbix的总服务器从物理机上获取对应的监控数据,并根据监控数据和报警规则信息进行报警展示;发布平台若确定应用程序的Docker容器满足销毁条件,在物理机上销毁应用程序的Docker容器,并根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息。由于Docker容器的创建和Zabbix监控系统中监控对象和监控项的创建均由发布平台统一进行,并且Docker容器的销毁和Zabbix监控系统中监控对象和监控项的销毁统一进行,实现了对监控对象的部署方式为弹性伸缩的部署方式时对监控对象的动态创建和销毁,保证了Docker容器的创建和销毁时,监控对象和监控项也一并创建和销毁,从而避免了现有技术中监控对象进行自动销毁时,继续对监控对象进行监控的现象发生,实现了对监控对象的动态监控。

图2为本发明Docker容器内应用程序的监控方法实施例二的流程图,如图2所示,本实施例提供的Docker容器内应用程序的监控方法相较于本发明Docker容器内应用程序的监控方法实施例一,为一个更为优选的实施例,则本实施例提供的Docker容器内应用程序的监控方法包括以下步骤。

步骤201,发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器。

本实施例中,步骤201的实现方式与本发明实施例一中的步骤101的实现方式相同,在此不再一一赘述。

步骤202,发布平台获取监控配置信息。

进一步地,本实施例中,在配置中心装置上存储有监控配置信息,发布平台从配置中心装置上获取监控配置信息。

步骤203,发布平台获取通用监控项。

其中,通用监控项是从Zabbix监控系统的Zabbix的总服务器中获取的。

进一步地,本实施例中,发布平台获取通用监控项具体包括:

首先,发布平台在Zabbix监控系统的Zabbix的总服务器上创建通用监控项模板。

具体地,通用监控项模板中包括对所有物理机进行监控的监控项,如监控项包括:CPU使用率、内存使用率、网络使用率等。

然后,发布平台从Zabbix监控系统的Zabbix的总服务器上获取通用监控项模板,形成通用监控项。

具体地,本实施例中,在发布平台为Docker容器中的应用程序创建监控对象时,可将通用监控项模板直接复用到监控对象上,形成该监控对象的通用监控项。所以该步骤也可在执行步骤205时执行。步骤204,发布平台获取特定监控项和报警规则信息。

其中,特定监控项和报警规则信息是从Docker容器中获取的。

进一步地,本实施例中,发布平台获取特定监控项和报警规则信息具体包括:

发布平台调用Docker容器对应的应用程序接口,获取特定监控项和报警规则信息。

其中,Docker容器中的应用程序对应的特定监控项和报警规则信息是Docker容器中的应用程序从配置中心装置中获取的。

具体地,本实施例中,在发布平台创建应用程序的Docker容器并启动Docker容器后,物理机从配置中心装置中获取该应用程序对应的特定监控项和报警规则信息。发布平台调用Docker容器对应的应用程序接口,获取特定监控项和报警规则信息。

步骤205,发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项,以使Zabbix监控系统的Zabbix的总服务器从物理机上获取对应的监控数据,并根据监控数据和报警规则信息进行报警展示。

进一步地,本实施例中,发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建的监控项中既包括特定监控项也包括通用监控项。

步骤206,发布平台若确定应用程序的Docker容器满足销毁条件,则在物理机上销毁应用程序的Docker容器,并根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息。

进一步地,本实施例中,发布平台在Zabbix监控系统的Zabbix的总服务器上销毁的监控项既包括特定监控项也包括通用监控项。

本实施例提供的Docker容器内应用程序的监控方法,通过发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器,获取监控配置信息和通用监控项,获取特定监控项和报警规则信息,根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项,以使Zabbix监控系统的Zabbix的总服务器从物理机上获取对应的监控数据,并根据监控数据和报警规则信息进行报警展示,在物理机上销毁应用程序的Docker容器,并根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息,不仅实现了对监控对象的动态监控,而且实现对监控对象中特定监控项的监控,能够对在同一物理机中的不同Docker容器中的应用程序的不同监控项进行监控。

图3为本发明Docker容器内应用程序的监控方法实施例三的信令流程图,如图3所示,本实施例提供的Docker容器内应用程序的监控方法包括以下步骤。

步骤301,发布平台在物理机上创建应用程序的Docker容器,并启动Docker容器。

步骤302,物理机从配置中心装置中获取Docker容器对应的应用程序监控信息。

其中,应用程序监控信息包括特定监控项和报警规则信息。

步骤303,发布平台从配置中心获取监控配置信息。

步骤304,发布平台调用Docker容器对应的应用程序接口,获取特定监控项和报警规则信息。

步骤305,发布平台将监控配置信息发送给物理机。

本实施例中,调用Docker容器对应的应用程序接口,不仅获取到特定监控项和报警规则信息,并且将监控配置信息发送给物理机,以使物理机中的Docker容器和Docker代理机获知监控配置信息。

步骤306,发布平台根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项。

具体地,本实施例中,在创建Docker容器对应的监控对象和监控项时,将特定监控项和通用监控项均加入到监控对象中。在将通用监控项加入到监控项中时,直接将Zabbix监控系统的Zabbix的总服务器中的通用监控项模板复用到监控对象中。

步骤307,物理机根据特定监控项对Docker容器内的应用程序进行监控,根据通用监控项对物理机进行监控。

具体地,物理机中的Docker容器根据特定监控项对Docker容器内的应用程序进行监控,形成特定监控数据。Docker代理机根据通用监控项对物理机进行监控,形成通用监控数据。

步骤308,物理机根据监控配置信息将监控数据发送给Zabbix监控系统的监控代理服务器,并由监控代理服务器将监控数据发送给Zabbix的总服务器。

步骤309,Zabbix监控系统对监控数据进行收集、展示,并根据监控数据和报警规则信息判断监控数据是否符合报警条件,若符合,则进行报警展示。

步骤310,发布平台若确定应用程序的Docker容器满足销毁条件,则在物理机上销毁应用程序的Docker容器。

步骤311,根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图4为本发明发布平台实施例一的结构示意图,如图4所示,该实施例提供的发布平台包括:第一创建模块41,获取模块42,第二创建模块43和销毁模块44。

其中,第一创建模块41,用于在物理机上创建应用程序的Docker容器,并启动Docker容器。获取模块42,用于获取监控配置信息、监控项和报警规则信息。第二创建模块43,用于根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上创建Docker容器对应的监控对象和监控项,以使Zabbix监控系统的Zabbix的总服务器从物理机上获取对应的监控数据,并根据监控数据和报警规则信息进行报警展示。销毁模块44,用于若确定应用程序的Docker容器满足销毁条件,则在物理机上销毁应用程序的Docker容器,并根据监控配置信息,在Zabbix监控系统的Zabbix的总服务器上销毁Docker容器对应的监控对象、监控项和报警规则信息。

图5为本发明发布平台实施例二的结构示意图;如图5所示,本实施例在本发明发布平台实施例一的基础上,获取模块42包括:第一获取单元421和第二获取单元422。

其中,第一获取单元421,用于获取特定监控项和报警规则信息。第二获取单元422,用于获取通用监控项。其中,特定监控项是从Docker容器中获取的,通用监控项是从Zabbix监控系统的Zabbix的总服务器中获取的。

进一步地,第一获取单元421,具体用于:发布平台调用Docker容器对应的应用程序接口,获取特定监控项和报警规则信息;其中,Docker容器中的应用程序对应的特定监控项和报警规则信息是Docker容器中的应用程序从配置中心装置中获取的。

进一步地,第二获取单元422,具体用于:发布平台在Zabbix监控系统的Zabbix的总服务器上创建通用监控项模板;发布平台从Zabbix监控系统的Zabbix的总服务器上获取通用监控项模板,形成通用监控项。

本实施例提供的发布平台可以执行图2和图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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