vlambda博客
学习文章列表

一款功能强大的Docker容器实时指标监控

陌溪的学习笔记:http://note.moguit.cn

大家好,我是脚丫先生

我们都知道,在 Linux 系统下,可以通过 top 命令进行性能分析,能够实时显示各个进程下资源的占有状况,类似于 Windows 的任务管理器。

一款功能强大的Docker容器实时指标监控
top命令

但是,后端微服务都是部署在 Docker 容器里的,每个微服务服务都是一个 Java 程序

一款功能强大的Docker容器实时指标监控
top命令无法区分

所以,用 top 命令不是很好的区分,到底是哪个容器服务了,因为每个服务都叫 Java

一款功能强大的Docker容器实时指标监控

为了解决这个困惑,陌溪在网上冲浪的时候,发现了一款容器监视器 ctop

一款功能强大的Docker容器实时指标监控

ctop 用于提供系统中运行的容器的实时指标的简明概述,ctop 内置对 Docker 和 runC 的支持;其他容器和集群系统的连接器计划在未来发布。

Github:https://github.com/bcicen/ctop

一款功能强大的Docker容器实时指标监控
ctop官网

下面我们从官网上的示例,看看 ctop 命令运行后的效果

一款功能强大的Docker容器实时指标监控
ctop运行后

安装 ctop

ctop 提供了多种平台上的安装方式,因为蘑菇是部署在 CentOS 7.6 的系统上的,因此这里就使用 Linux 的安装方式,更多安装方式可以去官网查看~

首先,需要把官方打包的 ctop 最新的 release 发行版进行下载,放到 /usr/local/bin 目录下,然后分配执行权限

sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctop

如果,你的网速也和陌溪家里的一样,在这里卡了半天了,没动静(或许重新执行一次又行了)

一款功能强大的Docker容器实时指标监控
卡住了。。

那么,也可以自己去 release 页面,下载对应版本的包

ctop发行版:

https://github.com/bcicen/ctop/releases/tag/v0.7.7

一款功能强大的Docker容器实时指标监控
发行版

然后再给把下载的文件通过 xftp 丢到 /user/local/bin 目录下

一款功能强大的Docker容器实时指标监控

最后改个名,加个权限即可

 mv ctop-0.7.7-linux-amd64  ctop
 sudo chmod +x /usr/local/bin/ctop

然后直接运行 ctop 命令即可,可以看到每个容器运行占用的 CPU、内存、网卡流量、磁盘IO 都一目了了

一款功能强大的Docker容器实时指标监控
ctop查看容器

同时,我们可以移动到你想查看的容器上,按下回车键

一款功能强大的Docker容器实时指标监控
ctop菜单栏

这个时候,就左上角就会出现容器菜单,我们可以分别查看一下这几个命令的用法

  • Single View:容器的单视图页面,能够详细的看到容器运行的镜像、端口、容器环境,以及实时的 CPU、内存、网络、磁盘 等信息

一款功能强大的Docker容器实时指标监控
单个容器信息
  • log view:日志视图,通过这个命令就可以非常方便的看到容器内部的运行日志了,按回车键可退出

其实就是 docker logs 命令

查看容器日志
  • stop、pause、restart:分别对应的是关闭、暂停、重启容器,这里就不演示了

  • exec shell:这个命令是进入容器的内部,在里面可以查看容器内的一些信息,通过 exit 命令退出

相当于docker 的 exec 命令

进入容器内部

当然除了上述提到的通过图形化的方式来选择对应的功能,ctop 还提供了快捷键,如下所示:

a 切换显示所有(运行和非运行)容器
f 筛选显示的容器
H 切换ctop头
h 打开帮助对话框
s 选择容器排序字段
r 反向容器排序顺序
o 打开单一视图
l 查看容器日志(' t '用于打开时切换时间戳)
e 进入容器内部
c 配置列
S 将当前配置保存到文件
q 退出 ctop

好了,本期的软件推荐就到这里了

我是脚丫先生,我们下期再见~