容器是以一种轻量级的方式虚拟化应用程序的技术,它消耗更少的资源和时间。这导致了各种容器技术的发展,如LXC,Docker和RKT。所有这些技术都遵循相同的原理,应用程序可以共享其主机OS内核,并且仅包含适当的二进制文件和库,与虚拟机相比,其体积更小。
容器的监控对开发者而言,具有十分重要的作用,因为它可以监控正在运行的应用程序,并确保容器达到其预期目标。这有助于及早发现问题并快速解决问题。
由于容器在自己的命名空间中运行,因此主机系统中的传统Linux性能监控工具,如top,ps,tcpdump和lsof等无助于监控容器中发生的情况。但下面这些工具,对容器的性能监控有帮助。
Prometheus
Prometheus是云计算基金会的毕业项目,作为基于GUI的开源工具,可用于监控Docker容器。与Docker Stats和cAdvisor相比,Prometheus还提供了基于一些应用规则的警报机制。它利用导出器API来捕获和存储容器指标。
Docker stats
要监控Docker容器的资源使用情况,最为简单的解决方案是使用Docker stats的CLI命令。它是Docker守护程序中可用的开源默认API,并且根据CPU,RAM,网络和块I/O的使用情况提供了运行中的Docker容器的资源使用情况统计信息。
cAdvisor
cAdvisor由Google在2014年创建的项目,是监控Docker容器的开源工具。但是,与基于CLI的Docker Stats相比,cAdvisor还提供用于查看API信息的GUI。在cAdvisor中,多个容器应用程序使用的共享资源的隔离基于lmctfy的API。
Sensu
Sensu可为三种容器技术LXC,Docker和RKT提供支持。Sensu是自托管的,并提供集中的度量标准服务。但是,在生产环境中,Sensu的部署取决于各种补充服务,例如Sensu API和Sensu Core。
Sysdig
Sysdig是使用最广泛的容器监控工具,可为警报,数据聚合和可视化提供支持。它易于部署,并提供一个简单的界面,用户可以在其中查看有关CPU,内存和网络使用情况的信息。因此,Sysdig是监控正在运行的容器技术性能的不错选择。