Linux系統硬件監控規程_第1頁
Linux系統硬件監控規程_第2頁
Linux系統硬件監控規程_第3頁
Linux系統硬件監控規程_第4頁
Linux系統硬件監控規程_第5頁
已閱讀5頁,還剩189頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Linux系統硬件監控規程一、引言

Linux系統作為一種開源的操作系統,廣泛應用于服務器、嵌入式設備等領域。硬件監控是保障系統穩定運行的重要手段,通過實時監測CPU、內存、磁盤、網絡等硬件狀態,可以及時發現并解決潛在問題。本文檔旨在提供一套完整的Linux系統硬件監控規程,涵蓋監控工具的選擇、配置方法、數據采集及異常處理等方面,幫助管理員有效管理硬件資源,提升系統可靠性。

二、硬件監控工具的選擇與安裝

(一)常用監控工具

1.top:實時顯示系統資源使用情況,包括CPU、內存、進程等信息。

2.htop:圖形化版本,提供更直觀的監控界面,支持排序和過濾功能。

3.vmstat:顯示系統性能統計,如CPU、內存、磁盤I/O等。

4.iostat:專門監控磁盤I/O性能,可展示磁盤讀寫速率和隊列長度。

5.nmon:綜合性能監控工具,支持圖形化數據展示,需自行編譯安裝。

6.sysstat:包含多個性能監控工具,如mpstat、sar等,通過`yum`或`apt`安裝。

(二)安裝步驟

1.安裝sysstat:

-CentOS系統:`yuminstallsysstat`

-Ubuntu系統:`apt-getinstallsysstat`

2.安裝htop(可選):

-下載源碼或使用包管理器:`yuminstallhtop`或`apt-getinstallhtop`

-編譯安裝(若使用源碼):

```bash

wget/htop/htop/releases/download/v2.0.4/htop-2.0.4.tar.gz

tar-zxvfhtop-2.0.4.tar.gz

cdhtop-2.0.4

./configure

make&&makeinstall

```

三、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:`vi/etc/sysconfig/sysstat`

2.設置采集頻率(默認每小時采集一次):

```bash

SYSSTATD_OPTS="-i10-f"

```

3.啟動sysstat服務:

```bash

systemctlstartsysstat

systemctlenablesysstat

```

4.查看采集日志:`/var/log/sa/saXX`(XX為日期)

(二)實時監控操作

1.使用`top`查看實時資源使用率:

```bash

top

```

2.使用`htop`查看進程及資源占用:

```bash

htop

```

3.使用`vmstat1`每秒采集一次CPU、內存、磁盤狀態:

```bash

vmstat1

```

4.使用`iostat-x1`監控磁盤性能:

```bash

iostat-x1

```

(三)數據導出與分析

1.將sysstat日志導出為CSV格式:

```bash

sa1-A>/tmp/sysstat_data.csv

```

2.使用`gnuplot`或`excel`繪制性能曲線圖:

```bash

gnuplot/tmp/plot_script.gp

```

示例`plot_script.gp`:

```

setterminalpng

setoutput"/tmp/performance.png"

plot"/tmp/sysstat_data.csv"using1:2withlinestitle"CPUUsage"

```

四、異常檢測與處理

(一)異常指標判斷標準

1.CPU使用率:

-正常范圍:低于70%,若持續超過90%需關注。

-示例閾值:`if[$(top-bn1|grep"Cpu(s)"|awk'{print$2+$4}')-gt90];thenalert;fi`

2.內存使用率:

-正常范圍:低于80%,若持續超過90%需釋放內存或擴容。

3.磁盤I/O:

-正常范圍:`iostat`中`await`低于10ms,若持續超過50ms需優化磁盤。

4.網絡流量:

-異常流量可能表示攻擊或配置錯誤,需檢查`iftop`或`nethogs`。

(二)處理步驟

1.CPU過載:

-查找高CPU進程:`top-o%cpu`

-優化進程或升級硬件。

2.內存不足:

-使用`free-h`檢查,若Swap使用率高需調整swappiness或增加內存。

3.磁盤瓶頸:

-檢查`iostat`中的`r/s`和`w/s`,優化I/O或更換SSD。

4.網絡異常:

-使用`nethogs`定位異常接口,檢查防火墻規則。

五、總結

---

一、引言

Linux系統以其穩定性和靈活性,在服務器、網絡設備以及嵌入式系統等領域得到了廣泛應用。系統的穩定運行高度依賴于硬件的健康狀態。硬件故障或性能瓶頸可能導致服務中斷甚至系統崩潰。因此,建立一套科學、高效的硬件監控規程至關重要。本規程旨在為Linux系統管理員提供一套系統化的硬件監控方法,涵蓋監控工具的選擇、配置、日常操作、數據分析和異常處理等關鍵環節,以實現對硬件狀態的實時掌握和前瞻性維護,從而最大限度地保障系統的可靠性和可用性。

二、硬件監控工具的選擇與安裝

(一)常用監控工具

1.top:Linux內置的實時性能監視器,能夠動態顯示系統中各個進程的資源占用情況,包括CPU、內存、磁盤I/O和IO等待時間等。它是快速評估系統負載和進程狀態的常用命令。

(1)主要功能:

-實時刷新進程列表及資源使用率。

-按CPU或內存占用排序進程。

-顯示系統整體CPU和內存使用情況。

-終止或重啟進程。

(2)常用命令參數:

-`-c`:顯示完整的命令行。

-`-b`:以批處理模式運行,輸出結果后退出。

-`-n1`:顯示一次信息后退出(常用于腳本)。

2.htop:基于top的交互式進程監控器,提供了更友好的用戶界面和更豐富的功能。它可以實時顯示進程信息,并支持彩色高亮、進程樹視圖、標簽頁切換等。

(1)主要優勢:

-圖形化界面(需安裝),更直觀。

-可交互式操作(如殺進程、調整優先級)。

-顯示進程的CPU和內存使用歷史趨勢。

-支持多核CPU顯示。

3.vmstat:報告虛擬內存統計信息,包括CPU使用率、內存使用情況、磁盤I/O活動、交換空間活動、進程狀態等。它是分析系統整體性能和瓶頸的利器。

(1)關鍵字段說明(以默認輸出為例):

-`[s]`:系統處于軟中斷狀態的時間。

-`[c]`:系統處于上下文切換狀態的時間。

-`[d]`:磁盤等待時間。

-`us`:用戶空間CPU使用率。

-`sy`:系統空間CPU使用率(內核消耗)。

-`id`:CPU空閑率。

-`wa`:等待I/O的CPU時間。

-`bi`:塊設備輸入量(每秒KB)。

-`bo`:塊設備輸出量(每秒KB)。

-`in`:每秒中斷數。

-`cs`:每秒上下文切換數。

-`mi`:每秒內存頁錯誤數。

4.iostat:專門用于監視系統輸入/輸出設備負載的工具,可以報告磁盤的讀寫活動、設備利用率、平均等待時間等。

(1)主要功能:

-監視磁盤I/O性能。

-顯示多個磁盤設備的活動狀態。

