如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障-創(chuàng)新互聯(lián)

這篇文章主要講解了“如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障”吧!

創(chuàng)新互聯(lián)公司專注于烏魯木齊網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供烏魯木齊營銷型網(wǎng)站建設(shè),烏魯木齊網(wǎng)站制作、烏魯木齊網(wǎng)頁設(shè)計(jì)、烏魯木齊網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造烏魯木齊網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供烏魯木齊網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

當(dāng)你需要追蹤某個(gè)進(jìn)程產(chǎn)生和接收的系統(tǒng)調(diào)用時(shí),首先浮現(xiàn)在你腦海中的是什么?你可能會(huì)想到strace,那么你是對的。你會(huì)使用什么樣的命令行工具來監(jiān)控原始網(wǎng)絡(luò)通信呢?如果你想到了tcpdump,你又作出了一個(gè)極佳的選擇。而如果你碰到必須追蹤打開的文件(在Unix意義上:一切皆文件)的需求,可能你會(huì)使用lsof。

strace、tcpdump以及l(fā)sof,確實(shí)是些偉大的工具,它們應(yīng)該成為每個(gè)系統(tǒng)管理員工具集之中的一部分,而這也正是你為什么應(yīng)該愛上sysdig的原因。它是一個(gè)強(qiáng)大的開源工具,用于系統(tǒng)級別的勘察和排障,它的創(chuàng)建者在介紹它時(shí)稱之為“strace+tcpdump+lsof+上面點(diǎn)綴著lua櫻桃的絕妙醬汁”。拋開幽默不說,sysdig的最棒特性之一在于,它不僅能分析Linux系統(tǒng)的“現(xiàn)場”狀態(tài),也能將該狀態(tài)保存為轉(zhuǎn)儲(chǔ)文件以供離線檢查。更重要的是,你可以自定義sysdig的行為,或者甚至通過內(nèi)建的(你也可以自己編寫)名為鑿子(chisel)的小腳本增強(qiáng)其功能。單獨(dú)的鑿子可以以腳本指定的各種風(fēng)格分析sysdig捕獲的事件流。
在本教程中,我們將探索sysdig的安裝及其基本用法,在Linux上實(shí)施系統(tǒng)監(jiān)控和排障。
安裝Sysdig

對于本教程,由于為了簡便、縮短安裝流程以及版本的不可知,我們將選擇使用官方網(wǎng)站提供的自動(dòng)化安裝過程。在自動(dòng)化過程中,安裝腳本會(huì)自動(dòng)檢測操作系統(tǒng)并安裝必需的依賴包。

以root身份運(yùn)行以下命令來從官方apt/yum倉庫安裝sysdig: 

代碼如下:

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

  如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

    安裝完成后,我們可以通過以下方法調(diào)用sysdig來感受一下它: 

代碼如下:

# sysdig

我們的屏幕將馬上被系統(tǒng)上發(fā)生的所有事件填滿,對于這些信息,不便于我們做更多操作。要進(jìn)一步處理,我們可以運(yùn)行: 

代碼如下:

# sysdig -cl | less

來查看可用的鑿子列表。
如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

默認(rèn)有以下類目可用,各個(gè)類目中分布有多個(gè)內(nèi)建的鑿子。

  •     CPU Usage:CPU使用量
        Errors:錯(cuò)誤
        I/O
        Logs:日志
        Misc:混雜
        Net:網(wǎng)絡(luò)
        Performance:性能
        Security:安全
        System State:系統(tǒng)狀態(tài)

要顯示指定鑿子上的信息(包括詳細(xì)的命令行用法),運(yùn)行以下命令: 

代碼如下:

# sysdig -cl [鑿子名稱]

例如,我們可以檢查“網(wǎng)絡(luò)”類目下關(guān)于spy_port鑿子的信息: 

代碼如下:

# sysdig -i spy_port


如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

    鑿子可以通過過濾器(可同時(shí)應(yīng)用于實(shí)時(shí)數(shù)據(jù)和記錄文件)組合,以獲取更多有用的輸出。

過濾器遵從“類.字段”結(jié)構(gòu)。例如:

  •     fd.cip:客戶端IP地址。
        evt.dir:事件方向,可以是&lsquo;>&rsquo;用于進(jìn)入事件,或&lsquo;<&rsquo;用于退出事件。

完整的過濾器列表可以通過以下命令顯示: 

