nmon for Linux 安裝步驟
Published in
6 min readJun 8, 2017
利用IBM 提供免費的nmon 程式, 來收集Linux的系統資源的log, 並且經由ftp 方式, 集中到ftp server 後, 統一由BiMAP 大數據分析平台,進行Linux 系統分析。
1. NNON Linux 的安裝
依據用戶實際的linux 實際的環境和版本,下載到Linux 上,執行即可。
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 $nmonDirtar czf $nmonDir/$server-$TODAY.tar.gz *.nmonftp -in $HOST << ABC
user $USER $PASS
binary
mput *.tar.gz
bye
ABCrm -f $nmonDir/$server-$TODAY.tar.gzif [ ! -d $nmonDir/backup ] ; then
mkdir $nmonDir/backup
fils $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