MRTG  簡易設定法 ( Fedora )
1.      需安裝的套件 httpd , freetype , libjpeg , libpng , gd , mrtg , net-snmp
使用 # rpm qa | grep xxxx < - - - 為套件名稱查詢
 
2.      Fedora Core1 預設不能監控本 身所以需要修改
修改的檔案/etc/snmp/snmpd.conf
找到
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2 < - - - -加入這行
view systemview included .1.3.6.1.2.1.25.1.1
修改完成重新啟動/etc/rc.d/init.d/snmpd restart
 
3.      由於Fedora Core1Apache預設用UTF-8編碼,但是MRTG無法產生UTF-8編碼的網頁所以需要修改Apache的編碼
修改的檔案/etc/httpd/conf/httpd.conf
找出AddDefaultCharset UTF-8 < - - -將原本的UTF-8改 成 big5
 
4.      設定可瀏覽的ip
修改的檔案/etc/httpd/conf.d/mrtg.conf
Alias /mrtg /var/www/mrtg < - - -設定mrtg資料放在/var/www/mrtg 別名為 mrtg 因此網頁為http://your_ip/mrtg
<Location /mrtg>
#Deny form all < - - - 將此行註解
Allow form all < - - - 加入此行為所有的 ip 都可以看
Allow form 192.168.0.1 < - - - 允許特定的ip瀏覽
#Allow form .example.com
</Location>
之後就可以重新啟動Apache  /etc/rc.d/init.d/httpd restart
 
5.      產生設定
第一次產生設定檔 #cfgmaker public@ ip > /etc/mrtg/mrtg.cfg
如果有很多設備需要加入時就用 #cfgmaker public@ ip >> /etc/mrtg/mrtg.cfg
mrtg.cfg需要修改 的地方
WorkDir : /var/www/mrtg < - - -產 生的資料所要存放的目錄
Refresh: 300          < - - -預設300秒更新一次網頁
Interval:5            < - - -5分鐘讀取設定一次
Language: big5        < - - -輸出big5編碼的網頁
Options[_]: growright   < - - -圖表由右邊開始畫起
 
Title[ip] : …會出現在網頁瀏覽器的標題列
PageTop[ip] : ….為 網頁的標題
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - -  - - - -  - - - -  - - - - - - -  - - - - -  - - - - - -  - - - - - -  - - - - - - -  - - - - - - - - -
注意WorkDir:的設定,WorkDir前面不可以有任何的空白,WorkDir : 中間也不可以有空白還有 WorkDir: 之後一定
要空一格後再/var/www/mrtg要不然會出現 ERROR: Line 8 ( WorkDir:  /var/www/mrtg) in CFG file (/etc/mrtg/mrtg.cfg) does no make sense
這樣的錯誤訊息出現導至 mrtg 無法執行的,因為有時 候cfgmaker自己做出來的會有多 的空白所以要特別注意的歐
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - -  - - - -  - - - -  - - - - - - -  - - - - -  - - - - - -  - - - - - -  - - - - - - -  - - - - - - - - -
 
6.      偵測進出的流量
#env LANG=C mrtg /etc/mrtg/mrtg.cfg
剛開始要執行三次以上才不會有錯誤
 
7.      如果有很多設備要監控可以製作一個目錄的網頁
#indexmaker /etc/mrtg/mrtg.cfg –output=/var/www/mrtg/index.html
這樣就可以製作標題的網頁
 
8.      定時執行
檢視/etc/cron.d/mrtg
內容
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
- - -  - - - -  - - - -  - - -=======================-------------------------
9. SNMP trap 訊 息是由UDP  port:162由代 理者送到 NMS
  SNMP 的請求訊 息由 NMS送到代理者的 UDP port:161
  SNMP 請求的回 應訊息由代理者的port:161送回 NMS
所以有防火牆的要注意這個UDP port 要記得開啟才可以用歐
#------------------------------------------------------------------------------------------------------------------------
MRTG抓cpu使用量及記憶體使用量需安裝:
 # yum install sysstat
MRTG抓系統溫度電壓風扇轉速需要安裝
 #yum install lm_sensors
 #sensors-detect
 #sensors
MRTG抓硬碟溫度需要安裝
 #yum install hddtemp
 #hddtemp /dev/sda
#------------------------------------------------------------------------------------------------------------------------
APACHE 改中文 UTF-8
# cd /etc/httpd/conf.d
# vi mrtg.conf
要加入的如下:
Alias /mrtg /var/www/mrtg

