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 %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"
2 ответа
Вам понадобится как минимум 13 обновлений, каждые 5 минут (IE, 12 PDP (первичные точки данных)), прежде чем вы сможете получить один CDP (сводная точка данных), записанный в ваши RRA, что позволит вам получить точку данных на графике. Это связано с тем, что вашим RRA с самым маленьким разрешением является счет 12, что означает, что вам нужно 12 PDP для создания одного CDP.
Пока у вас не будет достаточно данных для написания CDP, вам не на что будет составлять график, и на вашем графике всегда будут неизвестные данные.
В качестве альтернативы добавьте RRA с меньшим разрешением (возможно, счетчик 1), чтобы вам не приходилось собирать данные так долго, пока у вас не будет полного CDP.
Сценарий обновления должен запускаться с точно таким же интервалом, как определено в вашей базе данных. Я вижу, что он имеет значение шага 300, поэтому база данных должна обновляться каждые 5 минут. Просто поместите ваш скрипт обновления в работу cron (вы также можете сделать это для вашего скрипта графа)
Например,
sudo crontab -e
При первом запуске выберите ваш любимый редактор (я обычно использую Vim), добавьте полный путь к вашему сценарию и запускайте его каждые 5 минут. Так что добавьте это (не забудьте переименовать путь):
*/5 * * * * /usr/local/update_script > /dev/null && /usr/local/graph_script > /dev/null
Сохраните его и подождите пару минут. Я обычно перенаправляю вывод на /dev/null
в случае вывода, который может быть сгенерирован скриптом. Так что, если скрипт, который будет выполнен, дает вывод crontab
не удастся и отправит уведомление.