ps/top/stats、Sysdig、Weave Scope、cAdvisor 和 Prometheus 多种容器监控工具和方案,是时候做一个比较了。下面将从五个方面来对比它们之间的优劣。
部署容易度
ps/top/stats 无疑是最容易使用的,它们是 Docker 自带的子命令,随时随地都可以用来快速了解容器的状态。其余几种也都能以容器的方式运行,总的来说都不算复杂。相对而言,Prometheus 涉及的组件比较多,搭建整个方案需要运行的容器数量也要多些,部署和管理的难道稍大。
数据详细度
ps/top/stats 和 cAdvisor 能够监控容器基本的资源使用情况,Sysdig、Weave Scope 和 Prometheus 则能提供更丰富的数据。
多 Host 监控
Weave Scope 和 Prometheus 可以监控整个集群,而其余的工具只提供单个 Host 的监控能力。
告警功能
只有 Prometheus 具备原生的告警功能。
监控非容器资源
Sysdig、Weave Scope 和 cAdvisor 可以监控到 Host 操作系统的状态, Prometheus 则可以通过 Exporter 支持应用级别的监控,比如监控 ceph、haproxy 等。
四个方面的比较结果如下表所示。
几点建议
-
Docker ps/top/stats 最适合快速了解容器运行状态,从而判断是否需要进一步分析和排查。
-
Sysdig 提供了的丰富的分析和挖掘功能,是 Troubleshooting 的神器。
-
cAdvisor 一般不会单独使用,通常作为其他监控工具的数据收集器,比如 Prometheus。
-
Weave Scope 流畅简洁的操控界面是其最大亮点,而且支持直接在 Web 界面上执行命令。
-
Prometheus 的数据模型和架构决定了它几乎具有无限的可能性。Prometheus 和 Weave Scope 都是优秀的容器监控方案。除此之外,Prometheus 还可以监控其他应用和系统,更为综合和全面。