<Location /mrtg>
    AddDefaultCharset UTF-8
    Order deny,allow
    #ADeny from all
    Allow from all
    #Allow from localhost
    # Allow from .example.com
</Location>


#------------------------------------------------------------------------------------------------------------------------
如何把我們系統的狀況抓到MRTG上面顯示出來??
MRTG你只要給他兩個數字他就會自動幫你畫圖出來,下面的方法就是寫一個SHELL產生兩個數字,
之後再丟給MRTG這樣就可以讓你把電腦系統的資訊弄成MRTG的圖片了,所以可以自己想各種的方法
只要是兩個數子丟給這個MRTG就可以得到數據及表格
下面的方法是我系統內的SHELL,不同的電腦需要不同的方式去過濾出數字,如果照COPY不能用的話要自己改
#------------------------------------------------------------------------------------------------------------------------
MRTG 抓CPU溫度及系統的溫度
1.寫一個shell產生兩組數據 ,檔名mrtg_temp1.sh內容如下

#!/bin/bash
/usr/local/bin/sensors | grep temp1 | cut -d"+" -f2 | awk '{print $1}' | cut -d"." -f1
/usr/local/bin/sensors | grep temp2 | cut -d"+" -f2 | awk '{print $1}' | cut -d"." -f1
執行這個SHELL會輸出兩個數字如下:
43
45
這就是溫度

2.建立一個mrtg_temp1.cfg 內容如下:

WorkDir: /var/www/mrtg
Language: UTF-8
Target[mrtg_temp1]: `/etc/mrtg/mrtg_temp1.sh`  
MaxBytes[mrtg_temp1]: 150
Options[mrtg_temp1]: gauge, nopercent, growright
YLegend[mrtg_temp1]: Temp
ShortLegend[mrtg_temp1]: 度
LegendI[mrtg_temp1]: &nbsp; Temp1 :
LegendO[mrtg_temp1]: &nbsp; Temp2 :
Title[mrtg_temp1]: 192.168.1.1 主機 溫度 統計表
PageTop[mrtg_temp1]: <H1> 192.168.1.1 主機 溫度</H1>

3.將兩個檔案寫好並存檔
#chmod 700 mrtg_temp1.sh
#cat /etc/mrtg/mrtg_temp1.cfg  >> /etc/mrtg/mrtg.cfg
#indexmaker /etc/mrtg/mrtg.cfg -output=/var/www/mrtg/index.html
#env LANG=C mrtg /etc/mrtg/mrtg.cfg
#env LANG=C mrtg /etc/mrtg/mrtg.cfg
#env LANG=C mrtg /etc/mrtg/mrtg.cfg

#------------------------------------------------------------------------------------------------------------------------
MRTG 抓CPU 使用量
1.寫一個shell產生兩組數據 ,檔名mrtg_cpu.sh內容如下:
#!/bin/bash
sar -u 1 3 | grep Average | awk '{print $3}'
sar -u 1 3 | grep Average | awk '{print $5}'
執行這個shell會輸出兩個數字,system跟user的CPU使用量如下:
34
44
這兩個一個是系統的一個是使用者的使用量

2.建立一個mrtg_cpu.cfg 內容如下:
WorkDir: /var/www/mrtg
Language: UTF-8
Target[cpu_usage1]: `/etc/mrtg/mrtg_cpu.sh`
MaxBytes[cpu_usage1]: 100
Options[cpu_usage1]: gauge, nopercent, growright
YLegend[cpu_usage1]: CPU LOAD
ShortLegend[cpu_usage1]: %
LegendI[cpu_usage1]: &nbsp; USER :
LegendO[cpu_usage1]: &nbsp; SYSTEM :
Title[cpu_usage1]: 192.168.3.1 主機 CPU USAGE 統計表
PageTop[cpu_usage1]: <H1> 192.168.3.1 主機 CPU USAGE</H1>

3.將兩個檔案寫好並存檔
#chmod 700mrtg_cpu.sh
#cat /etc/mrtg/mrtg_cpu.cfg  >> /etc/mrtg/mrtg.cfg
#indexmaker /etc/mrtg/mrtg.cfg -output=/var/www/mrtg/index.html
#env LANG=C mrtg /etc/mrtg/mrtg.cfg
#env LANG=C mrtg /etc/mrtg/mrtg.cfg
#env LANG=C mrtg /etc/mrtg/mrtg.cfg
#------------------------------------------------------------------------------------------------------------------------