RRDTool: файл RRD не обновляется

#rrdtool #rrd

#rrdtool #rrd

Вопрос:

Мой файл RRD не обновляется, в чем причина?

На графике показана легенда с: -nanv

Я создал файл 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
  

И изобразил это следующим образом:

 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 %lgvn" 
LINE:output#4169E1:"Output Voltage" 
GPRINT:output:MAX:"Max %lgv" 
GPRINT:output:AVERAGE:" Avg %lgv" 
GPRINT:output:LAST:"Current %lgvn" 
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. вы сохраняете только одно значение каждый час… вы запускали обновления уже больше часа?

Ответ №1:

Вам потребуется по крайней мере 13 обновлений с интервалом в 5 минут (т. Е. 12 PDP (первичных точек данных)), прежде чем вы сможете записать одну CDP (консолидированную точку данных) в ваш RRAs, что позволит вам получить точку данных на графике. Это потому, что ваш RRA с наименьшим разрешением равен 12, что означает, что вам нужно 12 PDP для создания одного CDP.

Пока у вас не будет достаточно данных для записи CDP, вам нечего отображать, и на вашем графике всегда будут неизвестные данные.

В качестве альтернативы, добавьте RRA с меньшим разрешением (возможно, количество 1), чтобы вам не нужно было так долго собирать данные, прежде чем у вас будет полный CDP.

Ответ №2:

Скрипт обновления необходимо запускать точно с тем же интервалом, который определен в вашей базе данных. Я вижу, что у него значение шага 300, поэтому база данных должна обновляться каждые 5 минут. Просто поместите скрипт обновления в задание cron (вы также можете сделать это для своего графического скрипта)

Например,

 sudo crontab -e
  

При запуске в первый раз выберите свой любимый редактор (я обычно использую Vim) и добавьте полный путь к местоположению вашего скрипта и запускайте его каждые 5 минут. Итак, добавьте это (не забудьте переименовать путь):

 */5 * * * *  /usr/local/update_script > /dev/null amp;amp; /usr/local/graph_script > /dev/null
  

Сохраните его и подождите пару минут. Обычно я перенаправляю вывод на /dev/null в случае вывода, который может быть сгенерирован скриптом. Таким образом, если скрипт, который будет выполнен, выдаст вывод crontab , произойдет сбой и будет отправлено уведомление.