代碼如下:

# sysdig -l

在本教程剩余部分,我將演示幾個(gè)sysdig的使用案例。
Sysdig實(shí)例: 服務(wù)器性能排障

假定你的服務(wù)器發(fā)生了性能問題(如,沒有回應(yīng),或者重大的回應(yīng)延遲)。你可以使用瓶頸鑿子來顯示當(dāng)前10個(gè)最慢系統(tǒng)調(diào)用的列表。

使用以下命令在存活服務(wù)器上進(jìn)行實(shí)時(shí)檢查?!?c”標(biāo)識,后跟鑿子名稱告訴sysdig運(yùn)行指定的鑿子。 

代碼如下:

# sysdig -c bottlenecks

或者,你可以離線對服務(wù)器實(shí)施性能分析。在此種情況下,你可以保存完整的sysdig記錄到文件,然后像下面這樣針對記錄運(yùn)行瓶頸鑿子。

首先,保存sysdige記錄(使用Ctrl+c來停止收集):

代碼如下:

# sysdig -w trace.scap

收集完記錄后,你可以運(yùn)行以下命令來檢查捕獲間隔中最慢的系統(tǒng)調(diào)用:

代碼如下:

# sysdig -r trace.scap -c bottlenecks

如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

你需要關(guān)注欄#2,#3和#4,這些分別表示執(zhí)行時(shí)間、進(jìn)程名和PID。
Sysdig實(shí)例: 監(jiān)控交互用戶活動(dòng)

假定你作為系統(tǒng)管理員想要監(jiān)控系統(tǒng)中交互的用戶活動(dòng)(如,用戶在命令行輸入了什么命令,以及用戶去了什么目錄),這時(shí)spy_user鑿子就派上用場了。

讓我們首先通過一些額外選項(xiàng)來收集一個(gè)sysdig記錄。 

代碼如下:

# sysdig -s 4096 -z -w /mnt/sysdig/$(hostname).scap.gz

  •     “-s 4096”告訴sysdig每個(gè)事件捕獲4096字節(jié)。
        “-z” (與“-w”一起使用)為記錄文件啟用壓縮。
        “-w ”保存sysdig記錄到指定的文件。

在上面的例子中,我們自定義了基于每個(gè)主機(jī)的壓縮的記錄文件的名稱。記住,你可以在任何時(shí)候按下Ctrl+c來打斷sysdig的執(zhí)行。

在我們收集到了合理數(shù)量的數(shù)據(jù)后,我們可以通過運(yùn)行以下命令來查看每個(gè)用戶的交互活動(dòng): 

代碼如下:

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

如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

    上面輸出的第一欄表示與指定用戶的活動(dòng)相關(guān)進(jìn)程的PID。

如果你想要定位一個(gè)指定的用戶,以及只監(jiān)控該用戶的活動(dòng)又怎么樣呢?你可以通過用戶名對spy_users鑿子的結(jié)果進(jìn)行過濾: 

代碼如下:

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

如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

   Sysdig實(shí)例: 監(jiān)控文件I/O

我們可以使用“-p”標(biāo)識來自定義sysdig記錄的輸出格式,并指定雙引號括起來的想要的字段(如用戶名、進(jìn)程名,以及文件或套接口名稱)。在本例中,我們將創(chuàng)建一個(gè)記錄文件,該文件將只包含在家目錄中的寫入事件(我們今后可以使用“sysdig -r writetrace.scap.gz”來檢測該文件)。 


代碼如下:

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

  如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障

    Sysdig實(shí)例: 監(jiān)控網(wǎng)絡(luò)I/O

作為服務(wù)器排障的一部分,你可能想要監(jiān)聽網(wǎng)絡(luò)通信,此工作通常由tcpdump做。對于sysdig,可以很容易進(jìn)行通信嗅探,其風(fēng)格更為對用戶友好。

例如,你可以檢查由特定IP地址,特定進(jìn)程(如apache2)提供的數(shù)據(jù)(ASCII編碼格式): 

代碼如下:

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

如果你想要監(jiān)控原生數(shù)據(jù)傳輸(二進(jìn)制格式),請把“-A”替換為“-X”:

代碼如下:

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

感謝各位的閱讀,以上就是“如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:如何使用sysdig監(jiān)控和排除Linux系統(tǒng)服務(wù)器故障-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article8/dscoop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、虛擬主機(jī)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名