萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統mrtg安裝設置教程

Linux系統mrtg安裝設置教程

MRTG(Multi Router Traffic Grapher)是一套可用來繪出網絡流量圖的軟件,由瑞士奧爾滕的Tobias Oetiker與Dave Rand所開發,此軟件以GPL授權。

下面是網卡流量監控圖

Linux系統mrtg安裝設置教程 三聯

MRTG最早的版本是在1995年春天所推出,以Perl所寫成,因此可以跨平台使用,它利用了SNMP送出帶有物件識別碼(OIDs)的請求給要查詢的網絡設備,因此設備本身需支援SNMP。MRTG再以所收集到的資料產生HTML檔案並以GIF或PNG格式繪制出圖形,並可以日、周、月等單位分別繪出。它也可產生出最大值最小值的資料供統計用。

原本MRTG只能繪出網絡設備的流量圖,後來發展出了各種plug-in,因此網絡以外的設備也可由MRTG監控,例如服務器的硬盤使用量、CPU的負載等。

Mrtg可用來監視linux的各種詳細參數,如果不明白可以去搜索一下就知道了.今天我主要講解的是他的設置方法.

一、前期准備

(1)MRTG需要以SNMP服務為基礎,所以請確保你的系統已經啟用了此服務,修改SNMP的配置:
#vi /etc/snmp/snmpd.conf
將62行:
access notConfigGroup "" any noauth exact systemview none none
改為
access notConfigGroup "" any noauth exact mib2 none none
把第89行前面的注釋符號#去掉,變成
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

(2)linux Mrtg監控主機流量啟動http服務和snmp服務:
首先查看兩個服務在系統啟動時是否已經開啟
#chkconfig --list | grep nginx
沒有啟動的話需要修改下在什麼啟動模式下要自己啟動:
# chkconfig --level 35 nginx on
對 snmpd 服務采用同樣的設置,現在手動啟動下
#service nginx start
#service snmpd start
啟動之後最好是用setup配置服務,讓其隨機自動啟動

查看端口的開啟狀況也可確認其是否已經被啟動
# netstat -tunlp |grep snmp
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 4973/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 4973/snmpd

(3)MRTG生成供浏覽圖像需要http服務的支持,同時也需要gd、libpng和zlib三個軟件包的支持,而gd的正常運行也需要其它的幾個軟件,(系統默認自帶,如果沒有自帶則需要我們手工安裝)
1.安裝zlib-1.2.3
#tar zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure --prefix=/usr/local/zlib
#make
#make install

2.安裝httpd-2.2.4
#tar zxvf httpd-2.2.4.tar.gz
#cd httpd-2.2.4
#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-track-vars --enable-rewrite --with-z-dir=/usr/local/zlib
#make
#make install
啟動httpd
/usr/local/apache/bin/apachectl -k start

3.安裝libpng-1.2.14
#tar zxvf libpng-1.2.14.tar.gz
# cd libpng-1.2.14
# cp scripts/makefile.linux makefile
# make (若是提示找不到zlib庫文件或者頭文件,多半是makefile文件裡zlib的默認路徑有誤。可編輯makefile文件,找到zlib項並重新指定路徑到/usr/local/zlib/lib和/usr/local/zlib/include)。
# make install

4.安裝freetype-2.1.10
# tar -zvxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make;make install

5.安裝jpegsrc.v6b
jpeg默認不會自建目錄,因此需手動建立目錄:
# mkdir -pv /usr/local/jpeg6/{,bin,lib,include,man/{,man1},man1}
安裝
#tar zxvf jpegsrc.v6b.tar.gz
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make
# make install
# make install-lib

6.安裝libxml2-2.6.19
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make; make install
#cp xml2-config /usr/bin

7.安裝GD-2.0.33庫
# tar -zvxf gd-2.0.33.tar.gz
# mkdir -p /usr/local/gd2
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/lib/ --with-zlib=/usr/local/zlib/ --with-freetype=/usr/local/freetype/
# make
# make install

(4)修改系統語言配置
#vi /etc/profile
增加如下兩行
LC_ALL=C
LANGUAGE=on

二、開始安裝

(1)開始安裝mrtg
#cd /usr/local/src
#wget http://oss.oetiker.ch/mrtg/pub/mrtg-2.14.5.tar.gz
#tar zvxf mrtg-2.14.5.tar.gz
#cd mrtg-2.14.5
#./configure --prefix=/usr/local/mrtg 注意:“--prefix=/usr/local/mrtg”是指定的安裝路徑
#make
#make install

