跳转到主要内容

一个类似于Linux CGroups的轻量级监控工具

项目描述

一个命令行/基于文本的Linux容器监控工具,其工作方式正如您所期待。

https://github.com/yadutaf/ctop/raw/master/screenshots/screenshot.png

赶时间吗?

curl -sSl https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py > /opt/ctop && python /opt/ctop

简介

ctop将帮助您查看容器层面的情况。基本上,容器是通过内核的cgroups和namespaces隔离的逻辑进程组。最近,它们因Docker而变得流行,它们也被systemd和其他大量的容器工具(如lxc、rocket、lmctfy等)大量使用。

在底层,ctop将实时从cgroups收集所有可用的指标,并将它们渲染出来,以立即为您提供全局系统健康状况的概述。

它目前收集与CPU、内存和块IO使用相关的指标,以及诸如所有者用户(主要针对基于systemd的容器)、运行时间和尝试猜测背后的容器管理技术等元数据。

当成功猜测到容器技术后,将暴露其他附加功能,如附加到容器(基本上,它在容器上下文中打开一个shell)和停止它。

ctop作者在生产系统中使用它来快速检测低内存情况下的最大内存使用者。

功能

  • 收集CPU、进程ID、内存和块IO指标

  • 收集任务数、所有者用户、容器技术等元数据

  • 按任何列排序

  • 按容器类型(docker、lxc、systemd等)筛选

  • 可选显示逻辑/树视图

  • 可选折叠/展开子cgroup树

  • 可选跟踪所选cgroup/容器

  • 可选暂停刷新(通常用于选择文本)

  • 检测Docker、LXC、无特权的LXC、OpenVZ和基于systemd的容器

  • 支持基于Docker、LXC和OpenVZ的容器的先进功能

  • 打开shell/连接到支持的容器类型进行进一步诊断

  • 停止/杀死/检查点支持容器类型

  • 点击排序/反转

  • 点击选择cgroup

  • 除Python >= 2.6或Python >= 3.0外,没有外部依赖

安装

作为一个监控工具,ctop试图尽可能不显眼。尽管如此,它还有一些期望。它至少需要Python 2.6,并具有内建的curses支持才能运行。这通常在Debian 6及更高版本中找到。

也就是说,推荐的安装方法依赖于pip

pip install ctop
ctop

如果使用pip不是一个选项,这在生产系统中通常是情况,你也可以直接从github抓取自包含的源文件,并就地运行它。你需要的只是Python 2.6(Debian Squeeze)

wget https://raw.githubusercontent.com/yadutaf/ctop/master/cgroup_top.py -O ctop
chmod +x ctop
./ctop

或者,如果你是Boot2docker用户,你可以安装一个ctop的Docker化版本。请注意,这是实验性的。你必须在你的容器内有一个docker二进制文件,以便使用此方法通过ctop控制/连接到你的容器

docker pull yadutaf/ctop
docker run --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro --volume=/var/run/docker.sock:/var/run/docker.sock -it --rm yadutaf/ctop
# Optionally, to resolve uids to usernames, add '--volume /etc/passwd:/etc/passwd:ro'

用法

命令行:

Monitor local cgroups as used by Docker, LXC, SystemD, ...

Usage:
  ctop [--tree] [--refresh=<seconds>] [--columns=<columns>] [--sort-col=<sort-col>] [--follow=<name>] [--fold=<cgroup>, ...] [--type=<container type>, ...]
  ctop (-h | --help)

Options:
  --tree                 Show tree view by default.
  --fold=<name>          Start with <name> cgroup path folded
  --follow=<name>        Follow/highlight cgroup at path.
  --type=TYPE            Only show containers of this type
  --refresh=<seconds>    Refresh display every <seconds> [default: 1].
  --columns=<columns>    List of optional columns to display. Always includes 'name'. [default: owner,processes,memory,cpu-sys,cpu-user,blkio,cpu-time].
  --sort-col=<sort-col>  Select column to sort by initially. Can be changed dynamically. [default: cpu-user]
  -h --help              Show this screen.

控制:

  • p键切换/暂停刷新并选择文本。

  • f键让选定的行跟随/保持在同一容器中。默认:不跟随。

  • qCtrl+C退出。

  • F5切换树/列表视图。默认:列表视图。

  • 在容器之间导航。

  • +-切换子cgroup折叠

  • 单击标题行以选择排序列/反转排序顺序。

  • 单击任何容器行以选择它。

另外,对于支持的容器类型(目前是Docker、LXC和OpenVZ)

  • a键连接到控制台输出。

  • e键在容器上下文中打开一个shell。即“进入”容器。

  • s键停止容器(SIGTERM)。

  • k键杀死容器(SIGKILL)。

  • c键检查点容器(目前只有OpenVZ - 运行“vzctl chkpnt CTID”)

要求

  • python >=2.6或python >=3.0,具有内建的curses支持

许可

MIT

项目详情


下载文件

下载适合您平台的项目。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ctop-1.0.0.tar.gz (13.3 kB 查看散列)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面