一个类似于Linux CGroups的轻量级监控工具
项目描述
一个命令行/基于文本的Linux容器监控工具,其工作方式正如您所期待。
赶时间吗?
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键让选定的行跟随/保持在同一容器中。默认:不跟随。
按q或Ctrl+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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 332c68292c7e119cc4dbfa764f6238172f5acd26e0a9fd5748bd553f05245101 |
|
MD5 | 16b0dafd7c0d893c45d6dcf52e25053b |
|
BLAKE2b-256 | 9177829c00b102d35b0a188cd4dc02c2ae69a5640ca9b4957ecb9d507f33b754 |