(2)配置MRTG
首先為mrtg的主頁在web目錄下建立一個目錄,假如web目錄是:/home/wwwroot/
在此目錄下新建目錄mrtg和sh即:
#cd /home/wwwroot/
#mkdir mrtg
#cd mrtg
#mkdir sh

如果路徑嫌長感到不方便的話可以建立軟連接:
#cd /
#ln –s /home/wwwroot/mrtg _mrtg
#ln –s /usr/local/mrtg/bin _mrtgbin

把一些圖片複製過去
#cd /usr/local/src/mrtg-2.14.5 //進入mrtg安裝目錄
#cp ./images/*.* /_mrtg/

然後需要創建一個配置文件:
#/_mrtgbin/cfgmaker public@改成本機IP --output=/_mrtg/lxy.cfg

修改配置文件:
#vi /_mrtg/lxy.cfg
將 #WorkDir:/home/http/mrtg 去掉注釋並改為 WorkDir: /home/wwwroot/mrtg (此處是MRTG的WEB目錄)
將 #Options[_]: growright, bits 前面的#去掉,靠左對齊
在最後加上Language: big5,然後保存

(3)測試配置檔(如果出錯就多測幾次)
LANG=C /_mrtgbin/mrtg /_mrtg/lxy.cfg

===================================================
(4)根據下方的說明建立sh和pl檔案,然後修改.sh檔案讓其可執行(.sh檔案內容在下方)
#cd /_mrtg/sh
#chmod 0755 *

(5)生成MRTG網站首頁文件:已在root目錄下
#/_mrtgbin/indexmaker --output=/_mrtg/index.html --title="Lidalin's MRTG" /_mrtg/lxy.cfg

(6)接下來運行程序
#/_mrtgbin/mrtg /_mrtg/lxy.cfg 有的人用這種方法啟動#env LANG=C /_mrtgbin/mrtg /mrtg/lxy.cfg
如果有警告或錯誤,則多運行幾次,當警告或錯誤不再出現時就OK了

(7)MRTG生成的web頁面是靜態的,為了能讓其不斷的刷新,需要將以上命令添加進crontab
#crontab -e
添加如下一行
*/1 * * * * /_mrtgbin/mrtg /_mrtg/lxy.cfg
保存,然後reboot
打開瀏覽器,輸入 http://改成本機IP/mrtg 應該就可以看到網絡使用情況的曲線了,一分鐘後再看比較準確!

注意:如果你設置了中級防火牆而又沒有開啟80端口訪問,需要編輯/etc/sysconfig/iptables允許別人訪問80端口

三、mrtg.cfg 裡面參數的意思
Target:是要執行的腳本
Xsize:生成圖表的橫向寬度(最大600)
Ysize:生成圖表的縱向高度(最大200)
Title:標題
kmg: Change the default multiplier prefixes
Ytics:縱向劃分為幾個塊(格子)
MaxBytes:圖表縱向數值的最大上限
PageTop:頁面上面的提示
kilo:一般是寫1024,如果需要的話,是1000在計算機裡的單位
LegendI:從SHELL返回的數據中的第一個
LegendO:從SHELL返回的數據中的第二個
Options: growright,表示圖表向右延展


四、配置其他範例
注意:修改了配置一定要重設第二大步驟中的第(3)(4)(5)(6)步驟

其他配置的部份均放入此資料夾下
#cd /_mrtg/sh

(1)監視內存使用狀況
建立腳本文件
#vi mem.sh

添加(步驟五的)腳本:
保存後要讓其具有執行權限
#chmod 0755 /_mrtg/sh/*

(2)編輯/mrtg/lxy.cfg並添加(步驟五的)內容:

五、各個SHELL(修改了配置之後要重新生成首頁,然後重啟)
(1)MEMORY:mem.sh
#!/bin/bash
# This script to monitor the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'`
usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
echo "$totalmem"
echo "$usedmem"

編輯MRTG的配置文件:MaxBytes的值根據實際狀況修改
# Mem
Target[memory]: `/_mrtg/sh/mem.sh`
Unscaled[memory]: dwym
MaxBytes[memory]: 2048000
Title[memory]:Memory
ShortLegend[memory]

copyright © 萬盛學電腦網 all rights reserved