-提供平均讀寫速率、等待時間等指標。

(2)常用命令參數:

-`-x`:擴展輸出,顯示更多詳細信息。

-`-d`:僅顯示磁盤統計信息。

-`-m`:以MB為單位顯示塊設備信息。

5.nmon:一個功能強大的實時和歷史性能監控工具,提供圖形化界面(通常需要編譯安裝),能夠監控CPU、內存、磁盤、網絡、系統進程等幾乎所有硬件和系統相關指標。數據以圖表形式清晰展示。

6.sysstat:一個集合了多個系統性能監控工具的包,主要包括`vmstat`、`iostat`、`mpstat`(多核CPU統計)、`sadc`(數據收集器)、`sa1`/`sa2`(數據收集器守護進程)等。它是許多系統監控方案的基石。

(二)安裝步驟

1.安裝sysstat(推薦,作為基礎工具集):

-在基于RPM的系統(如CentOS、Fedora)上:

```bash

sudoyuminstallsysstat

```

-在基于Debian的系統(如Ubuntu、Debian)上:

```bash

sudoapt-getupdate

sudoapt-getinstallsysstat

```

2.安裝htop(若未安裝sysstat的htop版本或需要更高級功能):

-在基于RPM的系統上:

```bash

sudoyuminstallhtop

```

-在基于Debian的系統上:

```bash

sudoapt-getinstallhtop

```

-源碼編譯安裝htop(適用于無法通過包管理器安裝或需要最新版本的情況):

a.安裝依賴包:

```bash

sudoyumgroupinstall"DevelopmentTools"

sudoyuminstallncurses-devel

```

b.下載htop源碼(訪問[/htop/htop/releases](/htop/htop/releases)獲取最新版本):

```bash

wget/htop/htop/releases/download/v2.0.4/htop-2.0.4.tar.gz

tar-xvfhtop-2.0.4.tar.gz

cdhtop-2.0.4

```

c.配置、編譯和安裝:

```bash

./configure--prefix=/usr--sbindir=/usr/bin--libdir=/usr/lib64--enable-unicode--enable-colors--enable-cgroup

make

sudomakeinstall

```

d.驗證安裝:

```bash

htop

```

3.啟動并啟用sysstat服務:

-啟動守護進程:

```bash

sudosystemctlstartsysstat

```

-設置開機自啟:

```bash

sudosystemctlenablesysstat

```

-(可選)設置采集頻率(編輯`/etc/sysconfig/sysstat`文件):

```bash

將以下行中的數字修改為需要的分鐘數(如5表示每5分鐘采集一次)

SYSSTATD_OPTS="-i10-f"

-i采集間隔(分鐘)

-f啟用文件系統統計

```

4.驗證安裝:

-檢查`iostat`命令是否存在:

```bash

iostat--version

```

-檢查`vmstat`命令是否存在:

```bash

vmstat--version

```

-檢查`htop`命令是否存在:

```bash

htop--version

```

三、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:

-使用文本編輯器(如`vi`或`nano`)打開配置文件:

```bash

sudovi/etc/sysconfig/sysstat

```

2.設置采集頻率和選項:

-修改`SYSSTATD_OPTS`變量,定義守護進程的運行參數。例如,設置每15分鐘采集一次,并啟用文件系統統計:

```bash

默認可能是空的或"-i10-f"

SYSSTATD_OPTS="-i15-f"

```

-其他常用選項:

-`-A`:啟用所有統計數據。

-`-m`:以MB為單位報告塊設備信息。

-`-y`:顯示所有設備(包括邏輯卷)。

3.啟動sysstat服務:

-確保服務正在運行:

```bash

sudosystemctlstatussysstat

```

-如果未運行,則啟動:

```bash

sudosystemctlstartsysstat

```

4.設置開機自啟:

-確保服務在系統重啟后自動啟動:

```bash

sudosystemctlenablesysstat

```

5.檢查采集日志:

-`vmstat`、`iostat`等生成的數據通常存儲在`/var/log/sa/`目錄下,文件名為`saXX`,其中`XX`為日期的后兩位。例如,2023年10月27日的日志為`sa27`。

-可以使用`more`、`less`或`cat`命令查看:

```bash

less/var/log/sa/sa27

```

-(可選)將日志歸檔:

```bash

sudocp/var/log/sa/sa/path/to/archived/logs/

```

(二)實時監控操作

1.使用`top`進行實時監控:

-常用命令:

```bash

顯示CPU和內存概覽

top

按CPU使用率排序

top-o%cpu

按內存使用率排序

top-o%mem

顯示完整命令行

top-c

批處理模式(用于腳本)

top-bn1

```

-關鍵觀察點:

-`%Cpu(s)`:系統總CPU使用率。

-`%MEM`:物理內存使用率。

-`PID`:進程ID。

-`USER`:進程所有者。

-`PR`:進程優先級。

-`NI`:Nice值。

-`VIRT`:進程虛擬內存占用。

-`RES`:進程實際物理內存占用。

-`SHARE`:進程共享內存占用。

-`S`:進程狀態(D=休眠,R=運行,Z=僵尸)。

-`TIME+`:進程累計CPU時間。

2.使用`htop`進行實時監控:

-常用操作:

```bash

啟動htop

htop

```

-交互式功能:

-按`h`顯示幫助信息。

-按`Shift+Space`切換CPU顯示模式(綜合/分離)。

-按`F2`打開設置菜單(可調整顏色、顯示列等)。

-使用方向鍵、`Tab`鍵在進程間導航。

-按`Space`選中/取消選中進程。

-按`F9`終止選中進程。

-按`F10`重啟選中進程。

-按`Shift+F10`退出htop。

3.使用`vmstat`進行多維度監控:

-常用命令:

```bash

每秒更新一次,顯示5次后退出

vmstat15

```

-關鍵字段解讀:

-`[d]`:等待磁盤I/O的時間(毫秒)。高值表示磁盤壓力大。

-`bi`:塊設備輸入量(每秒KB)。高值表示有大量數據從磁盤讀入。

-`bo`:塊設備輸出量(每秒KB)。高值表示有大量數據寫入磁盤。

-`in`:每秒中斷數。高值可能表示硬件或驅動問題。

-`cs`:每秒上下文切換數。過高可能表示系統負載過高或進程切換頻繁。

-`us`:用戶空間CPU使用率。

-`sy`:內核空間CPU使用率。

-`id`:CPU空閑率。低值通常表示系統繁忙。

4.使用`iostat`進行磁盤I/O監控:

-常用命令:

```bash

擴展輸出,每秒更新一次,顯示5次

iostat-x15

```

-關鍵字段解讀:

-`Device`:設備名稱(如sda)。

-`r/s`:每秒讀取次數。

-`w/s`:每秒寫入次數。

-`bread/s`:每秒讀取塊數(KB)。

-`bwrtn/s`:每秒寫入塊數(KB)。

-`avgrq-sz`:平均請求大小(KB)。高值表示請求的數據塊較大。

-`avgqu-sz`:平均隊列長度。高值表示磁盤I/O等待時間長。

