atop是一款用于監控Linux系統資源與進程的工具,能夠報告所有進程的活動。它以一定頻率記錄系統和進程的活動。當ECS實例出現問題時,您可以獲取相應的atop日志文件進行分析。本文將介紹如何在Linux實例中安裝、使用及自定義atop配置。
工具介紹
atop采集的數據涵蓋了CPU、內存、磁盤和網絡的資源使用情況以及進程運行狀態,并能夠以日志文件的形式保存至磁盤。對于每個進程,系統將顯示CPU使用率、內存增長、磁盤使用率、優先級、用戶名、狀態及退出碼等信息。您可以通過atop配置文件自定義日志采集的頻率、日志文件的存儲路徑以及輪轉策略等參數。
安裝工具
Alibaba Cloud Linux 3/2
本步驟以Alibaba Cloud Linux操作系統的ECS實例為例,為您介紹如何安裝atop監控工具。
遠程連接ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
執行如下命令,安裝atop。
sudo yum install -y atop
執行如下命令,啟動atop服務。
sudo systemctl start atop
CentOS 7/8
本步驟以CentOS操作系統的ECS實例為例,為您介紹如何安裝atop監控工具。
遠程連接ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
執行如下命令,安裝atop。
sudo yum install -y atop
執行如下命令,啟動atop服務。
sudo systemctl start atop
Fedora
本步驟以Fedora操作系統的ECS實例為例,為您介紹如何安裝atop監控工具。
遠程連接ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
執行如下命令,安裝atop。
sudo yum install -y atop
執行如下命令,啟動atop服務。
sudo systemctl start atop
Ubuntu / Debian
本步驟以Ubuntu/Debian操作系統的ECS實例為例,為您介紹如何安裝atop監控工具。
遠程連接ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
更新軟件源中的所有軟件列表。
sudo apt update
執行如下命令,安裝atop。
sudo apt install -y atop
執行如下命令,啟動atop服務。
sudo systemctl start atop
openSUSE
本步驟以openSUSE操作系統的ECS實例為例,為您介紹如何安裝atop監控工具。
遠程連接ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
執行如下命令,安裝atop。
sudo zypper install -y atop atop-daemon
執行如下命令,啟動atop服務。
sudo systemctl start atop
(可選)配置監控周期及日志保留時間
您可以參考以下步驟,以完成自定義 atop 監控周期、日志保留時間及日志存儲路徑的設置。有關配置文件的更多信息,可點擊下方進行了解。
在Alibaba Cloud Linux 3/2、CentOS 7/8和Fedora系統中,atop的配置文件是/etc/sysconfig/atop
。而在Ubuntu、Debian和openSUSE系統中,配置文件是/etc/default/atop
。默認配置文件的內容如下所示:
LOGOPTS=""
LOGINTERVAL=600
LOGGENERATIONS=28
LOGPATH=/var/log/atop
有關配置文件的說明如下:
LOGOPTS:用于控制日志文件記錄選項的一個重要參數,允許您自定義日志文件的保存路徑、命名規則、滾動周期以及其他與日志記錄相關的選項。默認為空,表示不使用任何額外選項。
LOGINTERVAL:監控周期,默認的監控周期為600秒。
重要在默認配置文件中,監控周期被設定為每600秒一次。如需通過atop工具采集歷史日志以追蹤和定位異常問題,建議您根據自身的實際場景和需求調整默認采集頻率,以便更迅速地識別和定位問題。
LOGGENERATIONS:日志保留時間,為避免atop長時間運行占用太多磁盤空間,默認的日志保留時間為28天。
LOGPATH:指定atop日志文件的路徑。默認值為/var/log/atop。
配置atop監控周期和日志保留時間。
執行如下命令,打開
atop
配置文件。Alibaba Cloud Linux 3/2 、CentOS 7/8、Fedora
sudo vim /etc/sysconfig/atop
Ubuntu、Debian、openSUSE
sudo vim /etc/default/atop
按
i
進入編輯模式。根據自身需求調整監控周期、日志保留時間及日志存儲路徑配置。示例中將監控周期修改為30秒,日志保留時間設定為10天,而日志路徑則維持默認設置。
LOGOPTS="" LOGINTERVAL=30 LOGGENERATIONS=7 LOGPATH=/var/log/atop
重要設置較小的監控周期可以使監控時間的顆粒度更細,但同時會增加系統的I/O負擔,并導致生成的日志文件變大。若您在生產環境中使用atop,請根據自身需求合理設置,避免日志文件過大或日志記錄占用過多I/O資源,從而影響實際業務的正常運行。
日志保留時間越長,意味著您能夠查看更早時間的歷史日志。然而,這也將占用更多的磁盤空間,因此請根據自身需求進行合理設置。
按
Esc
鍵,輸入:wq
,保存并退出編輯。
執行如下命令,重啟atop服務。
sudo systemctl restart atop
使用工具
使用atop工具進行Linux系統指標監控時,您需要關注常用命令及資源監控字段的含義。有關詳細內容,可點擊下方進行了解。
打開日志文件后,您可以在交互命令模式下使用以下命令。
g:切換回默認的綜合輸出視圖。
c:顯示進程列完整命令行。
m:按照進程內存使用率進行降序篩選。
d:按照進程磁盤使用率進行降序篩選。
a:按照進程資源綜合使用率進行降序篩選。
n:按照進程網絡使用率進行降序篩選。
t:跳轉到下一個監控采集點。
T:跳轉到上一個監控采集點。
b:指定時間點,格式為YYYYMMDDhhmm。
下圖展示了部分監控字段及其數值,具體數值會因采樣周期的不同而有所變化。該圖僅供參考,具體數據應以您的實際數據為準。
主要參數說明如下:
參數(行) | 說明 |
ATOP | 主機名、信息采樣日期和時間點。 |
PRC | 進程整體運行情況。
|
CPU | CPU整體的使用情況,即多核CPU作為一個整體CPU資源的使用情況。CPU行各個字段數字相加結果為N*100%,其中N為CPU的核數。
|
CPL | CPU負載情況。
|
MEM | 內存的使用情況。
|
SWP | 交換空間的使用情況。
|
PAG | 虛擬內存分頁情況。 swin、swout:分別代表換入和換出內存頁數。 |
DSK | 磁盤使用情況,每一個磁盤設備對應一列,如果有vdb設備,那么將會增加一行DSK信息。
|
NET | 多列NET展示了網絡狀況,包括傳輸層TCP和UDP、IP層以及各活動的網口信息。
|
當您在命令行界面運行atop命令時,默認會進入交互命令模式,在交互命令模式下,您可以通過在鍵盤輸入支持的命令進行數據篩選,例如,按m
鍵切換為內存信息視圖。按q
退出交互命令模式。有關支持的命令列表,請參見常用命令介紹。您也可以在交互命令模式下按?
獲取更多信息。
查看實時系統指標
每 5 秒查看一次系統指標。
atop 5
查看當前時間之后5分鐘內(共30次,間隔10秒)的系統指標。
atop -M 10 30
查看當前時間之后10分鐘(10 次,間隔 60 秒)的系統指標,并將結果寫入文件。
atop -M 60 10 > /log/atop.mem
查看歷史指標日志
atop啟動后,會默認將采集記錄存放在/var/log/atop
目錄下的日志文件中。您可以通過執行如下命令,查看相關歷史指標日志。
使用atop查看歷史指標日志時,請確保您所指定日期的歷史指標日志已存在于atop日志文件路徑中,若文件不存在會出現stat raw file: No such file or directory
報錯。
查看當天歷史指標日志。
atop -r
查看昨天歷史指標日志。
atop -r y
查看指定日期內的歷史指標日志。示例中,指定日期為2024年11月06日。
atop -r 20241106
查看指定日期內自指定時間起的歷史指標日志。示例中,指定日期為2024年11月06日,開始時間為14:00。
atop -r 20241106 -b 14:00
查看指定日期內,指定時間段的歷史指標日志。示例中,指定的日期為2024年11月5日,時間段為00:04至00:08。
atop -r 20241105 -b 00:04 -e 00:08
查看系統活動報告
查看當前系統在 1 分鐘內(12 次,間隔 5 秒)的CPU利用率報告。
atopsar -c 5 12
查看當天指定時間段的內存指標報告。示例中,時間段為18:00至18:01。
atopsar -m -b 18:00 -e 18:01
查看指定日期內,指定時間段的內存指標報告。示例中,指定的日期為2024年11月5日,時間段為18:00至18:01。
atopsar -c -r 20241105 -b 18:00 -e 18:01
其他操作
配置天級別日志輪轉策略
您可以參考以下步驟,為atop配置按天輪轉日志策略,從而實現每天生成一個atop指標日志文件。
(條件可選)根據自身需求調整監控周期、日志保留時間及日志存儲路徑配置,相關操作,請參見(可選)配置監控周期及日志保留時間。
執行如下命令,將每日日志輪轉相關服務設置為開機啟動并啟動服務。
sudo systemctl enable --now atop atopacct atop-rotate.timer
以上示例設置為每天生成一個日志文件,如果您的業務需要對日志進行更加復雜的處理,您可以結合logrotate
或自定義腳本等方式實現日志管理。
加載可選的netatop內核模塊
如需監測網絡使用率,可安裝網絡監控模塊netatop。本示例以Alibaba Cloud Linux 3
系統為例,為您展示如何為atop
加載可選的netatop
內核模塊。
netatop
能夠監測每個進程或線程發送和接收的TCP及UDP數據包統計信息。在atop
,netatop
并未默認安裝。如果您需要在其他Linux發行版加載可選的netatop內核模塊,請參考atop官方手冊進行安裝。更多內容,請參見Module netatop。
執行如下命令,為當前內核安裝內核開發包及編譯所需軟件環境。
sudo yum install -y kernel-devel dkms elfutils-libelf-devel
執行如下命令,下載最新版本netatop源碼至指定目錄。
cd /usr/src/ && sudo wget https://www.atoptool.nl/download/netatop-3.2.2.tar.gz --no-check-certificate
執行如下命令,解壓源碼并進入源碼目錄。
sudo tar -zxvf netatop-3.2.2.tar.gz && cd netatop-3.2.2
執行如下命令,基于源碼構建并安裝模塊和守護程序。
sudo make && sudo make install
執行如下命令,啟動netatop。
sudo systemctl start netatop