容器的性能和健康状态是日常维护中非常重要的关注点,所以同样需要做好监控
一、Docker自带的容器监控工具。最适合快速了解容器运行状态。
docker container ps:查看正在运行的容器,使用-a选项可以显示已经停止的容器
docker container top:查看某个容器中运行了什么进程
docker container top centos
docker container stats:动态显示每个容器资源情况,类似Linux系统的top命令
二、第三方监控工具。Docker自带的监控工具虽然运行方便,但是输出数据有限,无法反应历史数据和变化趋势,所以有时候会结合第三方工具完成监控
sysdig:类似htop的工具,覆盖了操作系统的各个方面,还可以监控容器数据。不过缺点依然是实时显示数据,而看不到趋势数据。
weave scope:提供了每个容器的关系图以及性能指标
1、下载scope程序
curl -L git.io/scope -o /usr/local/bin/scope
2、运行程序后将会以容器的形式启动scope,并且监听在4040端口
chmod +x /usr/local/bin/scope
scope launch
3、访问测试,可以看到正在运行的容器和其数据指标,右侧的菜单可以对容器进行电源管理,还有详细的信息可以看到。左下角是当前容器展现方式,点击ALL可以看到所有容器,比如scope容器就在其中。
4、Weave Scope还支持多主机监控,这样可以看到每个宿主机和其容器信息。容器过多的话可以使用search搜索,或者使用条件过滤,比如cpu>50来过滤cpu高于50%的机器
scope launch 192.168.1.101 192.168.1.102
cAdvisor:提供了历史数据的展示。操作界面简陋,但是它可以导出数据,通常使用它导出数据给Prometheus进行展示、处理以及告警
Prometheus:功能强大且配置复杂的监控工具。Server负责从Exporter拉取数据,而Exporter就是负责收集数据的组件,比如Node Exporter负责收集操作系统和硬件数据,cAdvisor收集多个容器数据。