首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用 Sysdig 监控服务器和 Docker 容器-1

用 Sysdig 监控服务器和 Docker 容器-1

前言伴随着容器技术的普及和落地,许多围绕在容器的开源工具也逐渐获得关注。新版本 Sysdig 在设计上充分运用了容器技术的成果,这主要体现在两个方面。一方面是 Sysdig 提供了可以快速运行的 Docker 容器镜像,这使得用户能够很方便地在任何安装了 Docker 的 Linux 环境中快速使用它进行系统数据的收集和分析。另一方面是 Sysdig 专门提供了容器级别的信息采集命令,支持查看指定容器之间的网络流量、查看特定容器的 CPU 使用情况。本文介绍 Sysdig 监控 Docker 的方法,对于经常使用容器作为产品运行方式的用户,它是这是一款值得使用服务器和容器“故障定位和排除工具”。
简介Sysdig 就是 system(系统)+dig(挖掘)的组合。Sysdig 是一个开源系统发掘工具,用于系统级别的勘察和排障,我们也可以把它看作一系列传统的 unix 系统工具的组合,主要包括:
  • strace:追踪某个进程产生和接收的系统调用。
  • tcpdump:分析网络数据,监控原始网络通信。
  • lsof: list opened files, 列出打开的文件。
  • top:监控系统性能工具。
  • htop :交互式的进程浏览器,可以用来替换 top 命令。
  • iftop :主要用来显示本机网络流量情况及各相互通信的流量集合。
  • lua:一个小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
另外 Sysdig 的特性之一在于它不仅能分析 linux 系统的“现场”状态,也能将该状态保存为转储文件以供离线分析检查。你也可以自定义 Sysdig 的行为,通过内建的名为凿子(chisel)的小脚本增强其功能。所以 Sysdig 经常被翻译为
系统之锹。通过 Sysdig 工具,用户能够很方便地查看到主机上所有应用程序的 cpu、文件 i/o、网络访问状况,这个工具最初的产生就是为了取代传统服务器上的一系列系统检测工具如 strace、tcpdump、htop、iftop、lsof 等。它的 logo 被设计为一个铲子的轮廓,寓意着 Sysdig 对系统信息的强大挖掘能力。
结构Sysdig 的结构非常相似 libpcap/tcpdump/wireshark。Sysdig 的数据处理分成用户空间和内核空间两个部分。首先在内核有一个组件叫 sysdig-probe(也可以把它称为数据探头),它通过跟踪 linux 内核来进行数据抓获。事件缓冲器(event buffer)用来
把存储器映射到用户空间。scap 组件用来进行:捕获控制和转储文件,以及数据的状态采集。sinsp 组件用来进行事件分析、执行凿子(chisel),设置过滤和输出格式化。最后 Sysdig 工具在命令行解析采集的数据。图 1 是 Sysdig 的工作流程示意图
图 1.Sysdig 的工作流程示意图最新版本的 Sysdig 还可以用来监控 Docker 容器的运行。一方面是 Sysdig 提供了可以快速运行的 Docker 容器镜像,这使得用户能够很方便地在任何安装了 Docker 的 Linux 环境中快速使用它进行系统数据的收集和分析。另一方面是 Sysdig 专门提供了容器级别的信息采集命令,支持查看指定容器之间的网络流量、查看特定容器的 CPU 使用情况等。图 2 是 Sysdig 监控 Docker 容器的示意图。
图 2.Sysdig 监控 Docker 容器的示意图软件包安装对于一般的 Linux 发行版,都可以通过下面这个命令直接安装 Sysdig 工具。
1
2
  $ curl -s
https://s3.amazonaws.com/download.draios.com/stable/install-sysdig| sudo bash




这是一个在线的自动安装工具,是一个 shell 脚本,会识别常用的 linux 发行版本,并根据对应的版本配置源,最后是安装 Sysdig 包。
对于中国的部分用户,可能是防火墙的问题不能在线完成安装。可以分步安装:
通过 yum 命令安装 Sysdig,我们需要准备好 yum 仓库,由 Sysdig 后面的 Draios 公司来维护。可以运行下面的 wget 命令来完成:
第一行命令下载 Draios gpg 密钥并把它加入 yum 密钥库。第二行从 Draios 下载 yum 源文件,并把它放到 /etc/yum.repos.d/ 路径下。
1
2
3
#rpm --import https://s3.amazonaws.com/downloa ... AIOS-GPG-KEY.public  
#wget -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
#rpm -i http://mirror.us.leaseweb.net/ep ... ease-6-8.noarch.rpm




Sysdig 工具需要用到内核头文件包,开始安装前,需要确认内核头文件包已安装上。
1
2
#yum -y install kernel-devel-$(uname -r)
#yum -y install sysdig




sysdig 的命令输出首先看看 sysdig 的输出内容,这里使用 more 分隔符如图 3
1
#sysdig |more




图 3.Sysdig 的输出内容第一列是事件序号,它是自动增长的;
第二列是发生事件的时间戳;
第三列是 CPU ID;
第四列是命令;
第五列是线程 ID;
第六列是事件方向,比如进入 ioctl 函数为 >,离开为 <;
第七列是事件名称(比如 ioctl);
第八列是事件参数。
说明:像 tcpdump 一样,Sysdig 命令也可以用 CTRL+C 来强制停止命令行输出。
返回列表