2011-05-21 60 views
0

我的RRD file没有更新,是什么原因?RRDTool:RRD文件没有更新

图表显示与传说:

rrdtool create ups.rrd --step 300 
DS:input:GAUGE:600:0:360 
DS:output:GAUGE:600:0:360 
DS:temp:GAUGE:600:0:100 
DS:load:GAUGE:600:0:100 
DS:bcharge:GAUGE:600:0:100 
DS:battv:GAUGE:600:0:100 
RRA:AVERAGE:0.5:12:24 
RRA:AVERAGE:0.5:288:31 

然后我更新了此语法文件::

rrdtool update ups.rrd N:$inputv:$outputv:$temp:$load:$bcharge:$battv 

并作图-nanv

我使用此语法创建的RRD文件它与此:

rrdtool graph ups-day.png 
-t "ups " 
-s -1day 
-h 120 -w 616 
-a PNG 
-cBACK#F9F9F9 
-cSHADEA#DDDDDD 
-cSHADEB#DDDDDD 
-cGRID#D0D0D0 
-cMGRID#D0D0D0 
-cARROW#0033CC 
DEF:input=ups.rrd:input:AVERAGE 
DEF:output=ups.rrd:output:AVERAGE 
DEF:temp=ups.rrd:temp:AVERAGE 
DEF:load=ups.rrd:load:AVERAGE 
DEF:bcharge=ups.rrd:bcharge:AVERAGE 
DEF:battv=ups.rrd:battv:AVERAGE 
LINE:input#336600 
AREA:input#32CD3260:"Input Voltage" 
GPRINT:input:MAX:" Max %lgv" 
GPRINT:input:AVERAGE:" Avg %lgv" 
GPRINT:input:LAST:"Current %lgv\n" 
LINE:output#4169E1:"Output Voltage" 
GPRINT:output:MAX:"Max %lgv" 
GPRINT:output:AVERAGE:" Avg %lgv" 
GPRINT:output:LAST:"Current %lgv\n" 
LINE:load#FD570E:"Load" 
GPRINT:load:MAX:"  Max %lg%%" 
GPRINT:load:AVERAGE:" Avg %lg%%" 
GPRINT:load:LAST:" Current %lg%%\n" 
LINE:temp#000ACE:"Temperature" 
GPRINT:temp:MAX:" Max %lgc" 
GPRINT:temp:AVERAGE:" Avg %lgc" 
GPRINT:temp:LAST:" Current %lgc" 
+1

您每小时只能存储一个值...您是否已经运行了一小时以上的更新? – 2011-05-22 15:39:47

回答

2

在将单个CDP(统一数据点)写入您的RRA之前,您至少需要13次更新,每次间隔5分钟(IE,12个PDP(主要数据点)),使您可以获取数据点在图上。这是因为你的最小分辨率RRA是12号计数,这意味着你需要12个PDP来制作一个CDP。

在您有足够的数据来编写CDP之前,您没有任何可以绘制的图形,并且您的图形始终具有未知数据。

或者,添加一个较小的分辨率RRA(也许计数为1),这样您就不需要在拥有完整的CDP之前收集数据了很长时间。

-1

更新脚本需要以与数据库中定义的间隔完全相同的间隔运行。 我看到它的步长值为300,所以数据库应该每5分钟更新一次。 只需将您的cron作业就更新脚本(你也可以做到这一点对你的图形脚本)

例如,

sudo crontab -e 

如果运行的第一次选择你喜欢的编辑器(我通常去Vim)并添加脚本的完整路径位置并每5分钟运行一次。因此,请添加以下内容(不要忘记重命名路径):

*/5 * * * * /usr/local/update_script > /dev/null && /usr/local/graph_script > /dev/null 

保存并等待几分钟。如果输出可以由脚本生成,我通常会将输出重定向到/dev/null。因此,如果将执行的脚本给出输出crontab将会失败并发送通知。