#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
, произойдет сбой и будет отправлено уведомление.