-`await`:平均等待時間(毫秒)。高值表示磁盤響應慢。

-`svctm`:平均服務時間(毫秒)。高值表示磁盤處理請求時間長。

-`%util`:設備利用率(百分比)。接近100%表示磁盤繁忙。

5.使用`nmon`進行綜合監控:

-常用操作:

```bash

啟動nmon圖形界面

nmon

```

-界面分區:

-CPU:顯示各核心CPU使用率、頻率、溫度等。

-Memory:顯示內存總量、已用、緩存、交換空間使用情況。

-Disk:顯示各磁盤的讀寫速率、IOPS、等待時間等。

-Network:顯示網絡接口的收發速率、錯誤數等。

-System:顯示進程數、負載、中斷等信息。

-OS:顯示內核版本、文件系統、用戶登錄等信息。

-數據導出:通常可以通過界面菜單選擇導出當前屏幕數據為CSV或HTML格式。

(三)數據導出與分析

1.手動截取屏幕數據:

-對于`top`、`htop`、`vmstat`、`iostat`,可以將命令輸出重定向到文件:

```bash

top-bn1>/tmp/system_status_$(date+%Y%m%d_%H%M%S).log

vmstat110>/tmp/vmstat_$(date+%Y%m%d_%H%M%S).log

iostat-x110>/tmp/iostat_$(date+%Y%m%d_%H%M%S).log

```

2.使用`sadc`自動收集數據:

-`sadc`是sysstat包中的數據收集守護進程,可以按配置的模板定時生成數據文件。

-創建模板文件(例如`/etc/sysconfig/saconf`):

```bash

指定數據保存目錄

LOGDIR=/var/log/sa

指定輪詢間隔(分鐘)

interval=5

指定數據保存周期(天)

days=7

指定要收集的指標(所有可用指標)

-A:All,-c:CPU,-d:Disk,-e:Environment,-f:Filesystem,-k:Kernel,-m:Memory,-n:Network,-p:Process,-t:Top,-u:User

示例:收集CPU、磁盤、內存、網絡、進程、系統負載

EXTRAs=-Acdfkmnpstu

```

-啟動`sadc`服務:

```bash

sudosystemctlstartsadc

sudosystemctlenablesadc

```

-檢查日志文件是否按預期生成在`LOGDIR`中。

3.使用`sar`分析歷史數據:

-`sar`是sysstat包中的報表生成器,用于分析`sadc`收集的歷史數據。

-查看特定時間點的CPU使用率:

```bash

查看昨天1點整的CPU使用率

sar-u11--start=1d-1h

查看過去一周每天的CPU使用率平均值

sar-u11--start=1w

```

-查看特定時間點的磁盤I/O:

```bash

查看昨天1點整的磁盤讀寫次數

sar-d11--start=1d-1h

```

-查看網絡流量:

```bash

查看過去一周每天的網絡入/出速率平均值

sar-nDEV11--start=1w

```

4.使用`gnuplot`或圖形工具進行可視化:

-將`sar`輸出的數據(通常是表格式)導入`gnuplot`繪制圖表。

-示例`gnuplot`腳本(保存為`plot_cpu.gp`):

```bash

setterminalpng

setoutput"/tmp/cpu_usage.png"

settitle"CPUUsageOverTime"

setxlabel"Time"

setylabel"CPUUsage(%)"

setxdatatime

settimefmt"%Y-%m-%d%H:%M:%S"

plot"/tmp/sar_dataCPU_1min.csv"using1:2withlinestitle"User+System"

```

-運行腳本:

```bash

gnuplotplot_cpu.gp

```

-可使用`excel`、`matplotlib`(Python庫)等工具進行數據分析與繪圖。將`sar`輸出重定向為CSV文件后導入即可。

四、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:

-使用文本編輯器(如`vi`或`nano`)打開配置文件:

```bash

sudovi/etc/sysconfig/sysstat

```

2.設置采集頻率和選項:

-修改`SYSSTATD_OPTS`變量,定義守護進程的運行參數。例如,設置每15分鐘采集一次,并啟用文件系統統計:

```bash

默認可能是空的或"-i10-f"

SYSSTATD_OPTS="-i15-f"

```

-其他常用選項:

-`-A`:啟用所有統計數據。

-`-m`:以MB為單位報告塊設備信息。

-`-y`:顯示所有設備(包括邏輯卷)。

3.啟動sysstat服務:

-確保服務正在運行:

```bash

sudosystemctlstatussysstat

```

-如果未運行,則啟動:

```bash

sudosystemctlstartsysstat

```

4.設置開機自啟:

-確保服務在系統重啟后自動啟動:

```bash

sudosystemctlenablesysstat

```

5.檢查采集日志:

-`vmstat`、`iostat`等生成的數據通常存儲在`/var/log/sa/`目錄下,文件名為`saXX`,其中`XX`為日期的后兩位。例如,2023年10月27日的日志為`sa27`。

-可以使用`more`、`less`或`cat`命令查看:

```bash

less/var/log/sa/sa27

```

-(可選)將日志歸檔:

```bash

sudocp/var/log/sa/sa/path/to/archived/logs/

```

(二)實時監控操作

1.使用`top`進行實時監控:

-常用命令:

```bash

顯示CPU和內存概覽

top

按CPU使用率排序

top-o%cpu

按內存使用率排序

top-o%mem

顯示完整命令行

top-c

批處理模式(用于腳本)

top-bn1

```

-關鍵觀察點:

-`%Cpu(s)`:系統總CPU使用率。

-`%MEM`:物理內存使用率。

-`PID`:進程ID。

-`USER`:進程所有者。

-`PR`:進程優先級。

-`NI`:Nice值。

-`VIRT`:進程虛擬內存占用。

-`RES`:進程實際物理內存占用。

-`SHARE`:進程共享內存占用。

-`S`:進程狀態(D=休眠,R=運行,Z=僵尸)。

-`TIME+`:進程累計CPU時間。

2.使用`htop`進行實時監控:

-常用操作:

```bash

啟動htop

htop

```

-交互式功能:

-按`h`顯示幫助信息。

-按`Shift+Space`切換CPU顯示模式(綜合/分離)。

-按`F2`打開設置菜單(可調整顏色、顯示列等)。

-使用方向鍵、`Tab`鍵在進程間導航。

-按`Space`選中/取消選中進程。

-按`F9`終止選中進程。

-按`F10`重啟選中進程。

-按`Shift+F10`退出htop。

3.使用`vmstat`進行多維度監控:

-常用命令:

```bash

每秒更新一次,顯示5次后退出

vmstat15

```

-關鍵字段解讀:

-`[d]`:等待磁盤I/O的時間(毫秒)。高值表示磁盤壓力大。

-`bi`:塊設備輸入量(每秒KB)。高值表示有大量數據從磁盤讀入。

-`bo`:塊設備輸出量(每秒KB)。高值表示有大量數據寫入磁盤。

-`in`:每秒中斷數。高值可能表示硬件或驅動問題。

-`cs`:每秒上下文切換數。過高可能表示系統負載過高或進程切換頻繁。

