Народ, подскажите где грабли. Создаю rrdtool'ом базу
rrdtool create fl1_tmp.rrd --step 300 \
DS:fl1_tmp:GAUGE:600:U:U \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797потом заношу значения в нее php-скриптом, а при попытке построить график
rrdtool graph fl1_tmp.png \
--width 800 \
--height 200 \
--start -1d \
--end now \
--no-minor \
--slope-mode \
--interlaced \
--alt-y-mrtg
DEF:fl1_tmp_t=1floor.rrd:fl1_tmp:AVERAGE \
"CDEF:fl1_tmpt=fl1_tmp_t" \
"CDEF:a=fl1_tmp_t,0,*" \
"CDEF:fl1_tmpn=a,39,+" \
"CDEF:fl1_tmpw=a,50,+" \
AREA:fl1_tmpt#00FF00:"1floor_tmp Cur\: " \
GPRINT:fl1_tmpt:LAST:"%3.0lf" \
COMMENT:"Max\:" \
GPRINT:fl1_tmpt:MAX:"%3.0lf" \
COMMENT:"Min\:" \
GPRINT:fl1_tmpt:MIN:"%3.0lf\n" \
LINE3:fl1_tmpn#AAAAAA:"Normal\: " \
GPRINT:fl1_tmpn:LAST:"%3.0lf\n" \
LINE3:fl1_tmpw#FF0000:"Critical: " \
GPRINT:fl1_tmpw:LAST:"%3.0lf\n" \
LINE3:a#FFFFFF:""выдается
DEF:fl1_tmp=1floor.rrd:fl1_tmp:AVERAGE: not found
Слеш после --alt-y-mrtg потерял :)
>Слеш после --alt-y-mrtg потерял :)Спасибо, но потерялА - я Ж :))
еще бы понять почему значения в базу рисуются нерегулярно.. но это скорее проблема с переменными в скрипте...
Я вот тоже два дня бился над построеием графика.
и ошибка была точно такой же. Не было слеша.
теперь график у меня рисуется. Но вот датчик температуры ыдает строковый параметр:
ms#sysctl -a | grep dev.cpu.0.temperature | awk '{print $2}'
ms#52.0CОС стоит FreeBSD 8.0
сделал так:
t_cpu0=`sysctl -a |grep dev.cpu.0.temperat | awk '{printf "%.2s", $2}'`term_cpu0=`expr $t_cpu0 + 0`
Но вот в базу теперь пишется всегда нуль.
Подскажите как бы перевести строковое значение в цифру без потери значения.
Из строковой 52.0С сделать цифру 52 ?
Помогите пожалуйста!
Не получается с rrdtoolsНужно раз в день вставлять в базу значение, потом строю график, там пусто.
Проверя базу тоже NaN.
Что я делаю не так ?rrdtool create filename.rrd --step 86400 'DS:cl:GAUGE:1:0:999999' 'RRA:AVERAGE:0.5:1:100'
rrdtool update filename.rrd N:1
rrdtool update filename.rrd N:2
rrdtool update filename.rrd N:3
rrdtool update filename.rrd N:4
rrdtool update filename.rrd N:5
rrdtool fetch filename.rrd AVERAGE
cl1350086400: nan
1350172800: nan
>[оверквотинг удален]
> rrdtool update filename.rrd N:2
> rrdtool update filename.rrd N:3
> rrdtool update filename.rrd N:4
> rrdtool update filename.rrd N:5
> rrdtool fetch filename.rrd AVERAGE
>
>
> cl
> 1350086400: nan
> 1350172800: nanЗначение LAST пробовал вместо AVERAGE?
Я для подсчета коннектов пробовал сначала Average, частенько получал Non.
Теперь нет такого значения. Система подсчета работает уже больше года.
>[оверквотинг удален]
>> rrdtool update filename.rrd N:5
>> rrdtool fetch filename.rrd AVERAGE
>>
>>
>> cl
>> 1350086400: nan
>> 1350172800: nan
> Значение LAST пробовал вместо AVERAGE?
> Я для подсчета коннектов пробовал сначала Average, частенько получал Non.
> Теперь нет такого значения. Система подсчета работает уже больше года.Пробую
$ rrdtool create filename.rrd --step 86400 'DS:cl:GAUGE:1:0:999999' 'RRA:LAST:0.5:1:100'
или
$ rrdtool create filename.rrd 'DS:cl:GAUGE:1:0:999999' 'RRA:LAST:0.5:1:100'$ rrdtool update filename.rrd N:1
$ rrdtool update filename.rrd N:2
$ rrdtool update filename.rrd N:3
$ rrdtool fetch filename.rrd LAST
cl1350172800: nan
1350259200: nanПожалуйста помогите, что то в таком простом примере я упускаю ...
>[оверквотинг удален]
> $ rrdtool update filename.rrd N:1
> $ rrdtool update filename.rrd N:2
> $ rrdtool update filename.rrd N:3
> $ rrdtool fetch filename.rrd LAST
>
>
> cl
> 1350172800: nan
> 1350259200: nan
> Пожалуйста помогите, что то в таком простом примере я упускаю ...Пробуйте так лучше обновлять базу данными:
rrdtool update /путь к базе/filename.rrd N:$N0:$N1:$N2:$N3
>[оверквотинг удален]
> теперь график у меня рисуется. Но вот датчик температуры ыдает строковый параметр:
> ms#sysctl -a | grep dev.cpu.0.temperature | awk '{print $2}'
> ms#52.0C
> ОС стоит FreeBSD 8.0
> сделал так:
> t_cpu0=`sysctl -a |grep dev.cpu.0.temperat | awk '{printf "%.2s", $2}'`
> term_cpu0=`expr $t_cpu0 + 0`
> Но вот в базу теперь пишется всегда нуль.
> Подскажите как бы перевести строковое значение в цифру без потери значения.
> Из строковой 52.0С сделать цифру 52 ?Найденое решение:
#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbinterm_cpu0=`sysctl dev.cpu.0.temperature | awk '{printf "%.2s", $2}'`
sleep 1
term_cpu1=`sysctl dev.cpu.1.temperature | awk '{printf "%.2s", $2}'`
sleep 1
term_cpu2=`sysctl dev.cpu.2.temperature | awk '{printf "%.2s", $2}'`
sleep 1
term_cpu3=`sysctl dev.cpu.3.temperature | awk '{printf "%.2s", $2}'`
/usr/local/bin/rrdtool update /usr/local/rrdtermal/termdb/termal.rrd N:$term_cpu0:$term_cpu1:$term_cpu2:$term_cpu3export LANG=KOI8-R
export LC_ALL=ru_RU.KOI8-R
RRDPREFIX=/usr/local/rrdtermal/termdb
WWWPREFIX=/usr/local/www/rrdtool/images
/usr/local/bin/rrdtool graph $WWWPREFIX/termal.png \
--width 750 \
--height 150 \
--imgformat PNG \
--title="Temperature CPUx `date +%d.%m.%Y-%H:%M:%S`" \
--start -48h \
--end now-30s \
--vertical-label="Celsium" \
DEF:term_0=/usr/local/rrdtermal/termdb/termal.rrd:term_cpu0:LAST \
CDEF:cterm_0=term_0,1,/\
DEF:term_1=$RRDPREFIX/termal.rrd:term_cpu1:LAST \
CDEF:cterm_1=term_1,1,/\
DEF:term_2=$RRDPREFIX/termal.rrd:term_cpu2:LAST \
CDEF:cterm_2=term_2,1,/\
DEF:term_3=$RRDPREFIX/termal.rrd:term_cpu3:LAST \
CDEF:cterm_3=term_3,1,/\
LINE1:term_0#FFFFFF \
LINE1:term_1#cccccc \
LINE1:term_2#333333 \
LINE1:term_3#2f2f2f \
GPRINT:term_0:LAST:"Last CPU-0 %8.2lf %s" \
GPRINT:term_1:LAST:"Last CPU-1 %8.2lf %s" \
GPRINT:term_2:LAST:"Last CPU-2 %8.2lf %s" \
GPRINT:term_3:LAST:"Last CPU-3 %8.2lf %s" \
COMMENT:"Processor 0" \
GPRINT:term_0:MAX:"Max CPU-0 %8.2lf %s" \
GPRINT:term_1:MAX:"Max CPU-1 %8.2lf %s" \
GPRINT:term_2:MAX:"Max CPU-2 %8.2lf %s" \
GPRINT:term_3:MAX:"Max CPU-3 %8.2lf %s" \
COMMENT:"Processor 1" \
GPRINT:term_0:AVERAGE:"Avg CPU-0 %8.2lf %s" \
GPRINT:term_1:AVERAGE:"Avg CPU-1 %8.2lf %s" \
GPRINT:term_2:AVERAGE:"Avg CPU-2 %8.2lf %s" \
GPRINT:term_3:AVERAGE:"Avg CPU-3 %8.2lf %s" \
COMMENT:"Processor 2" \
GPRINT:term_0:MIN:"Min CPU-0 %8.2lf %s" \
GPRINT:term_1:MIN:"Min CPU-1 %8.2lf %s" \
GPRINT:term_2:MIN:"Min CPU-2 %8.2lf %s" \
GPRINT:term_3:MIN:"Min CPU-3 %8.2lf %s" \
COMMENT:"Processor 3" \Теперь график рисуется. Из этого скрипта есть выгрузка ещё в файлик(строка удалена здесь) и если температура превышает какието предельные значение мне(и ещё кой кому) на телефон летит смс-ка.