用MRTG检测Linux网络性能

原创 2004年09月22日 10:02:00
随着Linux应用的日益广泛,有大量的网络服务器使用Linux操作系统。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。SNMP协议的制订为互联网测量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型网络流量统计分析工具。它耗用的系统资源很小,因此有很多外挂的程序也依附在MRTG下。它通过SNMP协议从设备得到其流量信息,并将流量负载以包含JPEG格式图形的HTML文档的方式显示给用户,以非常直观的形式显示流量负载。

工作原理

网络服务器的资料总流量(网卡的资料传送总数)、CPU使用率以及特殊服务(例如Squid的代理服务)等的封包传送率(或者说是流量)是网络管理人员所必须要注意的事项。因为当主机的CPU使用率过高时,系统可能呈现不稳定的状态,这就需要注意是哪一个服务或者谁在尝试窃取我们的资料。因此,网络管理方面,有必要了解我们主机的流量状态,并视流量来加以限制或者是加大带宽。

我们可以从MRTG的主页:http://www.mrtg.org下载MRTG软件。在网站:http://www.stat.ee.ethz.ch/mrtg/可以得到MRTG流量监测图的输出结果。示例如图1所示。

40501.jpg

图1 MRTG流量监测图的输出结果


MRTG是用Perl写成的,并且使用了zlib、gd以及png等函数(zlib用来压缩图表、gd用来绘制图表)。服务器中已经含有下列的软件:perl(perl-5.0xx以上)、zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng和Apache。

可以用RPM来确认它们:

rpm -qa | grep perl
rpm -qa | grep zlib
rpm -qa | grep gd
rpm -qa | grep libpng


另外,由于MRTG以HTTP的格式输出成图表来显示,因此必须要安装好Apache。以下,我们使用了预设的Apache路径,为/usr/local/apache/htdocs这个路径来安装MRTG输出的图表。要注意,如果没有Apache,虽然仍可以强行执行MRTG,但那就无法显示图表了。

安装MRTG

由于MRTG是通过SNMP通讯协议来要求资料,因此Linux上需要先安装相应的软件,通常是安装ucd-snmp这套软件。

1.下载ucd-snmp-4.2.1.tar.gz,mrtg-2.9.17.tar.gz。

2.安装ucd-snmp-4.2.1.tar.gz。

[root@tsai/root]#cd /usr/local/src
[root@tsaisrc]#cp /root/ucd-snmp-4.2.1.tar.gz
[root@tsaisrc]#tar -zxvfucd-snmp-4.2.1.tar.gz
[root@tsaisrc]#cd ucd-snmp-4.2.1
[root@tsaiucd-snmp-4.2.1]# ./configure--prefix=/usr/local/snmp
[root@tsaiucd-snmp-4.2.1]# make
[root@tsaiucd-snmp-4.2.1]# makeinstall


3.启动ucd-snmp。

直接在shell下面打上/usr/local/snmp/sbin/snmpd即可,或者直接加在/etc/rc.d/rc.local当中,就可以自动开机启动了。

4.安装。

[root@tsai/root]# cd/usr/local/src
[root@tsaisrc]# cp/root/mrtg-2.9.17.tar.gz.
[root@tsaisrc]# tar-zxvfmrtg-2.9.17.tar.gz
[root@tsaisrc]# cdmrtg-2.9.17
[root@tsaimrtg-2.9.17]# ./configure--prefix=/usr/local/mrtg-2/
>--with-gd=/usr/include/
>--with-gd-lib=/usr/lib/
>--with-gd-inc=/usr/include/
>--with-png=/usr/include/
>--with-zlib=/usr/include
[root@tsaimrtg-2.9.17]# make;makeinstall
[root@tsaimrtg-2.9.17]# mkdir/usr/local/apache/htdocs/mrtg(请注意,
这里与你的WWW主页的放置地点有关,请按照你的系统来设定,另外,由于我们
需要设定网络流量、CPU使用率,因此在mrtg中,再建立两个子目录,比较容易管理。)
[root@tsaimrtg-2.9.17]# mkdir/usr/local/apache/htdocs/mrtg/net
[root@tsaimrtg-2.9.17]# cpimages/*/usr/local/apache/htdocs/mrtg/net



