Linux|How to collect Linux Performance Log with Nmon

瀏覽人次: 27
2024-08-12 更新

Nmon 日誌收集說明

Nmon 是一款功能強大的系統性能監控工具,適用於 Linux 和 AIX 系統,特別在 IBM 硬體設備上廣泛使用。Nmon 提供了豐富的即時系統性能數據,便於系統管理員監控 CPU、記憶體、磁碟、網路等資源的使用情況。

大多數 IBM 機器內建了 Nmon,如果需要另外安裝,我們建議使用改進版的 njmon。njmon 不僅包含 Nmon 的所有功能,還增加了更多性能數據收集和分析功能,適用於更廣泛的現代化系統環境。請參考 njmon日誌收集說明 了解更多詳情。如果系統比較舊或有特定需求,仍然可以選擇安裝 Nmon。

1. 安裝 Nmon

下載並安裝 Nmon:

sudo apt install nmon

2. 建立 Nmon 日誌存放目錄

mkdir /home/bimap/nmondata

3. 建立自動化收集腳本

編輯腳本文件:

mkdir -p /home/bimap/bin vim /home/bimap/bin/ipoc_nmon.sh

需要調整的參數

  • Seconds: 每次收集間隔的秒數。默認為60秒,可以根據需要進行修改。
  • Count: 每次收集數據的次數。默認為60次,可以根據需要進行修改。
  • RetentionDays: 日誌保留的天數。默認為30天,超過這個天數的檔案將被刪除。
  • LogDir: 日誌存放目錄。默認為 /home/bimap/nmondata
  • UploadDir: 日誌上傳目錄。默認為 /home/sftpuser/master
  • SCP_TARGET: SCP 上傳目標路徑。
  • FTPURL, FTPUSER, FTPPASS: FTP 伺服器地址、使用者名和密碼。
  • UPLOAD_METHOD: 上傳方法。可以選擇 ftpmvscp,默認為 scp

ipoc_nmon.sh 內容如下:

#!/bin/bash export LC_ALL=C  ################################################# ########        設定環境變數               ######## ################################################# Host=$(hostname) Seconds=${1:-60}   # 默認每次間隔60秒,可以通過參數傳遞修改 Count=${2:-60}     # 默認每60次收集數據,可以通過參數傳遞修改 RetentionDays=30   # 超過30天的檔案不做保留,需要的話請開啟尾段的註解 Yesterday=$(perl -MPOSIX -le 'print strftime "%y%m%d", localtime(time()-86400)') LogDir="/home/bimap/nmondata" SentDir="$LogDir/sent" BackupDir="$LogDir/backup" UploadDir="/home/sftpuser/master"  # 日誌上傳路徑  # SCP 目標路徑設定 SCP_TARGET="[email protected]:$UploadDir"  # FTP 設定參數 FTPURL="10.99.1.106" FTPUSER="sftpuser" FTPPASS="1qaz2wsx"  # 上傳方法選擇:可選 "ftp"、"mv" 或 "scp" UPLOAD_METHOD="scp"  if [[ ! " ftp mv scp " =~ " ${UPLOAD_METHOD} " ]]; then   echo "未知的上傳方式: $UPLOAD_METHOD. 請選擇 'ftp', 'mv' 或 'scp'."   exit 1 fi  echo "上傳方式: $UPLOAD_METHOD" echo "收集間隔: $Seconds 秒, 收集次數: $Count 次"  ################################################# ########         執行收集命令              ######## ################################################# mkdir -p $SentDir mkdir -p $BackupDir mkdir -p $LogDir  cd $LogDir # 獲取舊的nmon文件 Files=$(ls *.nmon 2> /dev/null) if [ -z "$Files" ]; then   echo "沒有舊的 .nmon 文件需要移動" else   # 將舊文件移動到SentDir   mv $Files $SentDir fi  # 收集新的nmon文件 /usr/bin/nmon -f -t -s $Seconds -c $Count -m $LogDir sleep 10  ################################################# ########      根據選擇的方式上傳文件         ######## ################################################# cd $SentDir  case $UPLOAD_METHOD in   "ftp")     if [ "$(ls -A $SentDir)" ]; then       ftp -inv $FTPURL << EOF > $LogDir/ftplog.txt user $FTPUSER $FTPPASS binary mput * bye EOF       msg=$(grep "complete" $LogDir/ftplog.txt)       if [ -n "$msg" ]; then           mv $SentDir/*.* $BackupDir       fi       rm -rf $LogDir/ftplog.txt     fi     ;;    "mv")     if [ "$(ls -A $SentDir)" ]; then       mv $SentDir/* $UploadDir     fi     ;;    "scp")     if [ "$(ls -A $SentDir)" ]; then       scp * $SCP_TARGET       if [ $? -eq 0 ]; then           mv $SentDir/*.* $BackupDir       fi     fi     ;;    *)     echo "未知的上傳方式: $UPLOAD_METHOD"     exit 1     ;; esac  ################################################# ########          壓縮並備份             ######## ################################################# # 1. 檢查並將昨天的檔案,保存成一份壓縮檔 cd $BackupDir if ls *$Yesterday*.nmon 1> /dev/null 2>&1; then     # 如果存在,將該檔案壓縮起來     tar -czvf "${Host}-${Yesterday}.tar.gz" *$Yesterday*.nmon && rm -rf *$Yesterday*.nmon fi  # 2. 定期將檔案清除,需要的話請開啟註解並檢查RetentionDays參數設定 # find $BackupDir/*.tar.gz -maxdepth 1 -mtime +$RetentionDays -type f -delete  exit

授予腳本執行權限:

chmod +x /home/bimap/bin/ipoc_nmon.sh

4. 測試腳本

第一次測試執行腳本會顯示沒有舊的 .nmon 文件需要移動,這是正常的,因為在第一次執行時還沒有舊的文件。

root@bimap-ipoc-2:/home/bimap/bin# ./ipoc_nmon.sh 5 2 上傳方式: mv 收集間隔: 5 秒, 收集次數: 2 次 沒有舊的 .nmon 文件需要移動

第二次執行時應該會正常移動和上傳文件:

root@bimap-ipoc-2:/home/bimap/bin# ./ipoc_nmon.sh 5 2 上傳方式: mv 收集間隔: 5 秒, 收集次數: 2 次

成功後,再設定 crontab 定期執行自動化收集腳本。

5. 設定 crontab 定期執行

編輯 crontab:

crontab -e

添加以下行,設定每60分鐘執行一次自動化收集腳本:

0 * * * * /home/bimap/bin/ipoc_nmon.sh 60 60 > /dev/null 2>&1

日誌檔案範例

執行當下小時會產生 Nmon 日誌檔案,並且每天將日誌檔案壓縮儲存:

[root@bimap nmondata]$ ls /home/bimap/nmondata/backup bimap-230301.tar.gz bimap-230302.tar.gz bimap-230303.tar.gz bimap-230304.tar.gz
快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。