golang容器监控Top界面可视化工具插件ctop的使用
Golang容器监控Top界面可视化工具插件ctop的使用
ctop是一个类似top的界面,用于实时监控多个容器的指标数据。
功能特点
ctop提供了简洁的容器指标实时概览,支持多个容器同时监控:
它还支持单容器视图来检查特定容器。
ctop内置支持Docker和runC,未来版本计划支持其他容器和集群系统。
安装方法
Debian/Ubuntu
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://azlux.fr/repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/azlux-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/azlux.list >/dev/null
sudo apt-get update
sudo apt-get install docker-ctop
Arch Linux
sudo pacman -S ctop
Linux通用安装
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
macOS
brew install ctop
或
sudo port install ctop
或
sudo curl -Lo /usr/local/bin/ctop https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-darwin-amd64
sudo chmod +x /usr/local/bin/ctop
Windows
scoop install ctop
Docker方式运行
docker run --rm -ti \
--name=ctop \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
quay.io/vektorlab/ctop:latest
使用方法
ctop不需要任何参数,默认使用Docker主机变量。
配置文件
运行时使用S
键可以将当前的过滤器、排序字段和其他选项保存到默认配置文件路径(XDG系统上是~/.config/ctop/config
,其他系统是~/.ctop
)。
下次启动ctop时会加载和应用配置文件中的值。
选项
选项 | 描述 |
---|---|
-a |
仅显示活动容器 |
-f <string> |
设置初始过滤字符串 |
-h |
显示帮助对话框 |
-i |
反转默认颜色 |
-r |
反转容器排序顺序 |
-s |
选择初始容器排序字段 |
-v |
输出版本信息并退出 |
快捷键
按键 | 操作 |
---|---|
<ENTER> |
打开容器菜单 |
a |
切换显示所有(运行和非运行)容器 |
f |
过滤显示的容器(按esc 清除) |
H |
切换ctop头部 |
h |
打开帮助对话框 |
s |
选择容器排序字段 |
r |
反转容器排序顺序 |
o |
打开单视图 |
l |
查看容器日志(按t 切换时间戳) |
e |
执行Shell |
c |
配置列 |
S |
保存当前配置到文件 |
q |
退出ctop |
替代方案
可以参考Awesome Docker列表中类似Docker工具。
更多关于golang容器监控Top界面可视化工具插件ctop的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang容器监控Top界面可视化工具插件ctop的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Golang容器监控工具ctop使用指南
ctop是一个类似Linux top命令的容器监控工具,专为容器环境设计,提供实时可视化的容器监控界面。下面详细介绍ctop的安装和使用方法。
1. ctop简介
ctop具有以下特点:
- 实时显示容器CPU、内存、网络IO等指标
- 支持Docker、containerd、LXC等多种容器运行时
- 轻量级,无需额外依赖
- 交互式界面,支持排序、筛选等操作
2. 安装ctop
2.1 使用预编译二进制安装
# 下载最新版本
wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O ctop
# 添加执行权限
chmod +x ctop
# 移动到PATH目录
sudo mv ctop /usr/local/bin/
2.2 使用Go安装
go install github.com/bcicen/ctop@latest
2.3 使用包管理器安装
# For macOS
brew install ctop
# For Ubuntu/Debian
sudo snap install ctop
# For Arch Linux
yay -S ctop
3. 基本使用
启动ctop非常简单:
ctop
这将显示所有正在运行的容器的实时监控信息。
4. 常用快捷键
快捷键 | 功能描述 |
---|---|
a | 显示所有容器(包括停止的) |
f | 过滤显示容器 |
h | 显示帮助 |
s | 选择排序字段 |
r | 反向排序 |
o | 打开/关闭只显示运行中容器 |
l | 查看容器日志 |
e | 进入容器shell |
S | 保存当前配置 |
q | 退出ctop |
5. 高级用法
5.1 自定义显示列
ctop -i -s name,status,cpu,mem,net,io
5.2 连接到远程Docker守护进程
ctop -H tcp://remote-docker-host:2376
5.3 使用配置文件
ctop支持配置文件~/.ctop
,可以自定义默认行为:
# 示例配置
interval=5
sortField=cpu
invertSort=false
hideHeaders=false
6. 结合Golang代码使用
如果你想在自己的Go程序中集成类似ctop的功能,可以使用以下代码片段:
package main
import (
"context"
"fmt"
"os"
"text/tabwriter"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
)
func main() {
cli, err := client.NewClientWithOpts(client.FromEnv)
if err != nil {
panic(err)
}
containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{})
if err != nil {
panic(err)
}
w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0)
fmt.Fprintln(w, "CONTAINER ID\tIMAGE\tCOMMAND\tSTATUS\tPORTS\tNAMES")
for _, container := range containers {
fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%s\n",
container.ID[:12],
container.Image,
container.Command,
container.Status,
formatPorts(container.Ports),
container.Names[0][1:],
)
}
w.Flush()
}
func formatPorts(ports []types.Port) string {
var result string
for _, port := range ports {
if port.PublicPort != 0 {
result += fmt.Sprintf("%d->%d/%s, ", port.PublicPort, port.PrivatePort, port.Type)
}
}
if len(result) > 0 {
return result[:len(result)-2]
}
return ""
}
7. 总结
ctop是一个简单高效的容器监控工具,特别适合开发者和运维人员快速了解容器运行状态。相比完整的监控系统,ctop更加轻量级,适合临时诊断和日常监控使用。
对于生产环境,建议将ctop与Prometheus、Grafana等完整监控方案结合使用,ctop作为辅助的实时监控工具。