-`us`:用戶空間CPU使用率。

-`sy`:內核空間CPU使用率。

-`id`:CPU空閑率。低值通常表示系統繁忙。

4.使用`iostat`進行磁盤I/O監控:

-常用命令:

```bash

擴展輸出,每秒更新一次,顯示5次

iostat-x15

```

-關鍵字段解讀:

-`Device`:設備名稱(如sda)。

-`r/s`:每秒讀取次數。

-`w/s`:每秒寫入次數。

-`bread/s`:每秒讀取塊數(KB)。

-`bwrtn/s`:每秒寫入塊數(KB)。

-`avgrq-sz`:平均請求大小(KB)。高值表示請求的數據塊較大。

-`avgqu-sz`:平均隊列長度。高值表示磁盤I/O等待時間長。

-`await`:平均等待時間(毫秒)。高值表示磁盤響應慢。

-`svctm`:平均服務時間(毫秒)。高值表示磁盤處理請求時間長。

-`%util`:設備利用率(百分比)。接近100%表示磁盤繁忙。

5.使用`nmon`進行綜合監控:

-常用操作:

```bash

啟動nmon圖形界面

nmon

```

-界面分區:

-CPU:顯示各核心CPU使用率、頻率、溫度等。

-Memory:顯示內存總量、已用、緩存、交換空間使用情況。

-Disk:顯示各磁盤的讀寫速率、IOPS、等待時間等。

-Network:顯示網絡接口的收發速率、錯誤數等。

-System:顯示進程數、負載、中斷等信息。

-OS:顯示內核版本、文件系統、用戶登錄等信息。

-數據導出:通常可以通過界面菜單選擇導出當前屏幕數據為CSV或HTML格式。

(三)數據導出與分析

1.手動截取屏幕數據:

-對于`top`、`htop`、`vmstat`、`iostat`,可以將命令輸出重定向到文件:

```bash

top-bn1>/tmp/system_status_$(date+%Y%m%d_%H%M%S).log

vmstat110>/tmp/vmstat_$(date+%Y%m%d_%H%M%S).log

iostat-x110>/tmp/iostat_$(date+%Y%m%d_%H%M%S).log

```

2.使用`sadc`自動收集數據:

-`sadc`是sysstat包中的數據收集守護進程,可以按配置的模板定時生成數據文件。

-創建模板文件(例如`/etc/sysconfig/saconf`):

```bash

指定數據保存目錄

LOGDIR=/var/log/sa

指定輪詢間隔(分鐘)

interval=5

指定數據保存周期(天)

days=7

指定要收集的指標(所有可用指標)

-A:All,-c:CPU,-d:Disk,-e:Environment,-f:Filesystem,-k:Kernel,-m:Memory,-n:Network,-p:Process,-t:Top,-u:User

示例:收集CPU、磁盤、內存、網絡、進程、系統負載

EXTRAs=-Acdfkmnpstu

```

-啟動`sadc`服務:

```bash

sudosystemctlstartsadc

sudosystemctlenablesadc

```

-檢查日志文件是否按預期生成在`LOGDIR`中。

3.使用`sar`分析歷史數據:

-`sar`是sysstat包中的報表生成器,用于分析`sadc`收集的歷史數據。

-查看特定時間點的CPU使用率:

```bash

查看昨天1點整的CPU使用率

sar-u11--start=1d-1h

查看過去一周每天的CPU使用率平均值

sar-u11--start=1w

```

-查看特定時間點的磁盤I/O:

```bash

查看昨天1點整的磁盤讀寫次數

sar-d11--start=1d-1h

```

-查看網絡流量:

```bash

查看過去一周每天的網絡入/出速率平均值

sar-nDEV11--start=1w

```

4.使用`gnuplot`或圖形工具進行可視化:

-將`sar`輸出的數據(通常是表格式)導入`gnuplot`繪制圖表。

-示例`gnuplot`腳本(保存為`plot_cpu.gp`):

```bash

setterminalpng

setoutput"/tmp/cpu_usage.png"

settitle"CPUUsageOverTime"

setxlabel"Time"

setylabel"CPUUsage(%)"

setxdatatime

settimefmt"%Y-%m-%d%H:%M:%S"

plot"/tmp/sar_dataCPU_1min.csv"using1:2withlinestitle"User+System"

```

-運行腳本:

```bash

gnuplotplot_cpu.gp

```

-可使用`excel`、`matplotlib`(Python庫)等工具進行數據分析與繪圖。將`sar`輸出重定向為CSV文件后導入即可。

五、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:

-使用文本編輯器(如`vi`或`nano`)打開配置文件:

```bash

sudovi/etc/sysconfig/sysstat

```

2.設置采集頻率和選項:

-修改`SYSSTATD_OPTS`變量,定義守護進程的運行參數。例如,設置每15分鐘采集一次,并啟用文件系統統計:

```bash

默認可能是空的或"-i10-f"

SYSSTATD_OPTS="-i15-f"

```

-其他常用選項:

-`-A`:啟用所有統計數據。

-`-m`:以MB為單位報告塊設備信息。

-`-y`:顯示所有設備(包括邏輯卷)。

3.啟動sysstat服務:

-確保服務正在運行:

```bash

sudosystemctlstatussysstat

```

-如果未運行,則啟動:

```bash

sudosystemctlstartsysstat

```

4.設置開機自啟:

-確保服務在系統重啟后自動啟動:

```bash

sudosystemctlenablesysstat

```

5.檢查采集日志:

-`vmstat`、`iostat`等生成的數據通常存儲在`/var/log/sa/`目錄下,文件名為`saXX`,其中`XX`為日期的后兩位。例如,2023年10月27日的日志為`sa27`。

-可以使用`more`、`less`或`cat`命令查看:

```bash

less/var/log/sa/sa27

```

-(可選)將日志歸檔:

```bash

sudocp/var/log/sa/sa/path/to/archived/logs/

```

(二)實時監控操作

1.使用`top`進行實時監控:

-常用命令:

```bash

顯示CPU和內存概覽

top

按CPU使用率排序

top-o%cpu

按內存使用率排序

top-o%mem

顯示完整命令行

top-c

批處理模式(用于腳本)

top-bn1

```

-關鍵觀察點:

-`%Cpu(s)`:系統總CPU使用率。

-`%MEM`:物理內存使用率。

-`PID`:進程ID。

-`USER`:進程所有者。

-`PR`:進程優先級。

-`NI`:Nice值。

-`VIRT`:進程虛擬內存占用。

-`RES`:進程實際物理內存占用。

-`SHARE`:進程共享內存占用。

-`S`:進程狀態(D=休眠,R=運行,Z=僵尸)。

-`TIME+`:進程累計CPU時間。

2.使用`htop`進行實時監控:

-常用操作:

```bash

啟動htop

htop

```

-交互式功能:

-按`h`顯示幫助信息。

-按`Shift+Space`切換CPU顯示模式(綜合/分離)。

-按`F2`打開設置菜單(可調整顏色、顯示列等)。

-使用方向鍵、`Tab`鍵在進程間導航。

