我需要保留Linux机器(CentOS 5)的每日网络流量的统计信息。
有没有办法使用标准/本地工具或实用程序来做到这一点?
还是我必须为此下载专用软件?
谢谢。
我需要保留Linux机器(CentOS 5)的每日网络流量的统计信息。
有没有办法使用标准/本地工具或实用程序来做到这一点?
还是我必须为此下载专用软件?
谢谢。
Answers:
Zypher关于rrdtool(以及将其用作后端的任何其他内容-MRTG,Cacti等)的说法可能是正确的。RRDTool被设计为“平均”历史趋势分析工具。它以越来越不固定的增量对计数器进行平均和存储,并随着时间的推移而进一步增加。
但是,可以通过适当地设置RRA进行配置。我承认对配置这些工具一无所知,而且我个人从来没有碰到过超出我的标准设置(15分钟,8小时,1周,1个月,1年)的运气。我建议您考虑配置RRA,以期望每日输入并将其从netstat提供给带宽计数器。您将获得一些非常好的历史数据并深入了解您的使用模式。
为了解决当前的问题,请确保您没有超出每日带宽限制;我建议每天获取有关接口的netstat计数器。您可以将时间t的昨天的流量与时间t的今天的计数器进行比较,以了解转移了多少。一个简单的脚本,其带有以前值的平面文本文件存储,就足够了。然后,如果您检测到超出带宽或全天对其进行监视,则可以禁用该接口,或者在接近极限时通知管理员。
要获取OSX系统上的输入字节,可以使用以下命令集:
netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'
相反,可以通过以下方式获得输出:
netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'
您可以将相关计数器弹出到存储在某个位置的平面文件中,并与以下内容进行比较:
#!/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)。
我也建议使用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是一个可高度配置的系统“探查器”,它以预定义的时间间隔(cron)收集各种统计信息。这些文件存储在二进制文件中,每天一次,通常每周一次,但是可以配置。sar程序可用于从这些文件中提取统计信息,并且可以使用任何office程序或gnuplot(我个人的喜好)轻松绘制出这些结果的图形。
http://pagesperso-orange.fr/sebastien.godard/ <= Sar信息
http://www.gnuplot.info/ <= gnuplot信息