解决方法
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).