sysdig介紹:
? ? ? ?當(dāng)需要追蹤某個(gè)進(jìn)程產(chǎn)生和接收的系統(tǒng)調(diào)用時(shí)篙程,你可能會(huì)想到strace猜嘱。你會(huì)使用什么樣的命令行工具來(lái)監(jiān)控原始網(wǎng)絡(luò)通信呢毅整?如果你想到了tcpdump映胁。而如果你碰到必須追蹤打開(kāi)的文件的需求预侯,可能你會(huì)使用lsof致开。strace、tcpdump和lsof確實(shí)是必備的工具萎馅,而這也正是你為什么應(yīng)該使用sysdig的原因双戳。它是一個(gè)強(qiáng)大的開(kāi)源工具,用于系統(tǒng)級(jí)別的勘察和排障糜芳,它的創(chuàng)建者在介紹它時(shí)稱(chēng)之“strace+tcpdump+lsof+上面點(diǎn)綴著lua櫻桃的絕妙醬汁”飒货。拋開(kāi)幽默不說(shuō),sysdig的最棒特性之一在于峭竣,它不僅能分析Linux系統(tǒng)的“現(xiàn)場(chǎng)”狀態(tài)塘辅,也能將該狀態(tài)保存為轉(zhuǎn)儲(chǔ)文件以供離線(xiàn)檢查。更重要的是皆撩,你可以自定義sysdig的行為扣墩,或者甚至通過(guò)內(nèi)建的(你也可以自己編寫(xiě))名為鑿子(chisel)的小腳本增強(qiáng)其功能哲银。單獨(dú)的鑿子可以以腳本指定的各種風(fēng)格分析sysdig捕獲的事件流。
sysdig安裝:
? ? sudo curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash? ? ? ? ?note:網(wǎng)絡(luò)不是很穩(wěn)定呻惕,可以多試幾次
sysdig選項(xiàng):
sysdig是一個(gè)工具箱荆责,包含很多工具,同時(shí)選項(xiàng)比較多亚脆,這里只選擇一些常用的做院,其余的讀者可以自行man sysdig或sysdig -l等來(lái)學(xué)習(xí);
sysdig ?-s 指定緩存達(dá)到多少字節(jié)時(shí)保存到磁盤(pán)型酥,也就是一行只保留多少字節(jié)山憨。
sysdig? -w ?file.scap 把追蹤到的數(shù)據(jù)保存在文件 ?注意 文件只能用 sysdig命令 才能查看。
sysdig? -r file.scap ? 閱讀保存的數(shù)據(jù)文件弥喉。
sysdig? -cl ?列出可以使用的 chisel郁竟,chisel 名為鑿子 是一種分析腳本,sysdig自帶的由境,也可以自己創(chuàng)建棚亩。
sysdig -c chiselName ?指定使用 chiselName的腳本來(lái)分析數(shù)據(jù)。
sysdig ?-A? ? (--print-ascii) ? 表示只打印數(shù)據(jù)中的文本部分 虏杰,人可以直接讀取的部分讥蟆。
sysdig? -b? ? ?(--print-base64) 已base64的格式打印數(shù)據(jù),這個(gè)對(duì)于需要把數(shù)據(jù)給別的工具分析比較有用纺阔。
默認(rèn)情況下 sysdig會(huì)把捕捉到的事件 按照下面的格式打尤惩:
?%evt.num(事件的序號(hào)),%evt.time(事件發(fā)生的時(shí)間) ?%evt.cpu(cpu的序號(hào)) %evt.type(事件的名稱(chēng)) ?%evt.info ? %proc.name(進(jìn)程名稱(chēng)) %evt.dir ? ?%thread.tid
sysdig -l 可以查看 一個(gè)域的用法 ?比如 ?sysdig -l fd 。
sysdig使用示例:
查看所有本機(jī)發(fā)出的以get方式請(qǐng)求的http請(qǐng)求
? ? ? sysdig -s 2000 ?-A -c echo_fds fd.port=80 and evt.buffer contains GET
查看磁盤(pán)io排名
? ? ? ?sysdig -c topprocs_file
查看進(jìn)程占用的網(wǎng)絡(luò)帶寬占比
? ? ?sysdig -c topprocs_net?
查看讀寫(xiě)活躍的文件目錄排名
? ? ?sysdig -c fdbytes_by fd.directory "fd.type=file"
查看cpu使用排名
? ? ? sysdig -c topproces_cpu
獲取機(jī)器的所有數(shù)據(jù)流笛钝,并將數(shù)據(jù)存儲(chǔ)在文件中
? ? ?sysdig -s 4096 -w file.scap