-按`Space`選中/取消選中進程。

-按`F9`終止選中進程。

-按`F10`重啟選中進程。

-按`Shift+F10`退出htop。

3.使用`vmstat`進行多維度監控:

-常用命令:

```bash

每秒更新一次,顯示5次后退出

vmstat15

```

-關鍵字段解讀:

-`[d]`:等待磁盤I/O的時間(毫秒)。高值表示磁盤壓力大。

-`bi`:塊設備輸入量(每秒KB)。高值表示有大量數據從磁盤讀入。

-`bo`:塊設備輸出量(每秒KB)。高值表示有大量數據寫入磁盤。

-`in`:每秒中斷數。高值可能表示硬件或驅動問題。

-`cs`:每秒上下文切換數。過高可能表示系統負載過高或進程切換頻繁。

-`us`:用戶空間CPU使用率。

-`sy`:內核空間CPU使用率。

-`id`:CPU空閑率。低值通常表示系統繁忙。

4.使用`iostat`進行磁盤I/O監控:

-常用命令:

```bash

擴展輸出,每秒更新一次,顯示5次

iostat-x15

```

-關鍵字段解讀:

-`Device`:設備名稱(如sda)。

-`r/s`:每秒讀取次數。

-`w/s`:每秒寫入次數。

-`bread/s`:每秒讀取塊數(KB)。

-`bwrtn/s`:每秒寫入塊數(KB)。

-`avgrq-sz`:平均請求大小(KB)。高值表示請求的數據塊較大。

-`avgqu-sz`:平均隊列長度。高值表示磁盤I/O等待時間長。

-`await`:平均等待時間(毫秒)。高值表示磁盤響應慢。

-`svctm`:平均服務時間(毫秒)。高值表示磁盤處理請求時間長。

-`%util`:設備利用率(百分比)。接近100%表示磁盤繁忙。

5.使用`nmon`進行綜合監控:

-常用操作:

```bash

啟動nmon圖形界面

nmon

```

-界面分區:

-CPU:顯示各核心CPU使用率、頻率、溫度等。

-Memory:顯示內存總量、已用、緩存、交換空間使用情況。

-Disk:顯示各磁盤的讀寫速率、IOPS、等待時間等。

-Network:顯示網絡接口的收發速率、錯誤數等。

-System:顯示進程數、負載、中斷等信息。

-OS:顯示內核版本、文件系統、用戶登錄等信息。

-數據導出:通常可以通過界面菜單選擇導出當前屏幕數據為CSV或HTML格式。

(三)數據導出與分析

1.手動截取屏幕數據:

-對于`top`、`htop`、`vmstat`、`iostat`,可以將命令輸出重定向到文件:

```bash

top-bn1>/tmp/system_status_$(date+%Y%m%d_%H%M%S).log

vmstat110>/tmp/vmstat_$(date+%Y%m%d_%H%M%S).log

iostat-x110>/tmp/iostat_$(date+%Y%m%d_%H%M%S).log

```

2.使用`sadc`自動收集數據:

-`sadc`是sysstat包中的數據收集守護進程,可以按配置的模板定時生成數據文件。

-創建模板文件(例如`/etc/sysconfig/saconf`):

```bash

指定數據保存目錄

LOGDIR=/var/log/sa

指定輪詢間隔(分鐘)

interval=5

指定數據保存周期(天)

days=7

指定要收集的指標(所有可用指標)

-A:All,-c:CPU,-d:Disk,-e:Environment,-f:Filesystem,-k:Kernel,-m:Memory,-n:Network,-p:Process,-t:Top,-u:User

示例:收集CPU、磁盤、內存、網絡、進程、系統負載

EXTRAs=-Acdfkmnpstu

```

-啟動`sadc`服務:

```bash

sudosystemctlstartsadc

sudosystemctlenablesadc

```

-檢查日志文件是否按預期生成在`LOGDIR`中。

3.使用`sar`分析歷史數據:

-`sar`是sysstat包中的報表生成器,用于分析`sadc`收集的歷史數據。

-查看特定時間點的CPU使用率:

```bash

查看昨天1點整的CPU使用率

sar-u11--start=1d-1h

查看過去一周每天的CPU使用率平均值

sar-u11--start=1w

```

-查看特定時間點的磁盤I/O:

```bash

查看昨天1點整的磁盤讀寫次數

sar-d11--start=1d-1h

```

-查看網絡流量:

```bash

查看過去一周每天的網絡入/出速率平均值

sar-nDEV11--start=1w

```

4.使用`gnuplot`或圖形工具進行可視化

一、引言

Linux系統作為一種開源的操作系統,廣泛應用于服務器、嵌入式設備等領域。硬件監控是保障系統穩定運行的重要手段,通過實時監測CPU、內存、磁盤、網絡等硬件狀態,可以及時發現并解決潛在問題。本文檔旨在提供一套完整的Linux系統硬件監控規程,涵蓋監控工具的選擇、配置方法、數據采集及異常處理等方面,幫助管理員有效管理硬件資源,提升系統可靠性。

二、硬件監控工具的選擇與安裝

(一)常用監控工具

1.top:實時顯示系統資源使用情況,包括CPU、內存、進程等信息。

2.htop:圖形化版本,提供更直觀的監控界面,支持排序和過濾功能。

3.vmstat:顯示系統性能統計,如CPU、內存、磁盤I/O等。

4.iostat:專門監控磁盤I/O性能,可展示磁盤讀寫速率和隊列長度。

5.nmon:綜合性能監控工具,支持圖形化數據展示,需自行編譯安裝。

6.sysstat:包含多個性能監控工具,如mpstat、sar等,通過`yum`或`apt`安裝。

(二)安裝步驟

1.安裝sysstat:

-CentOS系統:`yuminstallsysstat`

-Ubuntu系統:`apt-getinstallsysstat`

2.安裝htop(可選):

-下載源碼或使用包管理器:`yuminstallhtop`或`apt-getinstallhtop`

-編譯安裝(若使用源碼):

```bash

wget/htop/htop/releases/download/v2.0.4/htop-2.0.4.tar.gz

tar-zxvfhtop-2.0.4.tar.gz

cdhtop-2.0.4

./configure

make&&makeinstall

```

三、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:`vi/etc/sysconfig/sysstat`

2.設置采集頻率(默認每小時采集一次):

```bash

SYSSTATD_OPTS="-i10-f"

```

3.啟動sysstat服務:

```bash

systemctlstartsysstat

systemctlenablesysstat

```

4.查看采集日志:`/var/log/sa/saXX`(XX為日期)

(二)實時監控操作

1.使用`top`查看實時資源使用率:

```bash

top

```

2.使用`htop`查看進程及資源占用:

```bash

htop

```

3.使用`vmstat1`每秒采集一次CPU、內存、磁盤狀態:

```bash

vmstat1

```

4.使用`iostat-x1`監控磁盤性能:

```bash

iostat-x1

```

(三)數據導出與分析

1.將sysstat日志導出為CSV格式:

```bash

sa1-A>/tmp/sysstat_data.csv

```