到现在我们就已经正确地安装了MRTG系统。

检测网卡流量

要使用MRTG来作图非常简单,只要几个小步骤就可以自动监测流量。首先以MRTG附的程序来制作一个参数项(预设为mrtg.cfg),然后修改一下mrtg.cfg这个参数项,再直接执行三次参数文件,之后用MRTG程序的小软件直接制作成首页,就可以察看图表了。

设定MRTG的方法如下:

[root@tsaimrtg-2.9.17]# cd/usr/local/mrtg-2/bin
[root@tsaibin]#. /cfgmaker--output=/usr/local/apache/htdocs/mrtg/net/mrtg.cfg/
>public@vbird.adsldns.org
[root@tsaibin]# vi/usr/local/apache/htdocs/mrtg/net/mrtg.cfg


不过由于程序自动设定的mrtg.cfg会有问题,因此,请将下面这三行修改成你自己的样式。

WorkDir:/usr/local/apache/htdocs/mrtg/net/
Options[_]:growright,bits
Language:GB2312
[root@tsaibin]# ./mrtg/usr/local/apache/htdocs/mrtg/net/mrtg.cfg


开始测试你的参数项,要执行三次,就可以正常工作了,不过,若是有问题的话,就需要改mrtg.cfg,再执行直到没有错误发生为止。

[root@tsaibin]# ./indexmaker/
>--output=/usr/local/apache/htdocs/mrtg/net/index.html/
>--title=VBird主机流量统计表/
>/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。
/usr/local/apache/htdocs/mrtg/net


注意:在public@vbird. adsldns.org这一行,public是有其意义的(在SNMP这个通讯服务里面的预设搜寻的一个代码)。如果主机的动态DNS名称为your.domain.name,则就一定要写成public@your. domain.name才行。

在设定五分钟检测一次之后,就可以开始检测。然后就可以通过浏览器访问地址http://192.168.0.1/mrtg/,选择适当的接口地址察看流量信息了。如果希望生成类似于http://www.stat.ee.ethz.ch/mrtg/的信息,就需要自己手工编辑一个index.html文档,存放在/var/www/html/mrtg目录下,内容为接口说明以及该接口的日统计信息的图表。

检测CPU负载量

检测CPU负载量时,需要使用到额外的外挂程序,就是sysstat这个程序。

1.下载并安装sysstat-4.0.2-1.i386.rpm:

$ rpm-ivhsysstat-4.0.2-1.i386.rpm


2. 编写外挂程序

可以应用安装完sysstat套件后产生的/usr/bin/sar程序进行外挂程序的编写,也可以使用bash写一个监测CPU的小程序。示例如下:

[root@tsaicpu]#vimrtg.cpu
---程序开始----
# !/bin/bash
# 这个程序是用来检测CPU的小外挂程序。
# 1.开始使用sar来监测CPU的user及System负载率
cpuusr=`/usr/bin/sar-u13|grepAverage|awk'{print$3}'`
cpusys=`/usr/bin/sar-u13|grepAverage|awk'{print$5}'`
UPtime=`/usr/bin/uptime|awk'{print$3""$4""$5}'`
#2.列出四个数据(前两个为数字)
echo$cpuusr
echo$cpusys
echo$UPtime
echovbird.adsldns.org(这里写你的主机名称)
----程序结束----
[root@tsaicpu]#chmod755mrtg.cpu(设定成可执行)
[root@tsaicpu]#./mrtg.cpu(测试看可执行否)
2.0
5.4
1day,22:30,
vbird.adsldns.org


3.开始设定MRTG参数项,方法如下:

[root@tsaicpu]
# vi mrtg.cfg.cpu
----程序开始----
###GlobalConfigOptions
###Togetbitsinsteadofbytesandgraphs growingtotheright
WorkDir:/usr/local/apache/htdocs/mrtg/cpu/
Language:GB2313
Target[localhost]:`/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu`
MaxBytes[localhost]:100
Options[localhost]:gauge,nopercent,growright
YLegend[localhost]:CPUloading(%)
ShortLegend[localhost]:%
LegendO[localhost]: CPU使用者负载;
LegendI[localhost]: CPU纯系统负载;
Title[localhost]:CPU?t???v
PageTop[localhost]:<H1>VBird主机CPU负载率</H1>
<TABLE>
<TR><TD>System:</TD><TD>RedHat7.1inLinuxKernel2.4.9</TD></TR>
</TABLE>
----程序结束----


这之后开始执行参数项,注意,要执行三次以上:

/usr/local/mrtg-2/bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu


4.写入到/etc/crontab当中:

*/2****root/usr/local/mrtg-2/bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu>/dev/null2>&1


这样就OK了,直接将Web指向http://your.host.domain/mrtg/cpu/localhost.html。

再来说说sar。基本上,sar可以用来检测很多的东西,例如:sar- u 1 5,每一秒钟测一次CPU,共计五次后算平均;sarr 3 3,每三秒看一次实体与虚拟内存用量,三次后算平均。

我们主要介绍了MRTG安装前的准备工作、开始安装、检测网卡流量、检测CPU负荷等。其实MRTG还有许多功能,希望读者进一步挖掘。

RRDTool和mrtg的比较

 RRDTool和mrtg的比较 MRTG的优点:简单、易上手,基本安装完了之后只要更改一下配置文件即可。 缺点: 1、使用文本式的数据库,数据不能重复使用; 2、只能按日、周、月、年来查看数据; 3...
  • superpan
  • superpan
  • 2006年09月27日 19:45
  • 3631

CentOS下安装MRTG

http://www.sofee.cn/blog/2006/10/21/49/  http://www.cyberciti.biz/nixcraft/linux/docs/uniqlinuxfeatu...
  • cnbird2008
  • cnbird2008
  • 2008年01月30日 10:54
  • 2745

LINUX 下基于net-snmp使用MRTG监控服务器流量

一.服务器环境     1.Apache 2.2         2.net-snmp-5.3.1-11.fc6.i386.rpm        net-snmp-devel-5.3.1-11...
  • litwhy
  • litwhy
  • 2017年04月28日 11:28
  • 134

Linux CentOS5.5 安装MRTG 实现网卡流量监控

安装MRTG实现网卡流量监控
  • longxibendi
  • longxibendi
  • 2011年05月24日 21:35
  • 3003

MRTG安装教程

Multi RouterTraffic Grapher(MRTG)是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档方式显示给...
  • u013298318
  • u013298318
  • 2017年05月11日 09:31
  • 227

Nagios监控平台之三:MRTG监控交换机流量

 一、交换机snmp配置,下面是H3C 5500系列的配置命令: snmp-agent enable snmp-agent community read public snmp-age...
  • winsonyuan
  • winsonyuan
  • 2014年04月15日 08:52
  • 1326

MRTG 安装配置

1.安装MRTG yum -y install zlib libpng freetype libjpeg libxml2 gd-devel yum -y install net-snmp ne...
  • yong_sun
  • yong_sun
  • 2012年12月26日 17:15
  • 4250

Linux性能之网络

所有的子系统中,最后说明网路,是由于网络是最难进行监控的。这是由于网路是比较抽象的一个。当监控网络的性能的时候,有许多的因素需要考虑。这些因素包括延迟、冲突、拥塞、误码丢包等等。接下来,将讲一下怎么去...
  • xygl2009
  • xygl2009
  • 2015年07月17日 22:46
  • 566

Linux网络性能分析命令

本节介绍的工具列于下表中。 Linux Solaris 描述 netstat netstat 多种网...
  • ZHANG_H_A
  • ZHANG_H_A
  • 2016年11月03日 15:15
  • 2803

【Linux网络编程】超时检测

在网络编程中超时检测是一个比较常见的操作,因为网络连接具有很大的不确定性,而很多网络操作函数默认都是阻塞式的,因此如果不设置超时,可能会造成永久等待状态出现。 设置套接字选项setsockopt【注意...
  • wr132
  • wr132
  • 2017年04月11日 20:30
  • 549
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用MRTG检测Linux网络性能
举报原因:
原因补充:

(最多只允许输入30个字)