﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-IT随笔--海之蓝-文章分类-网络分析和监控</title><link>http://www.cnitblog.com/lym520/category/2284.html</link><description>—— 只有敢于攀登顶峰的人，才能将顶峰踩在脚下。&amp;nbsp; &lt;br /&gt;
   
—— 不怕失败，超越自我。</description><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 00:03:13 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 00:03:13 GMT</pubDate><ttl>60</ttl><item><title>SNMP入门</title><link>http://www.cnitblog.com/lym520/articles/9128.html</link><dc:creator>海之蓝</dc:creator><author>海之蓝</author><pubDate>Thu, 13 Apr 2006 08:56:00 GMT</pubDate><guid>http://www.cnitblog.com/lym520/articles/9128.html</guid><wfw:comment>http://www.cnitblog.com/lym520/comments/9128.html</wfw:comment><comments>http://www.cnitblog.com/lym520/articles/9128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lym520/comments/commentRss/9128.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lym520/services/trackbacks/9128.html</trackback:ping><description><![CDATA[
		<strong>SNMP入门<br /><br /></strong>作者：Cameron Laird &lt;cameron@phaseit.net&gt;<br />整理：NSFocus Security Team<br />出处：siteupdate.magazine<br />主页：http://www.nsfocus.com<br />日期：2002-04-12<br /><br /><br />☆ 谢谢 stardust &lt;stardust@nsfocus.com&gt; 提供的测试环境以及在Perl脚本上的帮<br />   助<br /><br />☆ SNMP的历史<br /><br />SNMP是简单网络管理协议的缩写。<br /><br />上个世纪80年代中期，网络管理通常使用ping、traceroute、tcpdump以及类似的工<br />具。当时绝大多数网络规模很小，远没有后来变得那么复杂。1987年， Request For<br />Comments (RFC) 1024提出了"Simple Gateway Monitoring Protocol"(SGMP)。SGMP<br />定义了一种平台无关的标准，用于监视网关的状态。大约两年后，RFC 1067提出了<br />SNMP。<br /><br />☆ SNMP术语和概念<br /><br />ASN.1: 一个SNMP消息通过抽象语法记法1(Abstract Syntax Notation, version 1)<br />       构造。ASN.1是一种形式语言。<br /><br />BER  : 将ASN.1描述表示成octet strings的基本编码规则<br /><br />MIB  : 管理信息库。下面是一个例子<br /><br />        sysUpTime OBJECT-TYPE<br />            SYNTAX  TimeTicks<br />            ACCESS  read-only<br />            STATUS  mandatory<br />            DESCRIPTION <br />                "距最后一次系统重启动的时间"<br /><br />OID  : 对象标识符是唯一的点分数字串，比如".1.3.6.1.2.1.4.3.0"<br /><br />PDU  : 协议数据单元是SNMP消息中的数据区。<br /><br />SMI  : 管理信息结构是一套描述SNMP如何访问信息的标准，它用ASN.1定义了MIB。<br />       SMI要求每个数据项有name、syntax和encoding三部分。名字就是OID。语法<br />       给出了数据类型，比如"integer"、"string of octets"等等。编码则指明为<br />       了进行平台无关网络转输如何进行数据的序列化(RPC/XDR中存在类似概念)。<br /><br />☆ SNMP基础<br /><br />SNMP是种网络设备之间客户机/服务器模式的简单通信协议。路由器、交换机、打印<br />机、HUB等等都可以成为SNMP系统中的服务器方。而SNMP系统中的客户机方往往是单<br />独的一台计算机，轮询网络设备并记录它们所返回的数据。这里允许一台服务器多个<br />客户机的情形。<br /><br />SNMP允许你用很少的网络带宽和内存收集很多有用的系统、网络数据。<br /><br />SNMP提供了一种统一的、跨平台的设备管理办法。<br /><br />☆ NET-SNMP<br /><br />可以从http://net-snmp.sourceforge.net/获取NET-SNMP的RPM包以及源代码。下载<br />解压后<br /><br />su -<br />cd ucd-snmp-4.2.3<br />./configure --prefix=/usr  &lt;-- 缺省是/usr/local<br />make clean all<br />make install<br /><br />☆ 收集数据<br /><br />SNMP agent是SNMP系统中的的服务器方。两年前Internet上到处可见SNMP agent，现<br />在出于安全原因，防火墙配置得到加强，可能你只好在LAN内测试SNMP了。<br /><br />snmpget &lt;target&gt; public system.sysDescr.0<br /><br />应该可以看到一个关于系统的简短描述，类似这样<br /><br />system.sysDescr.0 = Sun SNMP Agent, Ultra-60<br /><br />上述命令中的public可以理解为SNMP agent的口令，术语叫做"community string"。<br />许多网络设备、操作系统都用"public"做为缺省"community string"，潜在带来安全<br />问题。应该修改这个缺省"community string"。<br /><br />上述命令还可以写成<br /><br />snmpget &lt;target&gt; public .1.3.6.1.2.1.1.1.0<br /><br />"system.sysDescr.0"只是".1.3.6.1.2.1.1.1.0"的另一种表述方式，最终还是要转<br />换成数字形式的OID(对象标识符)。类似FQDN和IP地址的关系。<br /><br />DNS系统负责FQDN与IP之间的转换，SNMP通过管理信息库(MIB)完成这种转换。MIB是<br />一个文本文件，包含很多SNMP相关信息，其中包括OID转换信息。MIBs有公用的，也<br />有专用的。RFC 1213介绍了sysDescr和许多其它常见OIDs，比如sysUpTime(距最后一<br />次系统重启动的时间)和sysLocation(设备所在物理位置). <br /><br />可以用如下命令检查MIBs<br /><br />snmptranslate -Td -OS system.sysDescr.0<br /><br />--------------------------------------------------------------------------<br />.1.3.6.1.2.1.1.1.0<br />sysDescr OBJECT-TYPE<br />  -- FROM       SNMPv2-MIB, RFC1213-MIB<br />  -- TEXTUAL CONVENTION DisplayString<br />  SYNTAX        OCTET STRING (0..255) <br />  DISPLAY-HINT  "255a"<br />  MAX-ACCESS    read-only<br />  STATUS        current<br />  DESCRIPTION   "A textual description of the entity.  This value should<br />            include the full name and version identification of the<br />            system's hardware type, software operating-system, and<br />            networking software."<br />::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysDescr(1) 0 }<br />--------------------------------------------------------------------------<br /><br />snmptranslate也可以完成OID到文本描述串的转换，比如<br /><br />snmptranslate -Td -OS .1.3.6.1.2.1.1.1.0<br /><br />在一台x86/FreeBSD 4.3-RELEASE上<br /><br />snmpwalk localhost public interfaces.ifTable.ifEntry.ifDescr<br />snmpwalk localhost public .1.3.6.1.2.1.2.2.1.2<br /><br />--------------------------------------------------------------------------<br />interfaces.ifTable.ifEntry.ifDescr.1 = fxp0<br />interfaces.ifTable.ifEntry.ifDescr.2 = fxp1<br />interfaces.ifTable.ifEntry.ifDescr.3 = fxp2<br />interfaces.ifTable.ifEntry.ifDescr.4 = lo0<br />--------------------------------------------------------------------------<br /><br />这个显示顺序与/sbin/ifconfig -l看到的一致。<br /><br />snmptranslate -Td -OS interfaces.ifTable.ifEntry.ifDescr.1<br /><br />--------------------------------------------------------------------------<br />.1.3.6.1.2.1.2.2.1.2.1<br />ifDescr OBJECT-TYPE<br />  -- FROM       IF-MIB, RFC1213-MIB<br />  -- TEXTUAL CONVENTION DisplayString<br />  SYNTAX        OCTET STRING (0..255) <br />  DISPLAY-HINT  "255a"<br />  MAX-ACCESS    read-only<br />  STATUS        current<br />  DESCRIPTION   "A textual string containing information about the<br />            interface.  This string should include the name of the<br />            manufacturer, the product name and the version of the<br />            interface hardware/software."<br />::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) interfaces(2) ifTable(2) ifEntry(1) ifDescr(2) 1 }<br />--------------------------------------------------------------------------<br /><br />☆ SNMP编程<br /><br />NET-SNMP提供了支持SNMP开发的C库，你可以开发自己的SNMP应用程序。然而从Perl、<br />Python或者Tcl这样的脚本语言开始SNMP编程更容易，它们都带有SNMP开发支持。<br /><br />--------------------------------------------------------------------------<br />#! /usr/local/bin/perl<br />#<br /># File   : list_if.pl<br /># Test   : SPARC/Solaris 7<br /># Author : Laurent Girod  / Philip Morris Products S.A. / Neuchatel / Switzerland<br />#<br /><br />use BER;<br />use SNMP_util "0.92";<br /><br /># Uptime in absolute value<br />$BER::pretty_print_timeticks = 0;<br /><br />my $host = shift @ARGV || &amp;usage;<br />my $community = shift @ARGV || 'public';<br />&amp;usage if $#ARGV &gt;= 0;<br />$host = "$community\@$host" if !( $host =~ /\@/ );<br /><br />my $oid_name = 'interfaces.ifTable.ifEntry.ifDescr';<br /><br />print "\nCollecting [$oid_name]\n";<br />@ret = &amp;snmpwalk( $host, $oid_name );<br />foreach $desc ( @ret )<br />{<br />    ( $oid, $desc ) = split( ':', $desc, 2 );<br />    print "$oid = $desc\n";<br />}<br /><br />sub usage<br />{<br />    die "Usage: $0 hostname [community]\n";<br />}<br />--------------------------------------------------------------------------<br /><br />注: 为了运行这个Perl程序，可能你需要下载安装SNMP_Session-0.92.tar.gz以获取<br />    Perl扩展模块SNMP_util.pm。<br /><br />这个脚本列举指定主机的网络接口，与/sbin/ifconfig -a看到的顺序一致<br /><br /># ./list_if.pl public@localhost  &lt;-- 从代码中可以看出这个用法<br /><br />Collecting [interfaces.ifTable.ifEntry.ifDescr]<br />1 = lo0<br />2 = hme0<br />#<br /><br />"community@host"是snmpwalk()第一形参要求的格式。<br /><br />☆ 缺点<br /><br />SNMP具有灵活、易用特点的同时，存在严重的安全缺陷。此外用SNMP处理现代面向对<br />象的或者基于XML的数据非常困难。最后，真正理解SNMP如何工作的系统管理员和程<br />序员实在太少了。<br /><br />尽管存在诸多问题，SNMP的优势还是存在。今年早些时候，SNMPv3的RFC出台，修正<br />了最严重的安全缺陷。<br /><br />☆ 参考资源<br /><br />1) The NET-SNMP Project Home Page (source code is available from this site)<br />   http://net-snmp.sourceforge.net/<br /><br />2) MRTG: The Multi Router Traffic Grapher<br />   http://www.mrtg.org/<br /><br />3) Big Brother System and Network Monitor<br />   http://maclawran.ca/bb-dnld<br /><br />4) The Distributed Management Task Force, Inc. (DMTF)<br />   http://www.dmtf.org/<br /><br />5) Web-Based Enterprise Management (WBEM) Initiative<br />   http://www.dmtf.org/standards/standard_wbem.php <br /><br />6) SNMP4tPC -- SNMP RFC Information and Links<br />   http://www.wtcs.org/snmp4tpc/snmp_rfc.htm<br /><br />7) Essential SNMP<br />   http://www.oreilly.com/catalog/esnmp <br /><br />8) Index of the CPAN (Perl) SNMP Library Directory<br />   http://www.cpan.org/modules/by-module/SNMP<br /><br />9) RFC 1213 -- MIBs<br />   http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1213.html<br /><img src ="http://www.cnitblog.com/lym520/aggbug/9128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lym520/" target="_blank">海之蓝</a> 2006-04-13 16:56 <a href="http://www.cnitblog.com/lym520/articles/9128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用MRTG监控路由、交换设备</title><link>http://www.cnitblog.com/lym520/articles/8830.html</link><dc:creator>海之蓝</dc:creator><author>海之蓝</author><pubDate>Thu, 06 Apr 2006 09:36:00 GMT</pubDate><guid>http://www.cnitblog.com/lym520/articles/8830.html</guid><wfw:comment>http://www.cnitblog.com/lym520/comments/8830.html</wfw:comment><comments>http://www.cnitblog.com/lym520/articles/8830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lym520/comments/commentRss/8830.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lym520/services/trackbacks/8830.html</trackback:ping><description><![CDATA[
		<table class="center_tdbgall" style="WORD-BREAK: break-all" cellspacing="0" cellpadding="0" width="760" align="center" border="0">
				<tbody>
						<tr valign="center" align="middle">
								<td class="main_ArticleTitle" style="WORD-BREAK: break-all" colspan="2" height="50">使用MRTG监控路由、交换设备 </td>
						</tr>
						<tr valign="center" align="middle">
								<td class="main_ArticleSubheading" style="WORD-BREAK: break-all" colspan="2">
								</td>
						</tr>
						<tr align="middle">
								<td class="Article_tdbgall" colspan="2">
								</td>
						</tr>
						<tr>
								<td class="main_tdbg_760" id="fontzoom" style="WORD-BREAK: break-all" valign="top" colspan="2" height="300">
										<p>　一名真正合格的网管所做的工作不应该仅仅局限在网络故障发生后，亡羊补牢的工作虽然不算迟，但损失的产生是不可避免的。那么，如何有效地监视网络状态，能在第一时间发现网络故障，在网络还没出现问题时进行预防，并合理地划分带宽资源呢?对网络流量进行监控就可以有效地解决以上难题。现在笔者要为大家介绍的就是网络流量监控领域的行家——MRTG。</p>
										<p>　　本文中，笔者向大家介绍如何通过MRTG对路由器或三层交换机进行监控。MRTG会利用SNMP协议(简单网络管理协议)监控、管理通过路由、交换设备的各个端口的流量。当然，笔者还会指导大家安装MRTG并在设备上启用SNMP协议以支持MRTG。</p>
										<p>　　小知识 流量监控</p>
										<p>　　大家都知道数据包形成数据流，就好比水流一样，所以我们对带宽采用流量这个名词来定义，及时了解网络流量对于排除网络故障能够起到很大的作用。很多公司都拥有路由、交换设备，这些设备担负着实现公司网络连接的重任，所以，了解通过路由、交换设备的各个端口的流量是非常重要的，只有对流量进行监控才能有效地管理网络带宽，提高企业网络的工作效率。</p>
										<p>　　MRTG小档案</p>
										<p>　　软件大小:1558 KB</p>
										<p>　　软件类型:免费软件</p>
										<p>　　运行平台:Window 98/NT/2000/XP/2003</p>
										<p>　　下载地址:http://www2.pcdog.com/down4/mrtg-2.10.0pre7.zip</p>
										<p>　　安装MRTG</p>
										<p>　　不管我们要对何种设备进行监控，都需要找到一台操作系统为Windows 2000的计算机(计算机A)，并为它安装MRTG，用来接收数据流量。在Windows系统上安装MRTG需要Perl的支持，所以我们需要先安装Perl插件。此外，由于数据流量将以网页的形式体现出来，所以需要在计算机A上安装IIS服务(由于篇幅限制，IIS的安装就不作介绍了)。</p>
										<p>　　Step1:Perl的安装比较简单，目前使用的一般是Active Perl for Windows，我们可以到<a href="http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.0.80">http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.0.80</a> 5-MSWin32-x86.msi下载。</p>
										<p>　　Step2:进行安装时，如果遇到“是否使用PPM3发送个人信息至ASPN”，我们可以跳过。在安装完毕后重新启动计算机即可让Perl生效。</p>
										<p>　　Step3:安装MRTG程序。由于MRTG是一个用Perl编写的程序，所以不需要安装，下载后直接解压即可。我们将它解压到“C:\mrtg”目录。现在我们就完成了安装工作。</p>
										<p>　　小知识Perl</p>
										<p>　　和很多用JAVA编写的程序在使用时需要安装JDK一样，MRTG需要Perl程序的支持，所以在使用MRTG之前一定要在计算机A上安装Perl。Perl和JAVA一样也是一种语言，不过Perl主要在Linux和UNIX系统下使用，由于本例是在Windows下安装MRTG，而默认情况下Perl组件没有安装在Windows操作系统中，所以我们需要为计算机A安装相应的Perl语言库，就如同我们运行VB程序有时需要安装VB语言库一样。</p>
										<p>　　监控Cisco设备</p>
										<p>　　虽然我们在计算机A上安装了MRTG，但被监控的设备没有启用SNMP协议而且没有配置接受SNMP的目的地址，因此我们还需要在被监控设备上进行相应的配置。现在，让我们来看看如何使用计算机A监视通过Cisco 6509交换机各个端口的流量，以便数据发生异常时即时采取防护措施。</p>
										<p>　　Cisco的高端产品6509交换机作为被监视设备，端口IP地址为10.91.30.1。选择安装了MRTG的计算机(计算机A)作为监视设备，IP地址为10.91.30.45。</p>
										<p>　　小知识SNMP</p>
										<p>　　SNMP也叫简单网络管理协议，它用于记录网络流量信息，不管是网管软件还是流量监控软件都需要SNMP协议的支持。由于本例需要监控通过路由、交换设备各个端口的流量，所以需要在路由、交换设备上启用SNMP协议，并指定接收SNMP记录信息的目的地址。通过这些设置，路由、交换设备就可以对通过端口的数据信息进行记录并发送到指定的目的地。</p>
										<p>　　1.Cisco 6509上的配置</p>
										<p>　　下面我们需要进入6509将SNMP协议启动并指定数据接收目的地。</p>
										<p>　　Step1:进入计算机A的命令提示符窗口，输入“telnet 10.91.30.1”登录6509设备。</p>
										<p>　　Step2:输入正确的密码后，进入6509配置模式，接着输入以下指令。</p>
										<p>　　snmp-server community softer RO</p>
										<p>　　\\设置SNMP的团体名为softer。</p>
										<p>　　snmp-server trap-source FastEthernet0/1</p>
										<p>　　\\以Fa0/1端口为监控源，如果不输入此行，将以设备自身的ROUTER ID作为监控源。</p>
										<p>　　snmp-server contact <a href="mailto:softer@163.com">softer@163.com</a></p>
										<p>　　\\设置管理者的邮箱地址。</p>
										<p>　　snmp-server host 10.91.30.45 softer</p>
										<p>　　\\设置管理机的IP地址为10.91.30.45(计算机A的IP地址)，并设置团体名(softer)。</p>
										<p>　　snmp-server enable traps</p>
										<p>　　\\启动监控。</p>
										<p>　　Step3:保存设置并退出后即可完成在6509设备上的所有配置。</p>
										<p>　　2.计算机A上的配置</p>
										<p>　　现在我们就需要在计算机A上设置MRTG让它接收6509交换机的SNMP信息，并将这些信息制作成网页的形式进行发布。在计算机A上配置好IIS的发布目录并正确安装Perl和MRTG程序后，重新启动计算机并进行如下操作。</p>
										<p>　　Step1:打开计算机A的命令提示符窗口，然后进入C:\mrtg\bin目录。</p>
										<p>　　Step2:输入“perl cfgmaker <a href="mailto:softer@10.91.30.1">softer@10.91.30.1</a> --global "WorkDir: c:\www\ mrtg" --output mrtg.cfg”。其中，“softer”是团体名，“10.91.30.1”是6509设备上的端口IP地址。</p>
										<p>　　Step3:输入“perl indexmaker mrtg.cfg&gt;c:\wwwroot\mrtg\index.htm”后即可生成index.htm文件。</p>
										<p>　　Step4:输入“perl mrtg -logging=mrtg.log mrtg.cfg”启动MRTG进行监控。从“mrtg.cfg”中读取配置并启动MRTG程序，同时记录日志信息到“mrtg.log”中。</p>
										<p>　　完成以上设置工作后，我们就可以通过浏览器访问“10.91.30.45”，查看通过6509的各个端口的流量。如果你希望每5分钟刷新一次流量统计，则可以用记事本编辑“mrtg.cfg”，在最后加上“runasdaemon:yes”和“interval:5”(interval后的5表示每5分钟刷新一次，可根据实际情况进行修改)。</p>
										<p>　　提示:在访问10.91.30.45查看流量时，一定要注意输入的地址应和IIS中配置的地址一致，同时还要注意虚拟目录的问题，只有输入正确的地址才能正常显示流量图。</p>
										<p>
												<font color="#a00000">监控华为设备</font>
										</p>
										<p>　　对于华为设备的监控基本上和对Cisco设备进行监控一样，只是在路由器配置命令上有些区别，而计算机A的配置步骤是一样的。在此，笔者只给出在华为2621上启用SNMP协议并指定数据接收目的地的指令。</p>
										<p>　　snmp-agent community read softer</p>
										<p>　　\\设置团体名为softer，属性为只读。</p>
										<p>　　snmp-agent sys-info contact softer@163.com</p>
										<p>　　\\设置管理者的邮箱地址。</p>
										<p>　　snmp-agent target-host trap address 10.91.30.45 securityname softer</p>
										<p>　　\\设置管理机的IP地址为10.91.30. 45，而且“securityname”(即团体名)要与上面的设置一致。</p>
										<p>　　snmp trap enable</p>
										<p>　　\\启动监控。</p>
										<p>　　<font color="#a00000">监控效果</font></p>
										<p>　　如图所示，大家可以从图中看到我们对核心设备6509实施的“24×7”小时的流量监控，该软件对所有已经使用的端口(即连有客户机的端口)都进行了实时监控，并绘制出了准确的图表，非常直观。如果想看到更多的分时、分段的图表，还可以直接点击流量图进一步查看。另外，我们还可利用网页制作工具对生成的网页进行修饰、编辑，制作出美观大方的专业的流量监视控制台。</p>
										<p align="center">
												<img src="http://www.netsp.com.cn/Article/UploadFiles/200508/20050801222713960.jpg" border="0" />
										</p>
										<p>　　通过在路由器或交换机上配置MRTG我们可以直观地了解网络中各个部分的带宽使用情况，第一时间发现异常情况，有效防范黑客和病毒的攻击。同时，还可以根据各个端口使用带宽的情况对网络带宽进行合理划分。</p>
										<p>
												<font face="Verdana">　　下一篇文章中我们将为大家进一步介绍如何提高MRTG的安全性以及制作适合自己。</font>
										</p>
								</td>
						</tr>
				</tbody>
		</table>上篇文章我们介绍了如何通过MRTG对路由、交换设备的各个端口的流量进行监控并以网页的形式显示出来。本文中，大家将学到如何构建一个中文流量监控网页同时监控多个设备，如将三个路由设备的端口流量用一个页面显示出来，并提供相应的文字说明。同时，我们还会指导大家配置一个安全、可靠的MRTG流量监控系统。
