容器技术在近两年得到很多企业的大力支持,以Docker为代表的容器被大中小型企业应用。容器技术虽然发展一段时间了,但是任何一种技术都不能保证不会出现问题,容器也是如此,那么应该如何才能减少宕机时间,提高容器弹性扩展能力与实际性能呢?
Container Monitoring(容器监测)是一种可以帮助了解容器内部以及获得某种支持的技术,而Docker自身的monitoring和introspection技术API逐渐成熟,已经有最新一波的容器监测技术利用到它们。
cAdvisor
cAdvisor是Google用来监测单节点的资源信息的监控工具,提供了一目了然的单节点多容器的图表型资源监控功能。它能够快速的产生,运行容器的基本行为等有用信息。
cAdvisor只需要依据命令行就能启动?cAdvisor,访问8080端口即可看到性能指标数据。它部署和使用很简单,但只可以监视在同一个host上运行的其他容器,所以并不适用于对多节点部署。
Netdata
Netdata是一款Linux性能实时监测工具。以web的可视化方式展示系统及应用程序的实时运行状态(包括cpu、内存、硬盘输入/输出、网络等linux性能的数据)。
Netdata是一个高度优化的Linux守护进程,它为Linux系统,应用程序,SNMP服务等提供实时的性能监测。它可以监测CPU的使用率,中断,软中断和频率;RAM,互换和内核内存的使用率和硬盘输入/输出等内容,操作简单,而且界面看起来也十分美观。
Prometheus
Prometheus是一个开源的系统监控、时间序列数据库和报警工具,最初由SoundCloud推出。Prometheus.io是一个系统监控和报警的开源框架。它可以摄取来自一个巨大范围数据源的数据包括容器。同时,数据来源并不局限cAdvisor、Kubernetes、CoreOS的Etcd。它的优点是多维度数据模型、不依赖分布式存储、查询语言灵活还有时间序列的采集是通过HTTP pull的形式,解决很多push架构的问题等;与此同时,它也有单机下存储量有限和内存占用率大等问题。