文件名称:单台主机上容器的监控-i2c协议中文
文件大小:2.44MB
文件格式:PDF
更新时间:2024-06-30 00:41:01
Docker
6.1 容器的监控方案 传统的监控系统大多是针对物理机或虚拟机设计的,物理机和虚拟机的特点是静态的, 生命周期长,一个环境安装配置好后可能几年都不会去变动,那么对监控系统来说,监控对 像是静态的,对监控对象做的监控配置也是静态的,系统上线部署好监控后基本就不再需要 管理。 虽然物理机、虚拟机、容器对于应用进程来说都是 host环境,容器也是一个轻量级的虚拟 机, 但容器是动态的, 生命周期短,特别是在微服务的分布式架构下,容器的个数,IP地 址随时可能变化。如果还采用原来传统监控的方案,则会增加监控的复杂度。比如对于一个 物理机或虚拟机,我们只要安装一个监控工具的 agent就可以了,但如果在一个物理机上运 行了无数个容器,也采用安装 agent的方式,就会增加 agent 对资源的占用,但因为容器是 与宿主机是共享资源,所以在容器内采集的性能数据会是宿主机的数据,那就失去在容器内 采集数据的意义。 而且往往容器的数量比较多,采集到的数量也会非常多,容器可能启动几分钟就停止了,那 么原来采集的数据就没有价值了,则会产生大量这样没有价值的监控数据,维护起来也会非 常的复杂。那么应该如何对容器进行监控呢?答案是在容器外,宿主机上进行监控。这样不 仅可以监控到每个容器的资源使用情况,还可以监控到容器的状态,数量等数据。 6.2 单台主机上容器的监控 单台主机上容器的监控实现最简单的方法就是使用命令 Docker stats,就可以显示所有 容器的资源使用情况,如下输出: 虽然可以很直观地看到每个容器的资源使用情况,但是显示的只是一个当前值,并不能 看到变化趋势。而谷歌提供的图形化工具不仅可以看到每个容器的资源使用情况,还可以看 到主机的资源使用情况,并且可以设置显示一段时间内的趋势。以下是 cAdvisor 的面板: