linux(CentOS)下Mrtg的安裝詳解

來源:互聯網
上載者:User

MRTG非常強大,他可以監控你的服務器的一舉一動,並且用web方式呈現給你,告訴你網絡,cpu,內存,硬盤等使用狀況,但是配置起來這個軟件實在是非常麻煩.

爲了安裝這個軟件且將其配置好,我上網查了兩天資料,最後整理總結了這一份完整的出來,分享給大家,希望對大家有用.如要轉載請註明出處www.7di.net

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

(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
#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 /usr/local/src/mrtg-2.14.5
#cp ./images/*.* /root/mrtg/

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

然後需要建立一個設定檔:
#/root/mrtgbin/cfgmaker public@改成本機IP --output=/root/mrtg/lxy.cfg

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

(3)修改.sh檔案讓其可執行(.sh檔案內容在下方)
#cd /root/mrtg/sh
#chmod 0755 *.sh
#chmod 0755 *.pl

(4)測試配置檔
LANG=C /root/mrtgbin/mrtg /root/mrtg/lxy.cfg

(5)產生MRTG網站首頁檔案:已在root目錄下
#/root/mrtgbin/indexmaker --output=/root/mrtg/index.html --title="Lidalin's MRTG" /root/mrtg/lxy.cfg

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

(7)MRTG產生的web頁面是靜態,為了能讓其不斷的重新整理,需要將以上命令添加進crontab
#crontab -e
添加如下一行
*/1 * * * * /root/mrtgbin/mrtg /root/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 /root/mrtg/sh

(1)監視記憶體使用量狀況
建立指令檔
#vi mem.sh

添加如下指令碼:
#!/bin/bash
# run this script to check the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'`
usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
echo $totalmem
echo $usedmem
echo $UPtime
儲存後要讓其具有執行許可權
#chmod 755/root/mrtg/sh/mem.sh

(2)編輯/mrtg/lxy.cfg並添加如下內容:
Target[memory]: `/root/mrtg/sh/mem.sh
MaxBytes[memory]: 4096000
Title[memory]:Memory Usages
ShortLegend[memory]: &
kmg[memory]:kB,MB
kilo[memory]:1024
YLegend[memory]:   Memory Usage :
Legend1[memory]:   Total Memory :
Legend2[memory]:   Used Memory :
LegendI[memory]:   Total Memory :
LegendO[memory]:   Used Memory :
Options[memory]: growright,gauge,nopercent
PageTop[memory]:<H1>Memory Usages</H1>

五、各個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]: `/root/mrtg/sh/mem.sh`
Unscaled[memory]: dwym
MaxBytes[memory]: 2048000
Title[memory]:Memory
ShortLegend[memory]: &
kmg[memory]:kB,MB
kilo[memory]:1024
YLegend[memory]: &nbsp; Memory Usage :
Legend1[memory]: &nbsp; Total Memory :
Legend2[memory]: &nbsp; Used Memory :
LegendI[memory]: &nbsp; Total Memory :
LegendO[memory]: &nbsp; Used Memory :
Options[memory]: growright,gauge,nopercent
PageTop[memory]:<H1>Memory</H1>
(2)SWAP:swap.sh
#!/bin/bash
# This script to monitor the swap usage.
totalswap=`/usr/bin/free |grep Swap |awk '{print $2}'`
usedswap=`/usr/bin/free |grep Swap |awk '{print $3}'`
echo "$totalswap"
echo "$usedswap"

編輯MRTG的設定檔:MaxBytes根據實際狀況修改
# Swap
Target[swap]:`/root/mrtg/sh/swap.sh`
Unscaled[swap]: dwym
MaxBytes[swap]: 3048000
Title[swap]:SWAP
ShortLegend[swap]: &
kmg[swap]:kB,MB
kilo[swap]:1024
YLegend[swap]: Swap Usage
Legend1[swap]: Total Swap
Legend2[swap]: Used Swap
LegendI[swap]: Total Swap
LegendO[swap]: Used Swap
Options[swap]: growright,gauge,nopercent
PageTop[swap]:<H1>Swap</H1>
(3)CPU:cpu.sh
#!/bin/bash
# run this script to check the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'`
usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
echo $totalmem
echo $usedmem
echo $UPtime
hostname

編輯MRTG的設定檔:MaxBytes根據實際狀況修改
# Cpu
Target[cpu]: `/root/mrtg/sh/cpu.sh`
MaxBytes[cpu]: 100
Title[cpu]: CPU
Options[cpu]: gauge,nopercent,growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]:%
LegendO[cpu]: & CPU USER
LegendI[cpu]: & CPU SYSTEM
PageTop[cpu]: <H1>CPU</H1>
(4)磁盤佔用:df.pl
#!/usr/bin/perl
# output(df -kl) looks like this:
# Filesystem 1k-blocks Used Available Use% Mounted on
# /dev/md0 95645100 30401312 64272080 33% /
# /dev/hde1 14119 1159 12231 9% /boot
#
# In which case, this script returns :
# 95659219
# 30402503
# when run.
foreach $filesystem (`df -kl | grep -v "Filesystem"`){
@df = split(/\s+/,$filesystem);
$total += $df[1];
$usage += $df[2];
}
print "$total\n";
print "$usage\n";
hostname

編輯MRTG的設定檔:MaxBytes根據實際狀況修改
# Disk used
Target[disk]: `/root/mrtg/sh/df.pl`
Title[disk]: Disk Space
Unscaled[disk]: dwym
MaxBytes[disk]: 115247550
kmg[disk]: KB,MB,GB
LegendI[disk]: Total Disk Space
LegendO[disk]: Used Disk Space
Legend1[disk]: Total Disk Space
Legend2[disk]: Used Disk Space
YLegend[disk]: Megabytes
ShortLegend[disk]: &
Options[disk]: growright,gauge,nopercent
PageTop[disk]: <H1>Disk Space</H1>
(5)磁盤I/O:io.sh
#!/bin/bash
# This script will monitor the KBread/sec &KBwriten/sec of Disk.
# Creater: CCC IT loren ext:2288 2005/8/3
# As sda ,sdb,sdc,sdd,hda.
# disk=sda
hd=sda
disk=/dev/$hd
KBread_sec=`iostat -x $disk|grep $hd |awk '{print $8}'`
KBwrite_sec=`iostat -x $disk|grep $hd |awk '{print $9}'`
echo "$KBread_sec"
echo "$KBwrite_sec"
hostname

編輯MRTG的設定檔:如果需要檢測更多的分區則修改io.sh
# Disk I/O
Target[diskIO]: `/root/mrtg/sh/io.sh`
Title[diskIO]: Disk HDA I/O
Unscaled[diskIO]: dwym
MaxBytes[diskIO]: 100
kmg[diskIO]: KB,MB,GB
LegendI[diskIO]: Disk I/O KBread/sec
LegendO[diskIO]: Disk I/O KBwrite/sec
Legend1[diskIO]: Disk I/O KBread/sec
Legend2[diskIO]: Disk I/O KBwrite/sec
YLegend[diskIO]: Megabytes
ShortLegend[diskIO]: &
Options[diskIO]: growright,gauge,nopercent
PageTop[diskIO]: <H1>Disk I/O</H1>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.