<p>　　强大的监控中心</p><p>　　indexmaker是MRTG自带的网页制作工具，利用它可以把MRTG生成的CFG文件制作成网页格式的文件，使我们能使用浏览器查看流量信息，而且我们还可用它实现同时监视多台设备。同时，我们还可对index.htm进行编辑，让MRTG生成的网页将设备名等注释信息显示为中文。</p><p>　　1.成立监控中心</p><p>　　通过“perl indexmaker mrtg.cfg&gt;c:\wwwroot\mrtg\index.htm”只能将一个CFG文件的配置信息写入index.htm文件，而且在实际情况中一个设备只能生成一个CFG文件，默认状态下一个监控页面只能对应一个CFG文件。因此，我们可以成立一个监控中心进行统一“监控”。</p><p>　　例如，我们要把1.cfg、2.cfg、3.cfg这三个CFG文件的配置信息都写入同一个index.htm网页文件，通过打开index.htm实现同时监视3个设备的流量，可按以下方法进行修改、设置。</p><p>　　提示:CFG文件就是保存设备各个端口信息的文件。MRTG就是通过读取这个文件将流量监控得到的数据制作成网页的，如果没有这个CFG文件我们就不会知道显示的流量图表对应的是哪个端口。</p><p>　　Step1:登录监控机，进入命令行模式。</p><p>　　Step2:进入MRTG安装目录下的bin目录。</p><p>　　Step3:输入以下指令:</p><p>　　perl indexmaker 1.cfg&gt;c:\wwwroot\mrtg\index.htm</p><p>　　perl indexmaker 2.cfg&gt;&gt;c:\wwwroot\mrtg\index.htm</p><p>　　perl indexmaker 3.cfg&gt;&gt;c:\wwwroot\mrtg\index.htm</p><p>　　现在，我们就可利用index.htm文件同时监控通过三台设备的流量了，一个真正的监控中心打造成功。</p><p><em>.加强中文支持</em></p><p>　　如果对生成的网页不进行修改则将显示英文注释，而且注释信息为端口号，非常不直观。我们可以把它们修改为自己熟悉的中文名，方便浏览。</p><p>　　没有经过修改的流量监控图显示的都是英文注释信息。如果我们希望在页面中显示中文注释信息，就需要对index.htm网页进行编辑。</p><p>　　例如，68端口对应的中文名是“外网出口”，可用记事本打开index.htm，通过查找Traffic Analysis for 68将它替换为中文名“外网出口”即可。完成所有中文注释的编写工作并进行保存后即可浏览index.htm，这时你会发现所有的注释信息都变为中文的了(图1)。</p><p align="center"><img src="http://www.netsp.com.cn/Article/UploadFiles/200508/20050801222524626.jpg" border="0" /><br />图1</p><p>　　上面所介绍的只是一个最简单的中文注释信息的编辑工作，如果你使用Dreamweaver进行修改的话还可以制作出更加华丽的监控中心。</p><p><strong>自动开启MRTG</strong></p><p>　　每次启动MRTG都要进入命令行模式输入“perl mrtg -logging=public.log public.cfg”指令，用于启动MRTG读取public.cfg文件中的端口信息然后对设备进行监视。这种方法对于需要24小时监控的设备不太实用。一旦系统因故障重新启动，极有可能造成MRTG不能运行，使监控出现中断。</p><p>　　<em>方法1:自动登录系统启动MRTG程序</em></p><p>　　该方法就是在Windows 2000中设置自动登录系统，然后将“mrtg.bat”添加到启动组中。</p><p>　　mrtg.bat的内容如下(假设MRTG安装在C:\mrtg目录下，配置文件为public.cfg):</p><p>　　c:</p><p>　　cd mrtg</p><p>　　cd bin</p><p>　　perl mrtg -logging=public.log public.cfg</p><p>　　<em>方法2:开机脚本法</em></p><p>　　将mrtg.bat文件添加到系统开机脚本中即可使它随系统启动而运行，从而自动启动MRTG程序。</p><p>　　进入组策略窗口，在“启动属性”对话框中添加mrtg.bat即可。</p><p>　　提示:该方法有一个问题，那就是由于mrtg.bat文件需要实时监控，这样会造成监控机登录时停留在“运行开机脚本”上，而不能正常登录系统。不过我们仍然可以通过其他计算机使用浏览器访问监控机生成的网页，并随时对流量进行查看。要取消开机脚本，可进入安全模式将mrtg.bat从开机脚本中删除。</p><p>　　<em>方法3:系统服务法</em></p><p>　　把应用程序添加为服务需要Instsrv.exe和Srvany.exe。Instsrv.exe可以给系统安装和删除服务，Srvany.exe可以让程序以服务的方式运行(这两个软件都包含在Windows 2000 Resource Kit里)。假设Perl安装在C:\perl目录，MRTG安装在C:\mrtg目录。</p><p>　　Step1:将Instsrv.exe和Srvany.exe复制到mrtg安装目录的bin目录下(如C:\mrtg\bin)。</p><p>　　Step2:进入命令行模式，在mrtg\bin目录下执行“instsrv mrtg “c:\mrtg\bin\srvany.exe””命令使MRTG成为系统服务。</p><p>　　Step3:配置Srvany，在注册表hkey_lo cal_machine\system\currentcontrolset\servic es\mrtg中添加一个parameters项，并在parameters子键中添加以下项目:</p><p>　　application 内容为C:\perl\bin\perl.exe</p><p>　　appdirectory 内容为C:\mrtg\bin\</p><p>　　appparameters 内容为mrtg -logging=public.log public.cfg</p><p>Step4:进入“服务”窗口，找到mrtg服务，将它设置为自动启动后(图2)，MRTG即可全天候监视网络流量，即使系统重新启动后程序也将以服务的形式进行加载。</p><p align="center"><img src="http://www.netsp.com.cn/Article/UploadFiles/200508/20050801222526789.jpg" border="0" /><br />图2</p><p>　　<strong>MRTG的安全</strong></p><p>　　最后我们再来谈谈使用MRTG监控流量的安全性问题。</p><p>　　由于MRTG使用了SNMP协议，而SNMP协议发展至今还不是很完善，在一些方面还存在着或多或少的安全问题，所以保证安全和流量监控是“熊掌与鱼”的关系，究竟如何取舍还请各位读者自己决定。</p><p>　　不过，既然我们选择了使用MRTG，也应该在安全上采取一些措施。采用系统默认的认证方式会增加很多危险，所以我们应该修改默认设置，将认证名PUBLIC修改为其他名称，这样才能最大限度地防止黑客的攻击。当然，最好的方法还是使用认证，建议大家在路由器、交换机上使用SNMP V3版本，因为该版本更加安全。</p><p>　　经过这两篇文章的说明，相信大家对MRTG已经非常了解了。合理使用MRTG对流量进行监控会给你的工作带来很大帮助。对于一些中小型企业来说，如果没有专门的经费购买流量监视设备和监控系统，完全可以采用这个免费的MRTG进行流量监视。不用烦琐的配置，你也能完成一些依靠专业设备才能完成的工作。</p><img src ="http://www.cnitblog.com/lym520/aggbug/8830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lym520/" target="_blank">海之蓝</a> 2006-04-06 17:36 <a href="http://www.cnitblog.com/lym520/articles/8830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>