MRTG

MRTG(multi router traffic grapher)
製作網路流量統計圖的工具
官方網站為http://www.mrtg.org

…………………………………………………………………………………………..
…………………………………………………………………………………………..

安裝mrtg前先確定有以下功能
perl  (perl-5.0xx 以上)
zlib  (zlib-1.1.3-xx 以上)
gd  (gd-1.3.xx 以上)
libpng
apache

安裝
./configure  
建議參數使用以下:
 –prefix=/usr/local/mrtg  
 –with-gd=/usr/include  
 –with-gd-lib=/usr/lib  
 –with-gd-inc=/usr/include  
 –with-png=/usr/include  
 –with-zlib=/usr/include

make
make install

……………………

產生報表
假設:
a,以下指令在/bin目錄下
b,產生mrtg.cfg的參數檔並存在根目錄上
c,目標設備為public@address
d,apache的目錄在/var/www/html/

1新增參數檔
/bin/cfgmaker –output=/mrtg.cfg public@address
並用vi編輯參數檔mrtg.cfg內容,如下
WorkDir:/var/www/html/mrtg/

2產生報表
/bin/mrtg /mrtg.cfg

3建立索引檔
/bin/indexmaker –output=/var/www/html/mrtg/index.html /mrtg.cfg

4不斷監控
在crontab加入以下內容
*/5 * * * * root /bin/mrtg /mrtg.cfg > /dev/null 2>&1

…………………………………………………………………………………………..
…………………………………………………………………………………………..

常用指令說明

cfgmaker –output=< filepath> < name@device address> //產生參數檔,可用參數如下
 < name@device address> 依據device address這個設備的name產生相關參數
 < filepath> 將參數檔存在filepath

mrtg < cfg>//產生報表
 < cfg> //依據cfg參數檔產生報表
 ps:執行第1,2次通常會有警告訊息,第三次就不會有了,須執行到無警告訊息為止

indexmaker –output=< filepath> < cfg>//產生索引網頁
 < filepath> 將索引網頁存在filepath
 < cfg> //依據cfg檔產生索引網頁

……………………..

參數檔設定

全域設定
WorkDir:dirpath  //設定存放報表的目錄
Refresh:sec //設定幾秒遊覽器更新一次
Language:big5 //設定語言為big5
RunAsDaemon:Yes //以daemon的方式在背景執行而不用crontab,可省資源
interval:5 //用在RunAsDaemon:Yes,則每5分鐘更新一次


區域設定
target[name]:option
//target參數所指的name,會用在產生網頁或紀錄檔的檔案,因此在所指定的工偏目錄中,不可有相同name以免影響
//option如下
 port:public@address //告訢mrtg透過port偵測public@address
 ex:target[127.0.0.1]:2:public@localhost
 `program` //告訴mrtg執行program
 ex:`/usr/local/apache/htdocs/cpustatus`
 
SetEnv[name]:var=”value” //可針對產生的網頁進行環境資訊的提供,var有EMAIL,HOST,URL,MRTG_INT_IP
YLegend[name]:scribe //設定y軸標簽為scribe
Legend1[name]:scribe //設定第1條曲線的說明資料為scribe,1可換成2,3,4,I,O
LegendI:in  //設定說明文字,預設顯示in
LegendO:out  //設定說明文字,預設顯示out
ShortLegend[name]: % //設定單位為%
Title[name]:title //設定標題為title
PageTop[name]:htmldata  //加入htmldata到html網頁中

MaxBytes[_]: 1250000 //報表最大數值
Option[_]:option //可選option如下,預設為byte
   bits //圖片以bits為單位
   growright //圖表從右邊開始畫
   avgpeak //設定平均值的計算,預設5分鐘
   unknaszero //收集資料時發現值為0,則報表紀錄0,可避免設備斷線時,持續以最後一個值來代表
   withzeroes //收集資料時發現值為0,則勿略,若設備斷線時,持續以最後一個值來代表
   gauge //應用在資料量的顯示,且圖表的上限固定,ex:磁碟容量,cpu負載,溫度
   absolute //配合gauge
   nopercent //不顯示百分比的資訊

WithPeak[]: dwmy //用最大值記錄,預設是平均值
kilo[]: 1024 //改變單位換算方式,預設值1000


…………………………………………………………………………………………..


ps:若有動態ip,則需將SetEnv[name]內的MRTG_INT_IP的ip改為網域
否則會感應不到此動態ip的界面
ex:
原本SetEnv[127.0.0.1_1]: MRTG_INT_IP=”116.59.118.34″
改成SetEnv[127.0.0.1_1]: MRTG_INT_IP=”domains”
domains可用ddns

…………………………………………………

windows下的設定 

1利用cfgmaker指令產生組態檔mrtg.cfg
perl cfgmaker public@address –output mrtg.cfg
ps:
組態檔產生後要編輯mrtg.cfg
規則同linux參數檔設定

2
根據組態檔利用mrtg指令建立檔案
perl mrtg mrtg.cfg

3
要求mrtg定期畫流量
start /D < mrtg directory >bin wperl mrtg –logging=eventlog < cfg >
ex:
start /D D:mrtg-2.16.3bin wperl mrtg –logging=eventlog mrtg.cfg