中高级技巧二 善用FC命令比较得出的结果
特别是在研究cfgmaker命令应用的初期,好不容易利用替换不同的参数得到了配置文件,怎么样才能快速比较出各个配置文件之间内容的差异呢(也就是不同参数所实现的效果),用FC命令可以快速的得到结果。
下面我列出了比较两个文件所得到的结果的一小部分:
正在比较文件 192.168.3.1.nr.cfg 和 192.168.3.1.ETH.CFG
***** 192.168.3.1.nr.cfg
# Created by
# ./cfgmaker --global WorkDir:/usr/local/apache2/htdocs/mrtg/ --ifref=nr --output /usr/local/mrtg-2/bin/cfg/192.168.3.1.nr.cfg ublic@192.168.3.1
***** 192.168.3.1.ETH.CFG
# Created by
# ./cfgmaker --global WorkDir:/usr/local/apache2/htdocs/mrtg/eth --ifref=eth --output /usr/local/mrtg-2/bin/cfg/192.168.3.1.eth.cf public@192.168.3.1
***** 192.168.3.1.nr.cfg
EnableIPv6: no
WorkDir:/usr/local/apache2/htdocs/mrtg/
***** 192.168.3.1.ETH.CFG
EnableIPv6: no
WorkDir:/usr/local/apache2/htdocs/mrtg/eth
***** 192.168.3.1.nr.cfg
Target[192.168.3.1_1]: 1:public@192.168.3.1:
SetEnv[192.168.3.1_1]: MRTG_INT_IP="" MRTG_INT_DESCR="FastEthernet0/1"
MaxBytes[192.168.3.1_1]: 12500000
Title[192.168.3.1_1]: Traffic Analysis for 1 -- 3550
PageTop[192.168.3.1_1]: <h1>Traffic Analysis for 1 -- 3550</h1>
<div id="sysdetails">
***** 192.168.3.1.ETH.CFG
Target[192.168.3.1_00-0d-bc-04-1b-01]: !00-0d-bc-04-1b-01:public@192.168.3.1:
SetEnv[192.168.3.1_00-0d-bc-04-1b-01]: MRTG_INT_IP="" MRTG_INT_DESCR="FastEthernet0/1"
MaxBytes[192.168.3.1_00-0d-bc-04-1b-01]: 12500000
Title[192.168.3.1_00-0d-bc-04-1b-01]: Traffic Analysis for 00-0d-bc-04-1b-01 -- 3550
PageTop[192.168.3.1_00-0d-bc-04-1b-01]: <h1>Traffic Analysis for 00-0d-bc-04-1b-01 -- 3550</h1>
<div id="sysdetails">
从中可以明显的看出指定生成网页文件路径不同,生成的配置文件存放的路径不同,接下来就是重点了,第一个文件是用端口口号来标识的,
Target[192.168.3.1_1]: 1:public@192.168.3.1:
第二个文件是用以太地址来标识的(即00-0d-bc-04-1b-01这一串字符)。
Target[192.168.3.1_00-0d-bc-04-1b-01]: !00-0d-bc-04-1b-01:public@192.168.3.1:
利用FC命令,我们可以在生成配置网页文件以前就立即知道各个参数所产生的不同效果是什么,实际上,综合利用好这两个小技巧,可以让我们在学习cfgmaker的各项参数时达到事半功倍的效果,快速的掌握选项中每个参数的用法,从一个胜利走向另一个胜利。
2、--ifdesc参数系列
这组参数主要解决什么问题呢,以我们单位实际的网络情况来说吧,利用MRTG来监控一台CISCO3550三层交换机的各个端口的流量,在用indexmaker命令得到全部端口组成的网页时,会发现前面关于1-24端口的描述还是可以看懂的,但是后面出现的端口就看不懂了,只是一个24口的交换机,怎么出现了七、八十个监控的端口,只是当点击某个端口的图标进去看到详细信息以后再发现这其实是某个VLAN,怎么能让indexmaker生成的网页文件直接显示相应的VLAN号呢?其实利用-ifdesc的相关参数就可以做到,只需使用一个"descr"参数就可以了,命令这样写:
cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/3/" --output /usr/local/mrtg-2/bin/cfg/3switch.cfg --ifref=nr --ifdesc=descr public@192.168.3.1
现在再看生成的网页文件,就是显示的相应的VLAN号了,如图1所示。
图1
这样看起来就直观多了。
3、MRTG还支持中文
太神奇了吧,这简直是MRTG赐予我们的礼物,本来要说起来在单位中会使用MRTG来监控流量的人多少都懂点英语,但是如果我们某天要给领导演示一下MRTG的效果的话,网页中显示的内容是中文的话,效果还是要好很多的,怎么做呢?利用--global "language: chinese" 这个参数就可以了,命令这样写:
cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/3/" --global "language:chinese" --output /usr/local/mrtg-2/bin/cfg/3switch.cfg --ifref=nr --ifdesc=descr public@192.168.3.1
写完以后,生成的网页就会用中文显示相关的信息了,如图2所示
图2
4、在一条cfgmaker命令中同时监控多台网络设备的流量
以前我们是通过写多个配置文件,开启多个mrtg进程来实现的对于多台网络设备的流量临控,但是通过学习cfgmaker命令发现如果需要同时监控几台网络设备时,只需在cfgmaker命令的后面写几个相应的"[community@]router"参数即可,比如我们这次要同时监控三台交换机,IP地址分别为192.168.3.1、192.168.3.253、172.19.97.2,命令可以这样写:
cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/3/" --global "language:chinese" --output /usr/local/mrtg-2/bin/cfg/3switch.cfg --ifref=nr --ifdesc=descr --show-op-down public@192.168.3.1 public@192.168.3.253 public@172.19.96.2
就是这么简单,在生成的配置文件中我们就可以看到里面包含了这三台交换机所有的端口信息,附带提一下,这条命令中出现了一个"--show-op-down",它的意思是不论端日是处于"up"还是"down"的状态,都对其进行流量监控。
5、为每一个网络设备都定义相应的目录
当我们实现了同时监控多台网络设备后,却发现又出现了一个问题,那就是所有网络设备被采集到的信息都存一个目录里,太杂乱了,能不能该不同的网络设备的信息分别分别与之对应的目录里呢,可以的,利用-subdis参数就可以实现,命令如下:
cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/s3sub/" --global "language:chinese" --output /usr/local/mrtg-2/bin/cfg/3switchsub.cfg --ifref=nr --ifdesc=descr --show-op-down --subdirs=HOSTNAME public@192.168.3.1 public@192.168.3.253 public@172.19.96.2
利用这条命令先得到配置文件,再利用mrtg进程生成相应的网页文件,就会发现mrtg自动在相应的目录下新建三个子目录:"192.168.3.1"、"192.168.3.253"、"172.19.96.2",里面分别存放着各自对应的网页文件。
6、其它有待进一步学习的参数
很早以前就了解到MRTG还可以监控到网络设备的诸如CPU的占用率等指标,但是实际使用起来感觉用处不大,而且有一些成熟的网管软件可以实现类似的功能,所以我就没有再继续学习。