史上最详细的mrtg(Multi Router Traffic Grapher设置说明




史上最详细的mrtg(Multi Router Traffic Grapher设置说明

2022-07-20 20:31:33 网络知识 官方管理员
MultiRouterTrafficGrapher------MRTG是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载。

一、前期准备

(1)MRTG需要以SNMP服务为基础,所以请确保你的系统已经启用了此服务,修改SNMP的配置:
#vi/etc/snmp/snmpd.conf
将62行:
accessnotConfigGroup""anynoauthexactsystemviewnonenone
改为
accessnotConfigGroup""anynoauthexactmib2nonenone
把第89行前面的注释符号#去掉,变成
viewmib2included.iso.org.dod.internet.mgmt.mib-2fc

(2)linuxMrtg监控主机流量启动http服务和snmp服务:
首先查看两个服务在系统启动时是否已经开启
#chkconfig--list|grepnginx
没有启动的话需要修改下在什么启动模式下要自己启动:
#chkconfig--level35nginxon
对snmpd服务采用同样的设置,现在手动启动下
#servicenginxstart
#servicesnmpdstart
启动之后最好是用setup配置服务,让其随机自动启动

查看端口的开启状况也可确认其是否已经被启动
#netstat-tunlp|grepsnmp
tcp000.0.0.0:1990.0.0.0:*LISTEN4973/snmpd
udp000.0.0.0:1610.0.0.0:*4973/snmpd

(3)MRTG生成供浏览图像需要http服务的支持,同时也需要gd、libpng和zlib三个软件包的支持,而gd的正常运行也需要其它的几个软件,(系统默认自带,如果没有自带则需要我们手工安装)
1.安装zlib-1.2.3
#tarzxvfzlib-1.2.3.tar.gz
#cdzlib-1.2.3
#./configure--prefix=/usr/local/zlib
#make
#makeinstall

2.安装httpd-2.2.4
#tarzxvfhttpd-2.2.4.tar.gz
#cdhttpd-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
#makeinstall
启动httpd
/usr/local/apache/bin/apachectl-kstart

3.安装libpng-1.2.14
#tarzxvflibpng-1.2.14.tar.gz
#cdlibpng-1.2.14
#cpscripts/makefile.linuxmakefile
#make(若是提示找不到zlib库文件或者头文件,多半是makefile文件里zlib的默认路径有误。可编辑makefile文件,找到zlib项并重新指定路径到/usr/local/zlib/lib和/usr/local/zlib/include)。
#makeinstall

4.安装freetype-2.1.10
#tar-zvxffreetype-2.1.10.tar.gz
#cdfreetype-2.1.10
#mkdir-p/usr/local/freetype
#./configure--prefix=/usr/local/freetype
#make;makeinstall

5.安装jpegsrc.v6b
jpeg默认不会自建目录,因此需手动建立目录:
#mkdir-pv/usr/local/jpeg6/{,bin,lib,include,man/{,man1},man1}
安装
#tarzxvfjpegsrc.v6b.tar.gz
#./configure--prefix=/usr/local/jpeg6/--enable-shared--enable-static
#make
#makeinstall
#makeinstall-lib

6.安装libxml2-2.6.19
#tar-zxflibxml2-2.6.19.tar.gz
#cdlibxml2-2.6.19
#mkdir-p/usr/local/libxml2
#./configure--prefix=/usr/local/libxml2
#make;makeinstall
#cpxml2-config/usr/bin

7.安装GD-2.0.33库
#tar-zvxfgd-2.0.33.tar.gz
#mkdir-p/usr/local/gd2
#cdgd-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
#makeinstall

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

二、开始安装

(1)开始安装mrtg
#cd/usr/local/src
#wgethttp://oss.oetiker.ch/mrtg/pub/mrtg-2.14.5.tar.gz
#tarzvxfmrtg-2.14.5.tar.gz
#cdmrtg-2.14.5
#./configure--prefix=/usr/local/mrtg注意:--prefix=/usr/local/mrtg是指定的安装路径
#make
#makeinstall

(2)配置MRTG
首先为mrtg的主页在web目录下建立一个目录,假如web目录是:/home/wwwroot/
在此目录下新建目录mrtg和sh即:
#cd/home/wwwroot/
#mkdirmrtg
#cdmrtg
#mkdirsh

如果路径嫌长感到不方便的话可以建立软连接:
#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/cfgmakerpublic@改成本机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
#chmod0755*

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

(6)接下来运行程序
#/_mrtgbin/mrtg/_mrtg/lxy.cfg有的人用这种方法启动#envLANG=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:Changethedefaultmultiplierprefixes
Ytics:纵向划分为几个块(格子)
MaxBytes:图表纵向数值的最大上限
PageTop:页面上面的提示
kilo:一般是写1024,如果需要的话,是1000在计算机里的单位
LegendI:从SHELL返回的数据中的第一个
LegendO:从SHELL返回的数据中的第二个
Options:growright,表示图表向右延展


四、配置其他范例

注意:修改了配置一定要重设第二大步骤中的第(3)(4)(5)(6)步骤

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

(1)监视内存使用状况
建立脚本文件
#vimem.sh

添加(步骤五的)脚本:
保存后要让其具有执行权限
#chmod0755/_mrtg/sh/*

(2)编辑/mrtg/lxy.cfg并添加(步骤五的)内容:

五、各个SHELL(修改了配置之后要重新生成首页,然后重启)
(1)MEMORY:mem.sh
#!/bin/bash
#Thisscripttomonitorthememusage.
totalmem=`/usr/bin/free|grepMem|awk'{print$2}'`
usedmem=`/usr/bin/free|grepMem|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]:&
kmg[memory]:kB,MB
kilo[memory]:1024
YLegend[memory]: MemoryUsage:
Legend1[memory]: TotalMemory:
Legend2[memory]: UsedMemory:
LegendI[memory]: TotalMemory:
LegendO[memory]: UsedMemory:
Options[memory]:growright,gauge,nopercent
PageTop[memory]:<H1>Memory</H1>
(2)SWAP:swap.sh
#!/bin/bash
#Thisscripttomonitortheswapusage.
totalswap=`/usr/bin/free|grepSwap|awk'{print$2}'`
usedswap=`/usr/bin/free|grepSwap|awk'{print$3}'`
echo"$totalswap"
echo"$usedswap"

编辑MRTG的配置文件:MaxBytes根据实际状况修改
#Swap
Target[swap]:`/_mrtg/sh/swap.sh`
Unscaled[swap]:dwym
MaxBytes[swap]:3048000
Title[swap]:SWAP
ShortLegend[swap]:&
kmg[swap]:kB,MB
kilo[swap]:1024
YLegend[swap]:SwapUsage
Legend1[swap]:TotalSwap
Legend2[swap]:UsedSwap
LegendI[swap]:TotalSwap
LegendO[swap]:UsedSwap
Options[swap]:growright,gauge,nopercent
PageTop[swap]:<H1>Swap</H1>
(3)CPU:cpu.sh
#!/bin/bash
#runthisscripttocheckthememusage.
totalmem=`/usr/bin/free|grepMem|awk'{print$2}'`
usedmem=`/usr/bin/free|grepMem|awk'{print$3}'`
UPtime=`/usr/bin/uptime|awk'{print$3""$4""$5}'`
echo$totalmem
echo$usedmem
echo$UPtime
hostname

编辑MRTG的配置文件:MaxBytes根据实际状况修改
#Cpu
Target[cpu]:`/_mrtg/sh/cpu.sh`
MaxBytes[cpu]:100
Title[cpu]:CPU
Options[cpu]:gauge,nopercent,growright
YLegend[cpu]:CPUloading(%)
ShortLegend[cpu]:%
LegendO[cpu]:&CPUUSER
LegendI[cpu]:&CPUSYSTEM
PageTop[cpu]:<H1>CPU</H1>
(4)磁盘佔用:df.pl
#!/usr/bin/perl
#output(df-kl)lookslikethis:
#Filesystem1k-blocksUsedAvailableUse%Mountedon
#/dev/md095645100304013126427208033%/
#/dev/hde1141191159122319%/boot
#
#Inwhichcase,thisscriptreturns:
#95659219
#30402503
#whenrun.
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根据实际状况修改
#Diskused
Target[disk]:`/_mrtg/sh/df.pl`
Title[disk]:DiskSpace
Unscaled[disk]:dwym
MaxBytes[disk]:115247550
kmg[disk]:KB,MB,GB
LegendI[disk]:TotalDiskSpace
LegendO[disk]:UsedDiskSpace
Legend1[disk]:TotalDiskSpace
Legend2[disk]:UsedDiskSpace
YLegend[disk]:Megabytes
ShortLegend[disk]:&
Options[disk]:growright,gauge,nopercent
PageTop[disk]:<H1>DiskSpace</H1>
(5)磁盘I/O:io.sh
#!/bin/bash
#ThisscriptwillmonitortheKBread/sec&KBwriten/secofDisk.
#Creater:CCCITlorenext:22882005/8/3
#Assda,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
#DiskI/O
Target[diskIO]:`/_mrtg/sh/io.sh`
Title[diskIO]:DiskHDAI/O
Unscaled[diskIO]:dwym
MaxBytes[diskIO]:100
kmg[diskIO]:KB,MB,GB
LegendI[diskIO]:DiskI/OKBread/sec
LegendO[diskIO]:DiskI/OKBwrite/sec
Legend1[diskIO]:DiskI/OKBread/sec
Legend2[diskIO]:DiskI/OKBwrite/sec
YLegend[diskIO]:Megabytes
ShortLegend[diskIO]:&
Options[diskIO]:growright,gauge,nopercent
PageTop[diskIO]:<H1>DiskI/O</H1>

发表评论:

最近发表
网站分类
标签列表