阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

系统之锹sysdig:Linux服务器监控和排障利器

435次阅读
没有评论

共计 3212 个字符,预计需要花费 9 分钟才能阅读完成。

当你需要追踪某个进程产生和接收的系统调用时,首先浮现在你脑海中的是什么?你可能会想到 strace,那么你是对的。你会使用什么样的命令行工具来监控原始网络通信呢?如果你想到了 tcpdump,你又作出了一个极佳的选择。而如果你碰到必须追踪打开的文件(在 Unix 意义上:一切皆文件)的需求,可能你会使用 lsof。

strace、tcpdump 以及 lsof,确实是些伟大的工具,它们应该成为每个系统管理员工具集之中的一部分,而这也正是你为什么应该爱上 sysdig 的原因。它是一个强大的开源工具,用于系统级别的勘察和排障,它的创建者在介绍它时称之为“strace+tcpdump+lsof+ 上面点缀着 lua 樱桃的绝妙酱汁”。抛开幽默不说,sysdig 的最棒特性之一在于,它不仅能分析 Linux 系统的“现场”状态,也能将该状态保存为转储文件以供离线检查。更重要的是,你可以自定义 sysdig 的行为,或者甚至通过内建的(你也可以自己编写)名为凿子(chisel)的小脚本增强其功能。单独的凿子可以以脚本指定的各种风格分析 sysdig 捕获的事件流。

系统之锹 sysdig:Linux 服务器监控和排障利器

在本教程中,我们将探索 sysdig 的安装及其基本用法,在 Linux 上实施系统监控和排障。

安装 Sysdig

对于本教程,由于为了简便、缩短安装流程以及版本的不可知,我们将选择使用官方网站提供的自动化安装过程。在自动化过程中,安装脚本会自动检测操作系统并安装必需的依赖包。

以 root 身份运行以下命令来从官方 apt/yum 仓库安装 sysdig:

  1. # curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash

系统之锹 sysdig:Linux 服务器监控和排障利器

安装完成后,我们可以通过以下方法调用 sysdig 来感受一下它:

  1. # sysdig

我们的屏幕将马上被系统上发生的所有事件填满,对于这些信息,不便于我们做更多操作。要进一步处理,我们可以运行:

  1. # sysdig -cl | less

来查看可用的凿子列表。

系统之锹 sysdig:Linux 服务器监控和排障利器

默认有以下类目可用,各个类目中分布有多个内建的凿子。

  • CPU Usage:CPU 使用量
  • Errors:错误
  • I/O
  • Logs:日志
  • Misc:混杂
  • Net:网络
  • Performance:性能
  • Security:安全
  • System State:系统状态

要显示指定凿子上的信息(包括详细的命令行用法),运行以下命令:

  1. # sysdig -cl [凿子名称]

例如,我们可以检查“网络”类目下关于 spy_port 凿子的信息:

  1. # sysdig -i spy_port

系统之锹 sysdig:Linux 服务器监控和排障利器

凿子可以通过过滤器(可同时应用于实时数据和记录文件)组合,以获取更多有用的输出。

过滤器遵从“类. 字段”结构。例如:

  • fd.cip:客户端 IP 地址。
  • evt.dir:事件方向,可以是‘>’用于进入事件,或‘<’用于退出事件。

完整的过滤器列表可以通过以下命令显示:

  1. # sysdig -l

在本教程剩余部分,我将演示几个 sysdig 的使用案例。

Sysdig 实例:服务器性能排障

假定你的服务器发生了性能问题(如,没有回应,或者重大的回应延迟)。你可以使用瓶颈凿子来显示当前 10 个最慢系统调用的列表。

使用以下命令在存活服务器上进行实时检查。“-c”标识,后跟凿子名称告诉 sysdig 运行指定的凿子。

  1. # sysdig -c bottlenecks

或者,你可以离线对服务器实施性能分析。在此种情况下,你可以保存完整的 sysdig 记录到文件,然后像下面这样针对记录运行瓶颈凿子。

首先,保存 sysdige 记录(使用 Ctrl+ c 来停止收集):

  1. # sysdig -w trace.scap

