nmon for Linux 安裝步驟

Polin Chen
bimap
Published in
6 min readJun 8, 2017

利用IBM 提供免費的nmon 程式, 來收集Linux的系統資源的log, 並且經由ftp 方式, 集中到ftp server 後, 統一由BiMAP 大數據分析平台,進行Linux 系統分析。

1. NNON Linux 的安裝

依據用戶實際的linux 實際的環境和版本,下載到Linux 上,執行即可。

nmon 的下載地址

1.1 OS 版本以CentOS 7.x 的版本為例

CentOS Linux release 7.2.1511 (Core)
Derived from Red Hat Enterprise Linux 7.2 (Source)

1.2 下載nmon16g_x86.tar.gz 版本

1.3 解壓縮nmon

# tar xvf nmon16g_x86.tar

# ls -a
nmon16g_x86_fedora25
nmon16g_x86_sles12
nmon16g_x86_rhel72
nmon16g_x86_ubuntu1604
nmon16g_x86_sles114

1.4 安裝nmon 在server 上

  • 無需使用root 權限, 只要可以一般的用戶即可
$ cd /tmp
$ chmod +x ./nmon16g_x86_rhel72
$ mkdir ~/bin
$ mv ./nmon16g_x86_rhel72 ~/bin/nmon

1.5 測試nmon 的運行

$ ~/bin/nmon

顯示CPU , 按“C”

顯示process , 按“t”

1.6 測試nmon 的文件輸出

$ mkdir ~/nmonlog
$ /home/turbo/bin/nmon -f -t -s 10 -c 6 -m /home/turbo/nmonlog

1.7 檢查nmon 的產生的文件

$ ls -al /home/turbo/nmonlog產生文件名稱如下:turboteam_170605_1907.nmon

2. NMON 收集的crontab 設定方式

在Linux 上設定2個定時任務:

  • 每天0點0分啟動nmon 的收集程序, 設定採樣間隔為60秒, 每天收集1440 次, 會自動保存為nmon 格式的文件
  • 利用ftp 傳送方式, 每小時傳輸一次到ftp server 中, i
# crontab -l0 0 * * * /home/turbo/bin/nmon -f -t -s 60 -c 1440 -m /home/turbo/nmonlog > /dev/null 2>&1
5 * * * * /home/turbo/bin/nmon2BiMAP.sh

3. 發送nmon log 到BiMAP 的log server

  • 可以將nmon log 發送到www.nmons.com (需要事先申請ftp account)
  • 或是將nmon log 發送到指定的ftp server 中, (用戶自行搭建)

以下的shell script 為自動發送到ftp server 的參考腳本, 請依據實際的環境修改 IP 地址、用戶名和密碼。

$ cat /home/appmon/ipoc/bin/v30-nmon2ipoc.sh

#!/bin/bash
################################################
### set env
################################################
TODAY=`date +%Y%m%d`
today=`date +%y%m%d`
YESTERDAY=`date -d "yesterday" +%Y%m%d`
yesterday=`date -d "yesterday" +%y%m%d`
day30=` perl -e 'use POSIX qw(strftime);print strftime "%y%m%d\n", localtime(time-86400*30)' `
servername=`hostname`
HOST="192.168.AAA.XXX"
USER="ABC"
PASS="DEFG"
nmonDir="/home/turbo/nmonlog"
################################################################
### ftp /home/turbo/nmonlog/*.nmon to iPOC_ftp /home/turboteam
################################################################
cd $nmonDir
tar czf $nmonDir/$server-$TODAY.tar.gz *.nmonftp -in $HOST << ABC
user $USER $PASS
binary
mput *.tar.gz
bye
ABC
rm -f $nmonDir/$server-$TODAY.tar.gzif [ ! -d $nmonDir/backup ] ; then
mkdir $nmonDir/backup
fi
ls $nmonDir | grep -q $yesterdayif [[ $? -eq 0 ]] ; then mv $nmonDir/*$yesterday*.nmon $nmonDir/backup
tar czf $nmonDir/backup/$servername-$YESTERDAY.tar.gz *$yesterday*.nmon
find $nmonDir/backup -mtime +30 -type f -delete
find $nmonDir -maxdepth 1 -mtime +7 -type f -delete

fi

--

--