2.使用`gnuplot`或`excel`繪制性能曲線圖:

```bash

gnuplot/tmp/plot_script.gp

```

示例`plot_script.gp`:

```

setterminalpng

setoutput"/tmp/performance.png"

plot"/tmp/sysstat_data.csv"using1:2withlinestitle"CPUUsage"

```

四、異常檢測與處理

(一)異常指標判斷標準

1.CPU使用率:

-正常范圍:低于70%,若持續超過90%需關注。

-示例閾值:`if[$(top-bn1|grep"Cpu(s)"|awk'{print$2+$4}')-gt90];thenalert;fi`

2.內存使用率:

-正常范圍:低于80%,若持續超過90%需釋放內存或擴容。

3.磁盤I/O:

-正常范圍:`iostat`中`await`低于10ms,若持續超過50ms需優化磁盤。

4.網絡流量:

-異常流量可能表示攻擊或配置錯誤,需檢查`iftop`或`nethogs`。

(二)處理步驟

1.CPU過載:

-查找高CPU進程:`top-o%cpu`

-優化進程或升級硬件。

2.內存不足:

-使用`free-h`檢查,若Swap使用率高需調整swappiness或增加內存。

3.磁盤瓶頸:

-檢查`iostat`中的`r/s`和`w/s`,優化I/O或更換SSD。

4.網絡異常:

-使用`nethogs`定位異常接口,檢查防火墻規則。

五、總結

---

一、引言

Linux系統以其穩定性和靈活性,在服務器、網絡設備以及嵌入式系統等領域得到了廣泛應用。系統的穩定運行高度依賴于硬件的健康狀態。硬件故障或性能瓶頸可能導致服務中斷甚至系統崩潰。因此,建立一套科學、高效的硬件監控規程至關重要。本規程旨在為Linux系統管理員提供一套系統化的硬件監控方法,涵蓋監控工具的選擇、配置、日常操作、數據分析和異常處理等關鍵環節,以實現對硬件狀態的實時掌握和前瞻性維護,從而最大限度地保障系統的可靠性和可用性。

二、硬件監控工具的選擇與安裝

(一)常用監控工具

1.top:Linux內置的實時性能監視器,能夠動態顯示系統中各個進程的資源占用情況,包括CPU、內存、磁盤I/O和IO等待時間等。它是快速評估系統負載和進程狀態的常用命令。

(1)主要功能:

-實時刷新進程列表及資源使用率。

-按CPU或內存占用排序進程。

-顯示系統整體CPU和內存使用情況。

-終止或重啟進程。

(2)常用命令參數:

-`-c`:顯示完整的命令行。

-`-b`:以批處理模式運行,輸出結果后退出。

-`-n1`:顯示一次信息后退出(常用于腳本)。

2.htop:基于top的交互式進程監控器,提供了更友好的用戶界面和更豐富的功能。它可以實時顯示進程信息,并支持彩色高亮、進程樹視圖、標簽頁切換等。

(1)主要優勢:

-圖形化界面(需安裝),更直觀。

-可交互式操作(如殺進程、調整優先級)。

-顯示進程的CPU和內存使用歷史趨勢。

-支持多核CPU顯示。

3.vmstat:報告虛擬內存統計信息,包括CPU使用率、內存使用情況、磁盤I/O活動、交換空間活動、進程狀態等。它是分析系統整體性能和瓶頸的利器。

(1)關鍵字段說明(以默認輸出為例):

-`[s]`:系統處于軟中斷狀態的時間。

-`[c]`:系統處于上下文切換狀態的時間。

-`[d]`:磁盤等待時間。

-`us`:用戶空間CPU使用率。

-`sy`:系統空間CPU使用率(內核消耗)。

-`id`:CPU空閑率。

-`wa`:等待I/O的CPU時間。

-`bi`:塊設備輸入量(每秒KB)。

-`bo`:塊設備輸出量(每秒KB)。

-`in`:每秒中斷數。

-`cs`:每秒上下文切換數。

-`mi`:每秒內存頁錯誤數。

4.iostat:專門用于監視系統輸入/輸出設備負載的工具,可以報告磁盤的讀寫活動、設備利用率、平均等待時間等。

(1)主要功能:

-監視磁盤I/O性能。

-顯示多個磁盤設備的活動狀態。

-提供平均讀寫速率、等待時間等指標。

(2)常用命令參數:

-`-x`:擴展輸出,顯示更多詳細信息。

-`-d`:僅顯示磁盤統計信息。

-`-m`:以MB為單位顯示塊設備信息。

5.nmon:一個功能強大的實時和歷史性能監控工具,提供圖形化界面(通常需要編譯安裝),能夠監控CPU、內存、磁盤、網絡、系統進程等幾乎所有硬件和系統相關指標。數據以圖表形式清晰展示。

6.sysstat:一個集合了多個系統性能監控工具的包,主要包括`vmstat`、`iostat`、`mpstat`(多核CPU統計)、`sadc`(數據收集器)、`sa1`/`sa2`(數據收集器守護進程)等。它是許多系統監控方案的基石。

(二)安裝步驟

1.安裝sysstat(推薦,作為基礎工具集):

-在基于RPM的系統(如CentOS、Fedora)上:

```bash

sudoyuminstallsysstat

```

-在基于Debian的系統(如Ubuntu、Debian)上:

```bash

sudoapt-getupdate

sudoapt-getinstallsysstat

```

2.安裝htop(若未安裝sysstat的htop版本或需要更高級功能):

-在基于RPM的系統上:

```bash

sudoyuminstallhtop

```

-在基于Debian的系統上:

```bash

sudoapt-getinstallhtop

```

-源碼編譯安裝htop(適用于無法通過包管理器安裝或需要最新版本的情況):

a.安裝依賴包:

```bash

sudoyumgroupinstall"DevelopmentTools"

sudoyuminstallncurses-devel

```

b.下載htop源碼(訪問[/htop/htop/releases](/htop/htop/releases)獲取最新版本):

```bash

wget/htop/htop/releases/download/v2.0.4/htop-2.0.4.tar.gz

tar-xvfhtop-2.0.4.tar.gz

cdhtop-2.0.4

```

c.配置、編譯和安裝:

```bash

./configure--prefix=/usr--sbindir=/usr/bin--libdir=/usr/lib64--enable-unicode--enable-colors--enable-cgroup

make

sudomakeinstall

```

d.驗證安裝:

```bash

htop

```

3.啟動并啟用sysstat服務:

-啟動守護進程:

```bash

sudosystemctlstartsysstat

```

-設置開機自啟:

```bash

sudosystemctlenablesysstat

```

-(可選)設置采集頻率(編輯`/etc/sysconfig/sysstat`文件):

```bash

將以下行中的數字修改為需要的分鐘數(如5表示每5分鐘采集一次)

SYSSTATD_OPTS="-i10-f"

-i采集間隔(分鐘)

-f啟用文件系統統計

```

4.驗證安裝:

-檢查`iostat`命令是否存在:

```bash

iostat--version

```

-檢查`vmstat`命令是否存在:

```bash

vmstat--version

```

