Sysdig介绍
Sysdig 是一款集多种功能于一体的强大系统监控、分析和故障排查工具。它综合了 strace、tcpdump、htop、iftop 以及 lsof 等工具的功能,能够提供系统资源利用率、进程活动、网络连接以及系统调用等详细信息。Sysdig 不仅能够捕获大量系统运行数据,还具备强大的数据分析能力,除了能对于运行中的容器进程进行监控外,还可以对正常的进程进行监控
项目地址:https://github.com/draios/sysdig
官方文档:https://github.com/draios/sysdig/wiki
原理
Sysdig 通过在内核中嵌入驱动模块来挂钩系统调用。这使得在系统调用执行和完成时,它能够捕获相关信息,并将其传输至一个特定的缓冲区。随后,用户空间的组件对这些数据进行处理,包括解压、解析和过滤等操作。最终,通过Sysdig的命令行工具,这些信息会呈现给用户,实现与用户的交互
Sysdig安装
1. 导入Draios的GPG密钥
rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
2. 添加Draios的yum源
curl -s -o /etc/yum.repos.d/draios.repo https://s3.amazonaws.com/download.draios.com/stable/rpm/draios.repo
3. 安装epel-release包
yum install epel-release -y
4. 安装sysdig
yum install sysdig -y
5. 加载sysdig驱动模块
sysdig需要内核模块支持,scap-driver-loader命令会检查当前内核版本并加载对应的驱动模块
scap-driver-loader
6.检查安装的版本信息
sysdig -v
Sysdig使用
列出当前主机上所有运行的容器,包括它们的ID、名称、镜像
sysdig -c lscontainers
topcontainers_cpu
、topcontainers_net
和topcontainers_file
是Sysdig的chisels(小程序),它们分别用来实时显示消耗最多CPU、网络和文件I/O的容器
sysdig -c topcontainers_cpu #显示CPU使用率最高的容器
sysdig -c topcontainers_net #显示网络I/O最活跃的容器
sysdig -c topcontainers_file #显示文件I/O最活跃的容器
监控指定名称为"web"的容器的活动
sysdig -M 10 container.name=web #-M 10是一个参数,指定Sysdig捕获10分钟内的事件数据
应用场景
- 资源消耗、性能问题排查,如CPU、内存、I/O瓶颈
- 应用故障诊断,如请求延迟、错误码分析
- 容器监控,辅助容器可视化和问题定位
- 系统安全分析,如可疑行为、异常连接检测