docker容器如何监控

docker容器如何监控?docker的运维是一个体系,而监控系统作为运维体系中重要组成部分,在 Docker运维过程中需要重点考虑。

容器与通常的虚拟机在虚拟化程度上存在着差异,在监控手段上也有不同。一台虚拟机,我们可以当做一个物理机对待,而容器虽然也可以当做虚拟机,但这不符合容器的使用理念。在监控的实现过程中,我们更倾向于把容器看做是宿主机上的一系列进程树。

业界已经出现的一些 Docker监控方案,如 Docker Stats、CAdvisor、Scout等,也都是在宿主机上对容器进行监控的。

模型化容器监控方案

这一方案有利于和运维基础的 CMDB系统打通,同时能兼顾到更多层次上的监控。监控系统一般会涉及:数据采集、数据存储、数据分析和报警、数据展示等几个部分。

1.监控对象模型

这里我们将使用一种产品树的结构来建模监控对象。把监控对象分为四类,分别是产品、应用、集群、节点。

产品:一般是一个高层次的概念,一个产品一般可以独立输出,对外提供服务。应用:是产品下的模块组成,多个应用共同形成一个产品。集群:是应用的存在形式。同一个应用,一般会依据环境,地域等,部署多个集群。节点:集群内承载服务的资源,包括前文提到的服务器,虚拟机,容器等。

这样,我们的监控数据采集,和视图展示,就可以基于产品树这个层次化的监控对象来做。每种监控对象上都可以有自定义的监控项,也可以继承上层的监控项。同时,分层次的监控对象,在很好地组织监控结构的时候,又可以从多种层次角度来反映出系统的运行状态和问题。

2.采集器模型

主要用于采集数据的模块,同时满足数据输出规范,为了便于解析,同时具备较好的数据结构展示,我们可以采用 Json格式作为数据规范。在数据的语义上需要匹配对应的数据模型。假如,针对节点模型的采集器,可以是一个脚本,通过捕获脚本执行输出来获取相应数据模型的数据。而上层节点的采集器,则一般是基于节点数据模型的一些计算,这些计算一般包括 sum,avg,max,min等,一般反映的是整个集群下节点的一些聚合数据。

3.数据模型

用来定义监控数据格式,模型包括数据项和指标项。一个数据项一般包含一个或者多个指标项。数据模型中的数据来自于对应的采集器。

假如,针对 CPU可以监控如下模型:数据项:cpu,指标项:usr,sys,idle

4.报警规则模型

在数据模型的基础上,针对每个数据指标项目,可以设置报警模型。假如,空闲 CPU少于 50%的时候触发报警,则可以建立如下规则:cpu.idle < 50

5.视图模型

这个模型将数据模型和视图关联起来了。包含数据展示方式定义,假如,可以是趋势图,表格等。可以结合数据模型中的数据项与指标项,描述具体数据指标的视图展示方式。不同监控对象上的视图,一般都能从不同层次体现出监控。

6.监控项模型

监控项模型,包含了采集器模型,数据模型,报警规则模型,视图模型等的组合。通过将监控项运用于监控对象上。从而可以对监控对象进行自定义模型化的监控。

融亿云的容器云产品就是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,秒级开通,高可用的的容器云

标签:
最后更新:2022/02/26
免责声明:本站部分内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。
如果您发现本社区中有涉嫌抄袭的内容请发送邮件至:Hi@r1yun.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

在线评论