-檢查`htop`命令是否存在:

```bash

htop--version

```

三、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:

-使用文本編輯器(如`vi`或`nano`)打開配置文件:

```bash

sudovi/etc/sysconfig/sysstat

```

2.設置采集頻率和選項:

-修改`SYSSTATD_OPTS`變量,定義守護進程的運行參數。例如,設置每15分鐘采集一次,并啟用文件系統統計:

```bash

默認可能是空的或"-i10-f"

SYSSTATD_OPTS="-i15-f"

```

-其他常用選項:

-`-A`:啟用所有統計數據。

-`-m`:以MB為單位報告塊設備信息。

-`-y`:顯示所有設備(包括邏輯卷)。

3.啟動sysstat服務:

-確保服務正在運行:

```bash

sudosystemctlstatussysstat

```

-如果未運行,則啟動:

```bash

sudosystemctlstartsysstat

```

4.設置開機自啟:

-確保服務在系統重啟后自動啟動:

```bash

sudosystemctlenablesysstat

```

5.檢查采集日志:

-`vmstat`、`iostat`等生成的數據通常存儲在`/var/log/sa/`目錄下,文件名為`saXX`,其中`XX`為日期的后兩位。例如,2023年10月27日的日志為`sa27`。

-可以使用`more`、`less`或`cat`命令查看:

```bash

less/var/log/sa/sa27

```

-(可選)將日志歸檔:

```bash

sudocp/var/log/sa/sa/path/to/archived/logs/

```

(二)實時監控操作

1.使用`top`進行實時監控:

-常用命令:

```bash

顯示CPU和內存概覽

top

按CPU使用率排序

top-o%cpu

按內存使用率排序

top-o%mem

顯示完整命令行

top-c

批處理模式(用于腳本)

top-bn1

```

-關鍵觀察點:

-`%Cpu(s)`:系統總CPU使用率。

-`%MEM`:物理內存使用率。

-`PID`:進程ID。

-`USER`:進程所有者。

-`PR`:進程優先級。

-`NI`:Nice值。

-`VIRT`:進程虛擬內存占用。

-`RES`:進程實際物理內存占用。

-`SHARE`:進程共享內存占用。

-`S`:進程狀態(D=休眠,R=運行,Z=僵尸)。

-`TIME+`:進程累計CPU時間。

2.使用`htop`進行實時監控:

-常用操作:

```bash

啟動htop

htop

```

-交互式功能:

-按`h`顯示幫助信息。

-按`Shift+Space`切換CPU顯示模式(綜合/分離)。

-按`F2`打開設置菜單(可調整顏色、顯示列等)。

-使用方向鍵、`Tab`鍵在進程間導航。

-按`Space`選中/取消選中進程。

-按`F9`終止選中進程。

-按`F10`重啟選中進程。

-按`Shift+F10`退出htop。

3.使用`vmstat`進行多維度監控:

-常用命令:

```bash

每秒更新一次,顯示5次后退出

vmstat15

```

-關鍵字段解讀:

-`[d]`:等待磁盤I/O的時間(毫秒)。高值表示磁盤壓力大。

-`bi`:塊設備輸入量(每秒KB)。高值表示有大量數據從磁盤讀入。

-`bo`:塊設備輸出量(每秒KB)。高值表示有大量數據寫入磁盤。

-`in`:每秒中斷數。高值可能表示硬件或驅動問題。

-`cs`:每秒上下文切換數。過高可能表示系統負載過高或進程切換頻繁。

-`us`:用戶空間CPU使用率。

-`sy`:內核空間CPU使用率。

-`id`:CPU空閑率。低值通常表示系統繁忙。

4.使用`iostat`進行磁盤I/O監控:

-常用命令:

```bash

擴展輸出,每秒更新一次,顯示5次

iostat-x15

```

-關鍵字段解讀:

-`Device`:設備名稱(如sda)。

-`r/s`:每秒讀取次數。

-`w/s`:每秒寫入次數。

-`bread/s`:每秒讀取塊數(KB)。

-`bwrtn/s`:每秒寫入塊數(KB)。

-`avgrq-sz`:平均請求大小(KB)。高值表示請求的數據塊較大。

-`avgqu-sz`:平均隊列長度。高值表示磁盤I/O等待時間長。

-`await`:平均等待時間(毫秒)。高值表示磁盤響應慢。

-`svctm`:平均服務時間(毫秒)。高值表示磁盤處理請求時間長。

-`%util`:設備利用率(百分比)。接近100%表示磁盤繁忙。

5.使用`nmon`進行綜合監控:

-常用操作:

```bash

啟動nmon圖形界面

nmon

```

-界面分區:

-CPU:顯示各核心CPU使用率、頻率、溫度等。

-Memory:顯示內存總量、已用、緩存、交換空間使用情況。

-Disk:顯示各磁盤的讀寫速率、IOPS、等待時間等。

-Network:顯示網絡接口的收發速率、錯誤數等。

-System:顯示進程數、負載、中斷等信息。

-OS:顯示內核版本、文件系統、用戶登錄等信息。

-數據導出:通常可以通過界面菜單選擇導出當前屏幕數據為CSV或HTML格式。

(三)數據導出與分析

1.手動截取屏幕數據:

-對于`top`、`htop`、`vmstat`、`iostat`,可以將命令輸出重定向到文件:

```bash

top-bn1>/tmp/system_status_$(date+%Y%m%d_%H%M%S).log

vmstat110>/tmp/vmstat_$(date+%Y%m%d_%H%M%S).log

iostat-x110>/tmp/iostat_$(date+%Y%m%d_%H%M%S).log

```

2.使用`sadc`自動收集數據:

-`sadc`是sysstat包中的數據收集守護進程,可以按配置的模板定時生成數據文件。

-創建模板文件(例如`/etc/sysconfig/saconf`):

```bash

指定數據保存目錄

LOGDIR=/var/log/sa

指定輪詢間隔(分鐘)

interval=5

指定數據保存周期(天)

days=7

指定要收集的指標(所有可用指標)

-A:All,-c:CPU,-d:Disk,-e:Environment,-f:Filesystem,-k:Kernel,-m:Memory,-n:Network,-p:Process,-t:Top,-u:User

示例:收集CPU、磁盤、內存、網絡、進程、系統負載

EXTRAs=-Acdfkmnpstu

```

-啟動`sadc`服務:

```bash

sudosystemctlstartsadc

sudosystemctlenablesadc

```

-檢查日志文件是否按預期生成在`LOGDIR`中。

3.使用`sar`分析歷史數據:

-`sar`是sysstat包中的報表生成器,用于分析`sadc`收集的歷史數據。

-查看特定時間點的CPU使用率:

```bash

查看昨天1點整的CPU使用率

sar-u11--start=1d-1h

查看過去一周每天的CPU使用率平均值

sar-u11--start=1w

```

-查看特定時間點的磁盤I/O:

```bash

查看昨天1點整的磁盤讀寫次數

sar-d11--start=1d-1h

```

-查看網絡流量:

```bash

查看過去一周每天的網絡入/出速率平均值

sar-nDEV11--start=1w

```

