我们设置了MRTG来监控网络。因此我们使用RRD工具来获取绘制图形数据。现在我创建了一个实际从RRD文件中获取数据的脚本,因此从获取的数据中我需要最大输入和最大输出24小时。现在使用这些最大值,我计算每个客户/链接的错误利用率。
现在我的问题是,单个rrd命令从RRD文件中获取max in,max out,min in和min out值。
由于我是这个RRD的新手,所以如果命令也随你的解决方案提供,我将不胜感激。
请帮忙。
答案 0 :(得分:0)
使用MRTG创建的RRD文件,' in'和' out'数据源命名为' ds0'和' ds1'分别。存在8个RRA;这些对应于AVG和MAX汇总的5min,30min,2hr和1day的粒度。默认情况下,这些长度为400(旧版MRTG)或长度800(较新版本的MRTG),这意味着您可能分别拥有2天,2周,2个月和2年的时间窗口的RRA。 (注意,RRDTool 1.5可能省略1pdp MAX RRA,因为它在功能上与1pdp AVG RRA相同)
这对您意味着什么:
如果您只对最近的24小时期间的计算感兴趣,那么所有计算都可以使用最高粒度的RRA。
请注意,因为步骤边界都是使用UCT计算的,除非您居住在该时区,否则您无法使用FETCH或XPORT获取所需的数据,因为您需要在一般时间窗口内进行汇总。
要检索数据,您可以使用以下内容:
rrdtool graph /dev/null -e 00:00 -s "end-1day" --step 300
DEF:inrmax=target.rrd:ds0:AVERAGE:step=300:reduce=MAXIMUM
DEF:outrmax=target.rrd:ds1:AVERAGE:step=300:reduce=MAXIMUM
DEF:inrmin=target.rrd:ds0:AVERAGE:step=300:reduce=MINIMUM
DEF:outrmin=target.rrd:ds1:AVERAGE:step=300:reduce=MINIMUM
VDEF:inmax=inrmax,MAXIMUM
VDEF:inmin=inrmin,MINIMUM
VDEF:outmax=outrmax,MAXIMUM
VDEF:outmin=outrmin,MINIMUM
LINE:inrmax
PRINT:inmax:"In Max=%lf"
PRINT:inmin:"In Min=%lf"
PRINT:outmax:"Out Max=%lf"
PRINT:outmin:"Out Min=%lf"
关于此的几点说明:
当你从php脚本中调用rrdtool :: graph时,只需按照与命令行操作相同的方式传递参数。如果您不使用Linux,则可能需要使用/ dev / null以外的其他内容。