Stefan Thies是Sematext的DevOps布道师,在最近的一篇博客文章中,他讨论了十个重要的容器监控指标及其在Docker容器运维中的意义,尤其是针对单个主机上运行多个容器的场景。我们可以将它们集中到一个相互关联的视图中,这些指标为基于Docker的环境监控提供了一个很好的起点。
按照作者的说法,他针对容器运维提出了一组指标,它们的基本原理来源于容器监控所面临的挑战,因为容器的行为是与VM不同的:“传统的监控方案会从每个服务器以及它们运行的应用中获取指标。这些服务器以及运行在服务器上的应用一般都是静态的,会有非常长的运行时间。”
相反,容器的行为与之不同:
可以短期存活和动态调度;
是进程,但是具有自己的环境、虚拟网络和不同的存储管理;
共享底层主机的资源,在相同的主机上可能会调度短期存活的批处理命令以及长期存活的进程。
Stefan所提出的指标可以分为基于容器的以及基于主机的两类:
基于容器的指标
资源共享需要对容器进行合理的配额,而这反过来又需要能够看到容器资源的使用情况。根据调查,一个Docker主机一般会运行5个容器。另外,像Docker Swarm、Kubernetes或Mesos这样的容器协作解决方案能够高效调度主机集群中的多个容器,因此容器的行为需要进行监控并进行相应的调优。
基于主机的指标
相对于容器来说,Docker主机是长期运行的,因此应该进行处理能力管理和资源优化,当多个负载运行在同一个主机上的时候,更应如此。
作者建议使用现代的监控工具,以便应对容器动态化的特性。 Sematext提供了一个监控解决方案,它将监控、日志以及事件集成到了同一个视图之中,支持按照时间来查看这些数据。Docker Agent扩展了这个容器监控方案,包含了容器自动探测以及收集Docker事件、日志以及指标的特性。
监控Docker容器的其他方案包括cAdvisor、sysdig和DataDog。关于这些工具的对比,Rancher和InfoWorld曾经发布过相关的文章。
查看英文原文:Monitoring Metrics for Docker Containers
更多Docker相关教程见以下内容:
Docker安装应用(CentOS 6.5_x64)
Ubuntu 14.04安装Docker
在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker