简单实用的容器监控命令——Ctop

原创 2017年12月18日 00:00:00

出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散


说在前面


Ctop是一个新的基于命令行的工具,它可用于在容器层级间监控进程。容器通过利用控制器组(cgroup)的资源管理功能,提供了操作系统层级的虚拟化环境。该工具从cgroup收集与内存、CPU、Rx / Tx的相关数据,以及拥有者、开机时间等元数据,并以人性化的格式呈现给用户,这样就可以快速对系统健康状况进行评估。基于所获得的数据,它可以尝试推测下层的容器技术。Ctop也有助于在低内存环境中检测出谁在消耗大量的内存。



如果您选择了Docker作为您的容器服务平台,那么您一定体验过用它创建和部署容器是一件多么简单的事情。有可能您已经在您网络上运行了很多容器。但是,您知道这些容器的性能状况吗?如果您熟悉Linux,您可能希望有一个专门针对容器(类似于top / htop命令)的应用程序出现来帮助您监控容器。


没错,是有这样一款监控容器的应用程序,您可以在Github上找到一款名为ctop的开源工具。有了这个应用程序,您就可以快速监控容器内容,包括它们的名称、ID、CPU、内存和网络Rx / Tx数据。 Ctop甚至允许过滤您正在查看的内容,并给您提供一个选择容器的扩展视图。虽然它可能不会提供大量的功能,但是它完全可以胜任监控容器的这项工作。该工具易于安装,且方便使用。我将在Ubuntu 16.04平台上进行演示(您几乎可以将ctop安装到任何的Linux发行版上)。


安装


安装ctop有两种方式:一种是以容器的方式安装,一种是以应用程序的方式安装。首先,我们将ctop作为容器安装到您的计算机上。因此,需要您登录到您的容器服务器并发出以下命令来部署ctop容器:


docker run -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest


该命令将下载所需的镜像然后部署容器,并带您进入该应用程序中。要退出ctop,请按[Ctrl] + [x]组合键。以容器的方式使用ctop时,需要您每次都输入上述命令,是不是感到有些麻烦呢?接下来我将向您介绍另一种更简单的方式来使用ctop。


我们可以将ctop作为本地应用程序进行安装。为此,我们将从Github下载可执行文件,将其移入/ usr / local / bin文件夹中,并使用以下命令为其提供必要的权限:


wget https://github.com/bcicen/ctop/releases/download/v0.4.1/ctop-0.4.1-linux-amd64 -O ctop

sudo mv ctop /usr/local/bin/

sudo chmod +x /usr/local/bin/ctop


此时,您可以随时使用ctop命令来启动ctop了,是不是很方便呢。


使用方法


使用ctop很非常简单。一旦您打开ctop (如图A所示),您将看到一个显示所有当前活动容器的列表。


图A:三个正在运行的容器,其使用情况一目了然


正如您所看到的,我的一个名为wonderful_stallman的容器使用了1.37 GB的内存。这个特定的容器是Only Office的一个实例,所以它会使用更多的资源。但是,它几乎占用了我的虚拟机里面所有的系统资源,所以我可能会考虑将这个容器迁移到一个更强大的虚拟机。


使用ctop,您可以轻松地过滤您的容器。假设您的服务器上有大量容器存在,并且希望检查特定部署的资源使用情况。您可以打开ctop,并按下键盘上的f键打开过滤器(如图B所示)。


图B:过滤器已经准备就绪


输入容器的名称,ctop将显示与过滤器匹配的结果。当您的Docker服务器托管多个容器时,这是非常有用的。要清除过滤器,只需再次按下f键,然后按下Enter键即可。


如果您从容器列表中选择一个容器并按下了Enter键,您将会在一个方便阅读的新窗口看到更多信息(如图C所示)。


图C:展开关于OnlyOffice容器的详细信息


要退出这个方便阅读的新窗口,请按下q键。如果要退出ctop,请再次按下q键,返回bash界面。


足够的信息


这就是在Linux上使用ctop来查看容器详细信息的要点。这个工具不能提供大量的信息,但它会给您提供足够的信息来监控容器的运行状况。Ctop很容易成为排除Docker容器故障的第一道防线。



点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!


版权声明:本文为博主原创文章,未经博主允许不得转载。

Docker容器内的监控命令数据修正思路

思路概述:编写linux c代码,生成对应的动态链接库(so文件),通过LDPRELOAD实现对/proc文件系统访问的劫持。劫持之后,实现容器内正确的数据计算逻辑,并生成对应的/proc文件放到容器...
  • WaltonWang
  • WaltonWang
  • 2016年12月30日 11:21
  • 13940

zabbix企业应用之监控docker容器资源情况

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dl528888.blog.51cto.com/2382721/1660844 ...
  • joeyon
  • joeyon
  • 2016年08月12日 18:46
  • 1207

Docker 简单监控

https://segmentfault.com/a/1190000002362911 从 VM 迁移到 Docker 容器是非常容易的,除了监控部分。一个简单的方法,运行一个数据收集客户端(比...
  • joeyon
  • joeyon
  • 2016年08月12日 18:39
  • 1665

关于docker容器的监控

1 docker inspect [容器ID | 镜像ID] 查看容器创建时间、容器的IP、映射的端口、挂载的目录等信息。 此命令同样也能用来查看镜像的详细信息。2 docker stats 容器...
  • felix_yujing
  • felix_yujing
  • 2017年03月20日 16:14
  • 731

容器和实时资源监控的必知要素

实时监控容器资源为何重要?你应该重点关注哪些指标?哪些异常值得关注?怎样通过监控解决性能问题?...
  • RancherLabs
  • RancherLabs
  • 2017年06月29日 10:52
  • 580

容器的性能监控和日志管理

http://geek.csdn.net/news/detail/85495 以性能监控的场景为例,通常的实施方式有在主机上收集数据和在容器内部收集数据两种。若是在主机上收集性能数据,传统的监控...
  • liukuan73
  • liukuan73
  • 2016年08月16日 17:12
  • 1256

【实战】五个Docker监控工具的对比

【编者的话】这篇文章作者是Usman,他是服务器和基础架构工程师,有非常丰富的分布式构建经验。该篇文章主要分析评估了五种Docker监控工具,包括免费的和不免费的:Docker Stats、CAd...
  • u012369749
  • u012369749
  • 2015年12月17日 15:50
  • 2630

Docker应用的可视化监控管理

本文介绍一个开源项目Weave Scope,项目地址是https://github.com/weaveworks/scope。Weave Scope这个项目会自动生成容器之间的关系图,方便理解容器之间...
  • horsefoot
  • horsefoot
  • 2016年06月24日 06:49
  • 18363

zabbix自动发现实现批量监控docker状态

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://xianglinhu.blog.51cto.com/5787032/1697427...
  • joeyon
  • joeyon
  • 2016年08月12日 18:41
  • 6329

docker安装运行保存镜像容器

centos 6.2 1. 运行一个Docker实例 Docker首先会尝试从本地取得并运行所需的镜像,如果在本地主机上没有发现,它就会从Docker公共注册中心拉取。这里,我们将...
  • u010098331
  • u010098331
  • 2016年12月06日 20:41
  • 2766
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单实用的容器监控命令——Ctop
举报原因:
原因补充:

(最多只允许输入30个字)