簡介:
MRTG為一個使用甚廣的網路流量統計軟體,它好用的地方在於能即時地繪出網路流量的統計圖並且開放原始碼。 目前TANET及TWAREN上也採用此
一軟體做為該單位之流量統計工具。
環境說明:
本篇有四台主機分別為fs01, fs02, fs03, fs04。皆為Ubuntu 7.04的版本,因此軟體的安裝用apt-get來施行。由於
在主機上的/etc/hosts 檔內已經有註冊名稱以及對應的ip位址,因此以下說明文件的主機位址都直接用fs01,...來代表,若不想建此對應
表,直接換成主機的ip位址也可以。
如: cfgmaker public@fs01 > /etc/mrtg.cfg 同義於 cfgmaker public@受監控主機的ip位
址 > /etc/mrtg.cfg
一、基本安裝及測試:
以下指令需用root身份執行
安裝軟件:
apt-get install apache2
apt-get install mrtg
apt-get install snmpd
編輯snmpd:
vim /etc/snmp/snmpd.conf 修改為如下所示:
# sec.name source community
# com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private
重啟snmpd服務:
/etc/init.d/snmpd restart
(注意)要確定snmpd有啟動,否則之後的步驟會出錯
檢查方法: ps aux|grep snmpd
沒有相關程式常駐,則手動執行 snmpd -c /etc/snmp/snmpd.conf
重新生成mrtg的配置文件:
cfgmaker public@fs01 > /etc/mrtg.cfg
(注意)如果要監視多個位址則採用如下命令:
cfgmaker public@fs01 public@fs02 public@fs03 public@fs04 >> /etc/
mrtg.cfg
並且要確定每台主機上的snmpd服務有在背景執行,否則上面指令會有錯誤訊息
生成mrtg的主頁:
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
(注意)系統原則上會五分鐘取樣一次,若是要更改取樣時間可以更改
/etc/cron.d/mrtg 檔裡 */5 * * ... (以後省略)
改成:
*/1 * * ... (以後省略)
瀏覽器開啟畫面如下:
參考網址:
http://forum.ubuntu.org.cn/about8891.html
二、監控遠端主機的cpu 使用率
MRTG預設可以用來監控網路流量,而監控cpu 、記憶體、磁碟空間使用量也行,只是要額外的手動處理。原理是是用snmp的oid來取得系統資訊
首先先把先編輯執行檔 /opt/mrtg/cpu.mrtg.fs01
#!/bin/bash
cpuusr_line=`snmpget -O s -v 1 -c public fs01
1.3.6.1.4.1.2021.10.1.3.1`
cpuusr=`echo $cpuusr_line | awk '{print $4}'`
cpusys_line=`snmpget -O s -v 1 -c public fs01
1.3.6.1.4.1.2021.10.1.3.3`
cpusys=`echo $cpusys_line | awk '{print $4}'`
echo $cpuusr
echo $cpusys
在此解釋一下 snmpget -O s -v 1 -c public fs01 1.3.6.1.4.1.2021.10.1.3.1 的指
令。
snmpget 或 snmpwalk 都是用來取得透過snmpd所提供的系統資訊,但snmpd所提供的資訊很多,所以要餵給她指定的編碼(稱為
OID - Object IDentifier ),它就會傳回我們所要的系統狀態值。 參數 -O s 是指輸出的傳回值只要擷取最後一段,因為
回傳的訊息落落長,我們只要取出現在最後面的值。 -v 1 代表用 snmp version 1的協定來跟snmpd要資料,若是不指定用
version 1的話,會用預設的 version 3來取得,但因為snmp v3 有安全上得嚴格限定,因此會產生警告訊息,所以要下 -v
1 這參數才能順利取得所要的值。 -c public 是我們存取遠端系統的snmp帳戶,用預設的使用者public ,fs01 是被監控主機的
名稱,也可以直接填寫受監控主機的ip位址或domain name。1.3.6.1.4.1.2021.10.1.3.1 就是 oid的編碼,其
用來指示cpu loading每分鐘的平均值,以下有記憶體、cpu、磁碟的oid,有興趣的可以搜尋咕狗大神學習更多
假設有四台要主機要監控,所以就用複製貼上的方式分別產生
cpu.mrtg.fs01、cpu.mrtg.fs02、cpu.mrtg.fs03、cpu.mrtg.fs04四個檔案後,更改裡面的內容,如
fs01改成 受監控的主機位址即可
執行檔準備就緒後,就可以把之前用cfgmaker產生的mrtg.cfg來修改。
vim /etc/mrtg.cfg
在文件的最後面加入以下幾行:
...(以上省略)
Target[cpu1]: `/opt/mrtg/cpu.mrtg.fs01`
MaxBytes[cpu1]: 100
Options[cpu1]: gauge, nopercent, growright
YLegend[cpu1]: CPU loading (%)
ShortLegend[cpu1]: %
LegendO[cpu1]: CPU_loading/1min;
LegendI[cpu1]: CPU_loading/5min;
Title[cpu1]: title fs01 CPU Loading
PageTop[cpu1]: <H1>fs01 CPU Loading</H1>
Target[cpu2]: `/opt/mrtg/cpu.mrtg.fs02`
MaxBytes[cpu2]: 100
Options[cpu2]: gauge, nopercent, growright
YLegend[cpu2]: CPU loading (%)
ShortLegend[cpu2]: %
LegendO[cpu2]: CPU_loading/1min;
LegendI[cpu2]: CPU_loading/5min;
Title[cpu2]: title fs02 CPU Loading
PageTop[cpu2]: <H1>fs02 CPU Loading</H1>
Target[cpu3]: `/opt/mrtg/cpu.mrtg.fs03`
MaxBytes[cpu3]: 100
Options[cpu3]: gauge, nopercent, growright
YLegend[cpu3]: CPU loading (%)
ShortLegend[cpu3]: %
LegendO[cpu3]: CPU ;
LegendI[cpu3]: CPU_loading/5min;
Title[cpu3]: title fs03 CPU Loading
PageTop[cpu3]: <H1>fs03 CPU Loading</H1>
Target[cpu4]: `/opt/mrtg/cpu.mrtg.fs04`
MaxBytes[cpu4]: 100
Options[cpu4]: gauge, nopercent, growright
YLegend[cpu4]: CPU loading (%)
ShortLegend[cpu4]: %
LegendO[cpu4]: CPU_loading/1min;
LegendI[cpu4]: CPU_loading/5min;
Title[cpu4]: title fs04 CPU Loading
PageTop[cpu4]: <H1>fs04 CPU Loading</H1>
如此例,共有四台電腦要受監控,而Target的內容就是執行檔的路徑,Target[...]中括弧內的參數可自訂,但不可重複命名。修改完
mrtg.cfg後,就可以重新執行indexmaker 來產生mrtg主頁
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
瀏覽如下:
Ps: 常用的 OID
CPU Statistics
Load
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
Memory Statistics
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Disk Statistics
Path where the disk is mounted: .
1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .
1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .
1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .
1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .
1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk: .
1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .
1.3.6.1.4.1.2021.9.1.10.1