收集完记录后,你可以运行以下命令来检查捕获间隔中最慢的系统调用:

  1. # sysdig -r trace.scap -c bottlenecks

系统之锹 sysdig:Linux 服务器监控和排障利器

你需要关注栏 #2,#3 和#4,这些分别表示执行时间、进程名和 PID。

Sysdig 实例:监控交互用户活动

假定你作为系统管理员想要监控系统中交互的用户活动(如,用户在命令行输入了什么命令,以及用户去了什么目录),这时 spy_user 凿子就派上用场了。

让我们首先通过一些额外选项来收集一个 sysdig 记录。

  1. # sysdig -s 4096 -z -w /mnt/sysdig/$(hostname).scap.gz
  • “-s 4096”告诉 sysdig 每个事件捕获 4096 字节。
  • “-z”(与“-w”一起使用)为记录文件启用压缩。
  • “-w”保存 sysdig 记录到指定的文件。

在上面的例子中,我们自定义了基于每个主机的压缩的记录文件的名称。记住,你可以在任何时候按下 Ctrl+ c 来打断 sysdig 的执行。

在我们收集到了合理数量的数据后,我们可以通过运行以下命令来查看每个用户的交互活动:

  1. # sysdig -r /mnt/sysdig/debian.scap.gz -c spy_users

系统之锹 sysdig:Linux 服务器监控和排障利器

上面输出的第一栏表示与指定用户的活动相关进程的 PID。

如果你想要定位一个指定的用户,以及只监控该用户的活动又怎么样呢?你可以通过用户名对 spy_users 凿子的结果进行过滤:

  1. # sysdig -r /mnt/sysdig/debian.scap.gz -c spy_users “user.name=xmodulo”

系统之锹 sysdig:Linux 服务器监控和排障利器

Sysdig 实例:监控文件 I /O

我们可以使用“-p”标识来自定义 sysdig 记录的输出格式,并指定双引号括起来的想要的字段(如用户名、进程名,以及文件或套接口名称)。在本例中,我们将创建一个记录文件,该文件将只包含在家目录中的写入事件(我们今后可以使用“sysdig -r writetrace.scap.gz”来检测该文件)。

  1. # sysdig -p “%user.name %proc.name %fd.name” “evt.type=write and fd.name contains /home/” -z -w writetrace.scap.gz

系统之锹 sysdig:Linux 服务器监控和排障利器

Sysdig 实例:监控网络 I /O

作为服务器排障的一部分,你可能想要监听网络通信,此工作通常由 tcpdump 做。对于 sysdig,可以很容易进行通信嗅探,其风格更为对用户友好。

例如,你可以检查由特定 IP 地址,特定进程(如 apache2)提供的数据(ASCII 编码格式):

  1. # sysdig -s 4096 -A -c echo_fds fd.cip=192.168.0.100 -r /mnt/sysdig/debian.scap.gz proc.name=apache2

如果你想要监控原生数据传输(二进制格式),请把“-A”替换为“-X”:

  1. # sysdig -s 4096 -X -c echo_fds fd.cip=192.168.0.100 -r /mnt/sysdig/debian.scap.gz proc.name=apache2

要获取更多信息、实例以及案例分析,你可以查阅项目网站。相信我,会有着无限可能,但请不要仅仅局限于我所写的这些。安装 sysdig,请从今天开始深入挖掘吧!

Linux 系统安全工具之 tcpdump  http://www.linuxidc.com/Linux/2014-10/107889.htm

Linux 系统入门学习:如何使用 tcpdump 来捕获 TCP SYN,ACK 和 FIN 包  http://www.linuxidc.com/Linux/2014-10/107722.htm

Linux 运维工程师利器:Nmap 和 tcpdump http://www.linuxidc.com/Linux/2014-02/96993.htm

tcpdump 的用法及使用案例 http://www.linuxidc.com/Linux/2013-11/93200.htm

Linux 下实现 tcpdump http://www.linuxidc.com/Linux/2013-08/88775.htm

Linux 操作系统 tcpdump 抓包分析详解 http://www.linuxidc.com/Linux/2013-07/87309.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3212字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7978972
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...