最近,我们需要对某台主机的网络流量进行长期的观察,所以需要使用一个趁手的工具来完成这个任务。理想的工具应该满足三条要求。第一,可以指定IP,端口进行监控;第二,可以将监控数据保存下来;第三,可以将存下来可视化。
网络流量监控工具
1. ifstat
如果仅仅相对某一网卡的流量进行监控,ifstat是一个很不错的工具。可是我们想针对某一端口,某一IP进行
监控,这个工具就无法满足要求了。
2. iftop
iftop简介:可以指定端口,IP进行网络流量的监控,但是无法将数据保存下载,更不能将保存的数据可视化。
iftop教程:http://www.vpser.net/manage/iftop.html。
几个命令:
-n , 使host信息显示为IP值。
-N ,使端口信息显示为端口号。
-P ,使host以及端口号均处于显示状态。
-F , 指定某一网段//这个命令还不是很会用。
使用命令 iftop -n -N -P, IP,端口以及相应的流量就会显示出来
将iftop的输入定向到一个文件中,然后用python脚本对文件进行分析,可能会得到我们想要的结果。
iftop的输出解析起来可能比较费劲,,实现上述功能需要花费一些时间。
3. iptraf
iptraf简介:可以指定端口,IP进行网络流量的监控,同时会生成日志,但不能将保存的数据可视化。
iptraf教程:http://blog.chinaunix.net/space.php?uid=272339&do=blog&id=28464
http://iptraf.seul.org/2.6/manual.html#filters
通过python脚本对日志进行分析,可能可以完成所需功能。
4. rrdtool + cacti
简介:上述组合可以实现对于网络流量的全面监控,有日志,也有可视化界面。
配置方法:http://linux.chinaunix.net/techdoc/net/2007/07/14/962663.shtml。
这个暂时不怎么会用。
图表绘制工具
从日志中提取出有效数据,我们需要将其可视化,以便直观地了解网络情况。
1. matplotlib
通过matplotlib库,可以方便地绘制图表。
2. rrdtool是一款强大的绘图引擎。不过使用起来貌似比较复杂。