这几款软件的介绍我就不用多说了,主要说说它们的优劣
一.MRTG:
这个大家应该是最熟悉不过了,其实除了可以查看网络流量以外,实际上可以查看支持SNMP协议的设备的各个OID的数值,并且以图表形式显示出来.此外还可以将脚本的输出图形化显示出来.
大家需要注意的是,要确切明白MRTG图表的含义:在默认没打开显示Max,Min时,显示的数据都为平均值,并且随着时间的推移,显示的数据也有所不同.这是因为为了避免MRTG日志的无限膨胀,MRTG对日志要进行一定的压缩.具体细节我会专门写一个文档供大家参考.比如:当我们看MRTG每5分钟图的时候,图表显示某一时刻的网络流量是5Mbit/s,但实际很可能在这期间有某一时刻,流量远远大于5Mbit/s.
使用过程中,我觉得MRTG有两个缺陷:1.不能显示多于两个的数据项.2.如果用做实时监控的话,显得不够灵活,比如:我们需要每30秒钟图的情况下MRTG就显得力不从心了,MRTG只能显示每5分钟取样图表.
二.NetFlow技术(FLOW-TOOL和台湾某大学改写的flow-tool以及配套的前端分析Perl程序)
这类软件是利用了Cisco的NetFlow技术.实际流量信息收集是由NetFLow技术完成,FLow-Tool只是在侦听来自NetFlow的消息然后记录下来,存储在硬盘当中,相当于NetFLOW的客户端.要使用这个技术,必须满足两个条件中的一个:1. 路由器支持NetFlow 2.虽然不支持NetFlow,但交换机支持端口镜象,利用镜象,然后利用一个叫NetFlow的软件,将数据整理,导入到NetFlow的客户端.
NetFlow的客户端软件:比较有名的是Flow-tool和台湾某大学改写的flow-tool以及配套的前段分析perl程序.
先来说说FLOW-TOOL,是字符界面下的一个分析NetFlow数据格式的工具,功能还是比较多,如果要实现可视化的Web前端显示,需要自己写shell或者perl程序.
再来看看台湾某大学改写的flow-tool以及配套的前端Web分析程序.大家可以看看一个分析结果web(http://netflow.tcc.edu.tw/).我看了一下主要的Perl脚本,该Perl脚本出现一个问题就是:未验证N/0的情况,导致程序有的时候出错.还有一个问题就是修改过的flow-tool它将收到的Netflow数据保存成一种无法被前面提到的FLOW-tool分析,这一点比较可惜.
三.NTOP:
数据流量的获取可以用两种办法:1.网卡混杂模式 2.NetFlow客户端
优点:统计的数据相当丰富,信息显示也比较直观,配置简单
缺点:在混杂模式下,特别消耗CPU资源和内存使用比较大.显示的数据不知道储存在哪里.(如果有哪位知道的话,告我一下)
个人建议:适合短时间使用.
四.用RRTOOL+SNMP编程实现
先解释一下:RRDTOOL只负责数据的存储和图形化显示,不负责收集数据.在MRTG中设置了RRDTOOL后,仅仅改变的是MRTG将数据储存为rrdtool格式的文件.rrd
数据的获取是用SNMP或者自己编写的程序脚本.
这种办法,有个最大的好处就是特别灵活,一个图表里能显示好多条数据项,比如:利用RRDTOOL可以把一个Cisco3550 的48个端口的发包率都显示在一张图表中.并且可以精确的显示任意间隔的数值(这个与你的设置有关).