应用RRDtool的实例

实际运用的例子开始有趣的东东吧。首先,创建一个新的数据库。它包含输入和输出2个计数器的数据。该数据被放入能够进行平均的归档中。他们一次使用1、6、24、或 288个样本。他们同时被存入保存最大数字的归档中。稍后会解释。样本间隔时间为300秒,也就是5分钟,这是一个好的开始。:

1个样本 “平均” 保留5分钟的周期  6个样本 每30分钟进行一次平均  24个样本 每2小时进行一次平均  288个样本 每1天进行一次平均 我们试着与MRTG互相兼容,MRTG存储以下数据::

600 5分钟样本数: 2天和2小时  600 30分钟样本数: 12.5天  600 2小时样本数: 50天  732 1天样本数: 732天 这些范围被补充进去,因此在数据库中保存的数据总数大约797天。RRDtool存储不同的数据,它不会在 每日 归档停止的地方开始 每周 归档。对于这两个归档,最新的数据会是在 now 附近,因此我们需要比MRTG保存更多的数据!我们需要::

600个5分钟的样本 2天和2小时)  700个30分钟的样本 2天和2小时,加12.5天)  775个2小时的样本 上述+50天)  797个1天的样本 (上述+732天,环型回绕最大797) rrdtool create myrouter.rrd \  DS:input:COUNTER:600:U:U \  DS:output:COUNTER:600:U:U \  RRA:AVERAGE:0.5:1:600 \  RRA:AVERAGE:0.5:6:700 \  RRA:AVERAGE:0.5:24:775 \  RRA:AVERAGE:0.5:288:797 \  RRA:MAX:0.5:1:600 \  RRA:MAX:0.5:6:700 \  RRA:MAX:0.5:24:775 \  RRA:MAX:0.5:288:797

接下来要做的就是收集数据并把它保存起来。以下是一个例子。它是用伪码写的,你得根据OS调整后让它能够运行。:

while not the end of the universe  do  get result of  Linux SNMPget router community 2.2.1.10.4  into variable $in  get result of  Linux SNMPget router community 2.2.1.16.4  into variable $out  rrdtool update myrouter.rrd N:$in:$out  wait for 5 minutes  done 在收集了1天的数据后,试着用下面的命令创建图像::

rrdtool graph myrouter-day.png --start -86400 \  DEF:inoctets=myrouter.rrd:input:AVERAGE \  DEF:outoctets=myrouter.rrd:output:AVERAGE \  AREA:inoctets#00FF00:"In traffic" \  LINE1:outoctets#0000FF:"Out traffic" 这会产生一个具有1天流量值的图像。1天有24小时)x60分钟)x60秒)。我们从当前时间-86400秒开始。我们用DEF把输入和输出字节数定义成myrouter.rrd数据库中的的平均值,并且绘制输入流量区和输出流量线。


相关内容