sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器。通过 sysdig 我们可以近距离观察 linux 操作系统和容器的行为。
Linux 上有很多常用的监控工具,比如 strace,tcpdump,htop, iftop,lsof ......
而 sysdig 则是将这些工具的功能集成到一个工具中,并且提供一个友好统一的操作界面。
下面我们将演示 sysdig 强大的监控能力。
安装和运行 sysdig 的最简单方法是运行 Docker 容器,命令行为:
docker container run -it --rm --name=sysdig --privileged=true \
--volume=/var/run/docker.sock:/host/var/run/docker.sock \
--volume=/dev:/host/dev \
--volume=/proc:/host/proc:ro \
--volume=/boot:/host/boot:ro \
--volume=/lib/modules:/host/lib/modules:ro \
--volume=/usr:/host/usr:ro \
sysdig/sysdig
可以看到,sysdig 容器是以 privileged
方式运行,而且会读取操作系统 /dev
,/proc
等数据,这是为了获取足够的系统信息。
启动后,通过 docker container exec -it sysdig bash
进入容器,执行 csysdig
命令,将以交互方式启动 sysdig。
这是一个类似 linux top 命令的界面,但要强大太多。sysdig 按不同的 View 来监控不同类型的资源,点击底部 Views
菜单(或者按 F2),显示 View 选择列表。
界面左边列出了 sysdig 支持的 View,一共 30 多项,涵盖了操作系统的各个方面,因为这里主要是讨论容器监控,所以我们将光标移到
Containers
这一项,界面右边立即显示出此 View 的功能介绍。
回车或者双击 Containers
,进入容器监控界面。
sysdig 会显示该 Host 所有容器的实时数据,每两秒刷新一次。各列数据的含义也是自解释的,如果不清楚,可以点一下底部 Legend
(或者按 F7)。如果想按某一列排序,比如按使用的内存量,很简单,点一下列头 VIRT
。
如果想看某个容器运行的进程,比如 weavescope
,将光标移到目标容器,然后回车或者双击。
还可以继续双击查看进程中的线程。
返回上一级,按退格键即可。
sysdig 的交互功能很强,如果界面显示的条目很多,可以点击底部 Search
菜单,然后输入关键字进行查找。如下图,关键字为 service
。
如果觉得界面刷新太快,看不清楚关注的信息,可以点击底部 Pause
菜单。
sysdig 的特点如下:
-
监控信息全,包括 Linux 操作系统和容器。
-
界面交互性强。
不过 sysdig 显示的是实时数据,看不到变化和趋势。而且是命令行操作方式,需要 ssh 到 Host 上执行,会带来一些不便。下一节介绍的 Weave Scope 在这方面似乎提供了更好的解决方案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义