4.使用`gnuplot`或圖形工具進行可視化:

-將`sar`輸出的數據(通常是表格式)導入`gnuplot`繪制圖表。

-示例`gnuplot`腳本(保存為`plot_cpu.gp`):

```bash

setterminalpng

setoutput"/tmp/cpu_usage.png"

settitle"CPUUsageOverTime"

setxlabel"Time"

setylabel"CPUUsage(%)"

setxdatatime

settimefmt"%Y-%m-%d%H:%M:%S"

plot"/tmp/sar_dataCPU_1min.csv"using1:2withlinestitle"User+System"

```

-運行腳本:

```bash

gnuplotplot_cpu.gp

```

-可使用`excel`、`matplotlib`(Python庫)等工具進行數據分析與繪圖。將`sar`輸出重定向為CSV文件后導入即可。

四、硬件監控配置與數據采集

(一)配置sysstat自動采集數據

1.編輯配置文件:

-使用文本編輯器(如`vi`或`nano`)打開配置文件:

```bash

sudovi/etc/sysconfig/sysstat

```

2.設置采集頻率和選項:

-修改`SYSSTATD_OPTS`變量,定義守護進程的運行參數。例如,設置每15分鐘采集一次,并啟用文件系統統計:

```bash

默認可能是空的或"-i10-f"

SYSSTATD_OPTS="-i15-f"

```

-其他常用選項:

-`-A`:啟用所有統計數據。

-`-m`:以MB為單位報告塊設備信息。

-`-y`:顯示所有設備(包括邏輯卷)。

3.啟動sysstat服務:

-確保服務正在運行:

```bash

sudosystemctlstatussysstat

```

-如果未運行,則啟動:

```bash

sudosystemctlstartsysstat

```

4.設置開機自啟:

-確保服務在系統重啟后自動啟動:

```bash

sudosystemctlenablesysstat

```

5.檢查采集日志:

-`vmstat`、`iostat`等生成的數據通常存儲在`/var/log/sa/`目錄下,文件名為`saXX`,其中`XX`為日期的后兩位。例如,2023年10月27日的日志為`sa27`。

-可以使用`more`、`less`或`cat`命令查看:

```bash

less/var/log/sa/sa27

```

-(可選)將日志歸檔:

```bash

sudocp/var/log/sa/sa/path/to/archived/logs/

```

(二)實時監控操作

1.使用`top`進行實時監控:

-常用命令:

```bash

顯示CPU和內存概覽

top

按CPU使用率排序

top-o%cpu

按內存使用率排序

top-o%mem

顯示完整命令行

top-c

批處理模式(用于腳本)

top-bn1

```

-關鍵觀察點:

-`%Cpu(s)`:系統總CPU使用率。

-`%MEM`:物理內存使用率。

-`PID`:進程ID。

-`USER`:進程所有者。

-`PR`:進程優先級。

-`NI`:Nice值。

-`VIRT`:進程虛擬內存占用。

-`RES`:進程實際物理內存占用。

-`SHARE`:進程共享內存占用。

-`S`:進程狀態(D=休眠,R=運行,Z=僵尸)。

-`TIME+`:進程累計CPU時間。

2.使用`htop`進行實時監控:

-常用操作:

```bash

啟動htop

htop

```

-交互式功能:

-按`h`顯示幫助信息。

-按`Shift+Space`切換CPU顯示模式(綜合/分離)。

-按`F2`打開設置菜單(可調整顏色、顯示列等)。

-使用方向鍵、`Tab`鍵在進程間導航。

-按`Space`選中/取消選中進程。

-按`F9`終止選中進程。

-按`F10`重啟選中進程。

-按`Shift+F10`退出htop。

3.使用`vmstat`進行多維度監控:

-常用命令:

```bash

每秒更新一次,顯示5次后退出

vmstat15

```

-關鍵字段解讀:

-`[d]`:等待磁盤I/O的時間(毫秒)。高值表示磁盤壓力大。

-`bi`:塊設備輸入量(每秒KB)。高值表示有大量數據從磁盤讀入。

-`bo`:塊設備輸出量(每秒KB)。高值表示有大量數據寫入磁盤。

-`in`:每秒中斷數。高值可能表示硬件或驅動問題。

-`cs`:每秒上下文切換數。過高可能表示系統負載過高或進程切換頻繁。

-`us`:用戶空間CPU使用率。

-`sy`:內核空間CPU使用率。

-`id`:CPU空閑率。低值通常表示系統繁忙。

4.使用`iostat`進行磁盤I/O監控:

-常用命令:

```bash

擴展輸出,每秒更新一次,顯示5次

iostat-x15

```

-關鍵字段解讀:

-`Device`:設備名稱(如sda)。

-`r/s`:每秒讀取次數。

-`w/s`:每秒寫入次數。

-`bread/s`:每秒讀取塊數(KB)。

-`bwrtn/s`:每秒寫入塊數(KB)。

-`avgrq-sz`:平均請求大小(KB)。高值表示請求的數據塊較大。

-`avgqu-sz`:平均隊列長度。高值表示磁盤I/O等待時間長。

-`await`:平均等待時間(毫秒)。高值表示磁盤響應慢。

-`svctm`:平均服務時間(毫秒)。高值表示磁盤處理請求時間長。

-`%util`:設備利用率(百分比)。接近100%表示磁盤繁忙。

5.使用`nmon`進行綜合監控:

-常用操作:

```bash

啟動nmon圖形界面

nmon

```

-界面分區:

-CPU:顯示各核心CPU使用率、頻率、溫度等。

-Memory:顯示內存總量、已用、緩存、交換空間使用情況。

-Disk:顯示各磁盤的讀寫速率、IOPS、等待時間等。

-Network:顯示網絡接口的收發速率、錯誤數等。

-System:顯示進程數、負載、中斷等信息。

-OS:顯示內核版本、文件系統、用戶登錄等信息。

-數據導出:通常可以通過界面菜單選擇導出當前屏幕數據為CSV或HTML格式。

(三)數據導出與分析

1.手動截取屏幕數據:

-對于`top`、`htop`、`vmstat`、`iostat`,可以將命令輸出重定向到文件:

```bash

top-bn1>/tmp/system_status_$(date+%Y%m%d_%H%M%S).log

vmstat110>/tmp/vmstat_$(date+%Y%m%d_%H%M%S).log

iostat-x110>/tmp/iostat_$(date+%Y%m%d_%H%M%S).log

```

2.使用`sadc`自動收集數據:

-`sadc`是sysstat包中的數據收集守護進程,可以按配置的模板定時生成數據文件。

-創建模板文件(例如`/etc/sysconfig/saconf`):

```bash

指定數據保存目錄

LOGDIR=/var/log/sa

指定輪詢間隔(分鐘)

interval=5

指定數據保存周期(天)

days=7

指定要收集的指標(所有可用指標)

-A:All,-c:CPU,-d:Disk,-e:Environment,-f:Filesystem,-k:Kernel,-m:Memory,-n:Network,-p:Process,-t:Top,-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論