2011-05-21 57 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將會失敗併發送通知。