Linux:如何测量每日/每月的networkingstream量?

我需要保留一台Linux机器(CentOS 5)的日常networkingstream量的统计数据。

有没有办法使用标准/本地工具或实用程序?
还是我不得不下载专门的软件?

谢谢。

Zypher关于rrdtool(以及其他任何使用它作为后端 – MRTG,Cacti等)的说法可能是正确的。 RRDTool被devise成一个“平均”的历史趋势分析工具。 它以越来越不合理的增量平均和存储计数器,随着时间的推移而递增。

然而,这可以通过合理设置RRA来​​configuration。 然而,我承认对configuration这些东西一无所知,而且从来没有个人运气超出我的标准设置(15分钟,8小时,1周,1个月,1年)。 我build议考虑configurationRRA来​​期望每天的input,并从netstat提供你的带宽计数器。 你会得到一些非常好的历史数据和洞察你的使用模式。

要回答您当前的问题,确保您不超过每日带宽限制; 我build议每天抓取有问题的接口的netstat计数器。 您可以将时间t的昨天的stream量与时间t的当天柜台进行比较,并查明转移的数量。 一个简单的脚本具有以前值的平面文本文件存储可能就足够了。 如果您检测到超出的带宽,则可以禁用该接口,或者在一天中进行监视,并在接近您的限制时通知pipe理员。

要在OSX系统上获得input字节,可以使用以下一组命令:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}' 

相反,输出可以通过以下方式获得:

 netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}' 

您可以将相关计数器popup到存储在某个位置的平面文件中,并将其与以下内容进

 #!/bin/bash set -e # exit if any error occurs previous_days_bytes_xferred=`cat $flatfile_storage` todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'` if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then DO SOME STUFF fi echo $todays_bytes_xferred > $flatfile_storage 

只需调整netstat处理来匹配你的系统(因为我知道你没有运行OSX)。

我也build议使用VnStat

 vnStat 1.6 by Teemu Toivola <tst at iki dot fi> -q, --query query database -h, --hours show hours -d, --days show days -m, --months show months -w, --weeks show weeks -t, --top10 show top10 -s, --short use short output -u, --update update database -i, --iface select interface (default: eth0) -?, --help short help -v, --version show version -tr, --traffic calculate traffic -l, --live show transfer rate in real time eth0 / monthly month rx | tx | total -------------------------+--------------+-------------------------------------- Oct '09 225.70 GB | 798.52 GB | 1.00 TB %%%%::::::::::::: Nov '09 138.46 GB | 616.54 GB | 755.01 GB %%:::::::::: eth0 / daily day rx | tx | total ------------------------+-------------+---------------------------------------- 31.12. 6.56 GB | 34.39 GB | 40.95 GB %%%:::::::::::::::: 01.01. 1.13 GB | 746.92 MB | 1.86 GB 

sysstat软件包包含sar实用程序。 Sar是一个极其可configuration的系统“探查器”,缺less一个更好的术语,它以预定的时间间隔(cron)收集各种统计数据。 这些存储在二进制文件,每天一个,通常每周旋转,但这是可configuration的。 sar程序可以用来从这些文件中提取统计信息,这些结果可以很容易地用任何办公软件或gnuplot(我的个人喜好)来绘制。

http://pagesperso-orange.fr/sebastien.godard/ <= Sar信息
http://www.gnuplot.info/ <= gnuplot信息

Vnstat是一个伟大的控制台的每日/每周/每月的stream量监视器。 它甚至允许您实时监控stream量,这非常方便。

它也使用很less的系统资源;)

你需要MRTG这是一个networking监控工具,它产生你在networking上看到的所有networking图(用rdtool把数字转成图片)

如果你不想设置它,或者只是需要更简单一些,你可以使用iptables来logging数据传输。

我用mrtg,这是一个非常好的解决scheme,还有其他的工具,似乎很有趣,并提供了很多有关networking探测stream量的信息, 这里find一个关于在CentOS上安装ntop的链接

无论是MRTG还是仙人掌。 仙人掌是一个痛苦的build立,但给一些非常漂亮的图表。 MRTG很容易设定一个基本的情节,但对于任何漂亮或复杂的事情来说,这都很难。

Munin是另一个很好的基于RRD的工具,非常容易设置; 默认的networking统计是相当基本的,但很容易添加额外的插件。 我在我的一台服务器上附加了每日和每周统计数据的副本; 您还可以在不同的页面上获得每月和每年的统计数据。

穆宁networking图