Заметка: rrdtool, или занимательное рисование
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Заметка: rrdtool, или занимательное рисование
кронтаб покажи
тут вроде ровно
только в обновлении апострофы можно убрать
тут вроде ровно
только в обновлении апострофы можно убрать
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- сержант
- Сообщения: 154
- Зарегистрирован: 2008-09-19 12:21:10
Re: Заметка: rrdtool, или занимательное рисование
разве в кроне может что то повлиять на мою проблему ??
# rrd
*/1 * * * * root /usr/local/www/apache22/data/rrd/script/update_db.sh >/dev/null 2>&1
*/5 * * * * root /usr/local/www/apache22/data/rrd/script/creat_graph.sh >/dev/null 2>&1
# rrd
*/1 * * * * root /usr/local/www/apache22/data/rrd/script/update_db.sh >/dev/null 2>&1
*/5 * * * * root /usr/local/www/apache22/data/rrd/script/creat_graph.sh >/dev/null 2>&1
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Заметка: rrdtool, или занимательное рисование
виноват
сбивается, если обнулить, проверил
можно взять другой тип счетчика - не counter a derive.. надо попробовать... заменить тип, пересоздать базу и обнулить счетчики
по поводу кронтаба - во первых, лучше не в системный, а в пользовательский класть команды - для этого надо всего лишь сказать
а во вторых - авось ты туда создание запихнул
хто вас пацифистов знает 
потом, на порследней строчке скриптов не должно быть бекслеша, ибо строка последняя
сбивается, если обнулить, проверил
можно взять другой тип счетчика - не counter a derive.. надо попробовать... заменить тип, пересоздать базу и обнулить счетчики
по поводу кронтаба - во первых, лучше не в системный, а в пользовательский класть команды - для этого надо всего лишь сказать
Код: Выделить всё
crontab -e


потом, на порследней строчке скриптов не должно быть бекслеша, ибо строка последняя
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Заметка: rrdtool, или занимательное рисование
ЕДРИТЬ ТВОЮ!!!!
оно не сбивается!!!

обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать



оно не сбивается!!!



обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать

Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
-
- ст. прапорщик
- Сообщения: 501
- Зарегистрирован: 2007-10-18 13:42:48
- Откуда: Тверь
- Контактная информация:
Re: Заметка: rrdtool, или занимательное рисование
Нормально. Заканчивай и выкладывать можно, имхо.
- TITANius
- сержант
- Сообщения: 197
- Зарегистрирован: 2009-10-27 11:33:10
Re: Заметка: rrdtool, или занимательное рисование
Я делал интерактивные графики на amline c подвязкой на rrd, В итоге на сервак нагрузка меньше, на клиентскую машиу - в геометрической прогрессии ) это вам не статика в виде изображения.ProFTP писал(а):интересно, правда я еще не гуглил
вот как на счет графики и диаграмм на JS (jquery) ?
http://msug.vn.ua/blogs/akrakovetsky/ar ... aries.aspx
http://webduty.ru/%D0%BF%D0%BE%D1%81%D1 ... %D0%B0.htm
http://www.google.com.ua/#hl=uk&q=%D0%B ... 1d94482ac6

Explorer только убедительно рисовал интерактив, FF и Opera подтупливали (4 ядра по 3,0 Ггц) ... или то я сильно много данных одновременно выводил

... если кто подключится, можем написать мануал по RRDTool + Amline ... самому лениво/нет времени ... (в личку)
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2011-01-26 18:31:46
Re: Заметка: rrdtool, или занимательное рисование
То же самое - во время перезапуска ipfw счётчики обнуляются и на графике рисуется здоровенный пик. Как бы это можно победить?FreeBSP писал(а):ЕДРИТЬ ТВОЮ!!!!![]()
![]()
![]()
оно не сбивается!!!![]()
![]()
обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2011-01-26 18:31:46
Re: Заметка: rrdtool, или занимательное рисование
кажется разобрался: при создании БД использовалосьquad писал(а):То же самое - во время перезапуска ipfw счётчики обнуляются и на графике рисуется здоровенный пик. Как бы это можно победить?FreeBSP писал(а):ЕДРИТЬ ТВОЮ!!!!![]()
![]()
![]()
оно не сбивается!!!![]()
![]()
обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать
Код: Выделить всё
DS:inTOTAL:[b]COUNTER[/b]:120:U:U
Код: Выделить всё
DS:inTOTAL:[b]DERIVE[/b]:120:0:1000000000

- TITANius
- сержант
- Сообщения: 197
- Зарегистрирован: 2009-10-27 11:33:10
Re: Заметка: rrdtool, или занимательное рисование
Решил выложить наработки по ррд, если что не понятно - спрашивайте, может быть отвечу 
RRDTool у меня для коллекции параметров загрузки процессора, памяти, процессов, интерфейсов и латентности к хостам.
Есть 2 скрипта, один из них создаёт базы ррд, а другой обновляет их.
rrd.create.sh
rrd.update.sh
Первый скрипт запускаем один раз (для создания самих баз), а второй помещаем в крон.
Так как ррд настроено на запись с промежутком в 20 сек, то дублируем запуск второго скрипта.
Построение графиков у меня выполняется на стороне клиента через amcharts, выдирание данных через "rrdtool xport". И это всё на php.
Сюда это всё барахло не стал выкладывать.
Кому будет нужно тот из этого всего слепит чёнить своё.
Если будут предложения по оптимизации кода, с радостью выслушаю

RRDTool у меня для коллекции параметров загрузки процессора, памяти, процессов, интерфейсов и латентности к хостам.
Есть 2 скрипта, один из них создаёт базы ррд, а другой обновляет их.
rrd.create.sh
Код: Выделить всё
#!/bin/sh
# Create .rrd script v1.2 | 2011.01.09 | Alexander aka TITAN
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin;
RRDFOLDER="/data/www/rrd"
INTERFACES="rl0 nfe0";
INETHOSTS="speed.gts.dp.ua \
speedtest.netassist.ua \
speedtest.proxis.sk \
speedtest.widevoip.com \
speedtest.bbmax.co.uk \
speedtest.telecom.mipt.ru \
wdc.speedtest.net \
suntechspeedtest.com \
speedtest.aussiehq.net.au \
speedtest.cte.vodacombusiness.co.za";
RRDPARAM="RRA:AVERAGE:0.5:1:1080 \
RRA:AVERAGE:0.5:4:1080 \
RRA:AVERAGE:0.5:12:1080 \
RRA:AVERAGE:0.5:28:1080 \
RRA:AVERAGE:0.5:124:1080 \
RRA:AVERAGE:0.5:1460:1080 \
RRA:MAX:0.5:1:1080 \
RRA:MAX:0.5:4:1080 \
RRA:MAX:0.5:12:1080 \
RRA:MAX:0.5:28:1080 \
RRA:MAX:0.5:124:1080 \
RRA:MAX:0.5:1460:1080 \
RRA:MIN:0.5:1:1080 \
RRA:MIN:0.5:4:1080 \
RRA:MIN:0.5:12:1080 \
RRA:MIN:0.5:28:1080 \
RRA:MIN:0.5:124:1080 \
RRA:MIN:0.5:1460:1080 \
RRA:LAST:0.5:1:1080 \
RRA:LAST:0.5:4:1080 \
RRA:LAST:0.5:12:1080 \
RRA:LAST:0.5:28:1080 \
RRA:LAST:0.5:124:1080 \
RRA:LAST:0.5:1460:1080";
if [ -d $RRDFOLDER ];
then else
mkdir $RRDFOLDER;
chmod 644 $RRDFOLDER;
fi;
if [ -e $RRDFOLDER/cpu.rrd ];
then else
rrdtool create $RRDFOLDER/cpu.rrd \
--step 20 \
DS:user:COUNTER:40:U:U \
DS:nice:COUNTER:40:U:U \
DS:system:COUNTER:40:U:U \
DS:interrupt:COUNTER:40:U:U \
DS:idle:COUNTER:40:U:U \
$RRDPARAM;
fi;
if [ -e $RRDFOLDER/memory.rrd ];
then else
rrdtool create $RRDFOLDER/memory.rrd \
--step 20 \
DS:active:GAUGE:40:U:U \
DS:inactive:GAUGE:40:U:U \
DS:wire:GAUGE:40:U:U \
DS:cashe:GAUGE:40:U:U \
DS:free:GAUGE:40:U:U \
$RRDPARAM;
fi;
if [ -e $RRDFOLDER/processes.rrd ];
then else
rrdtool create $RRDFOLDER/processes.rrd \
--step 20 \
DS:uninterruptible:GAUGE:40:U:U \
DS:idle:GAUGE:40:U:U \
DS:lock:GAUGE:40:U:U \
DS:runnable:GAUGE:40:U:U \
DS:sleeping:GAUGE:40:U:U \
DS:stopped:GAUGE:40:U:U \
DS:interrupt:GAUGE:40:U:U \
DS:zombie:GAUGE:40:U:U \
$RRDPARAM;
fi;
for f in $INTERFACES
do
if [ -e $RRDFOLDER/iface-$f.rrd ];
then else
rrdtool create $RRDFOLDER/lan-$f.rrd \
--step 20 \
DS:in:COUNTER:40:U:U \
DS:out:COUNTER:40:U:U \
$RRDPARAM;
fi;
done;
for f in $INETHOSTS
do
if [ -e $RRDFOLDER/ping.inet-$f.rrd ];
then else
rrdtool create $RRDFOLDER/ping.inet-$f.rrd \
--step 20 \
DS:ping:GAUGE:40:U:U \
$RRDPARAM;
fi;
done;
Код: Выделить всё
#!/bin/sh
# Update .rrd script v1.2 | 2011.01.09 | Alexander aka TITAN
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin;
export LC_ALL=C;
export LANG=C;
RRD="/data/www/rrd";
INTERFACES="rl0 nfe0";
INETHOSTS="speed.gts.dp.ua \
speedtest.netassist.ua \
speedtest.proxis.sk \
speedtest.widevoip.com \
speedtest.bbmax.co.uk \
speedtest.telecom.mipt.ru \
wdc.speedtest.net \
suntechspeedtest.com \
speedtest.aussiehq.net.au \
speedtest.cte.vodacombusiness.co.za";
## CPU ##
sysctl -n kern.cp_time | sed -e 's/ /:/g' | \
(read str; rrdtool update $RRD/cpu.rrd N:$str;)
## Memory ##
sysctl vm.stats.vm | awk 'BEGIN {ORS=" "} /count/ {print $2}' | \
awk 'BEGIN {"sysctl -n hw.pagesize" | getline ps} \
{print ps*$3 ":" ps*$2 ":" ps*$4 ":" ps*$1 ":" ps*$5}' | \
(read str; rrdtool update $RRD/memory.rrd N:$str;)
## Processes ##
ps -axo state= | sed -e 's/^\(.\).*/\1/' | awk '{ stat[$1]++ } END {
print 0+stat["D"] ":" \
0+stat["I"] ":" \
0+stat["G"] ":" \
0+stat["R"]-1 ":" \
0+stat["S"] ":" \
0+stat["T"] ":" \
0+stat["W"] ":" \
0+stat["Z"]}' | \
(read str; rrdtool update $RRD/processes.rrd N:$str;)
## Interfaces ##
for f in $INTERFACES;
do
if [ "`pfctl -sI -i $f`" != "" ];
then
pfctl -sI -vv -i $f | \
awk 'BEGIN {ORS=" "} {if (NR > 3 && NR < 8) print $6}' | \
awk '{print $1+$2 ":" $3+$4}' | \
(read str; rrdtool update $RRD/iface-$f.rrd N:$str;)
fi;
done;
## Ping INET Hosts ##
for f in $INETHOSTS
do
ping -c 3 -i 5 -t 15 -q $f | tail -1 | \
awk 'BEGIN {FS="/"} { if ($5 != "") print $5; else print "U" }' | \
(read str; rrdtool update $RRD/ping.inet-$f.rrd `date +%s`:$str;) &
done;
Так как ррд настроено на запись с промежутком в 20 сек, то дублируем запуск второго скрипта.
Код: Выделить всё
#!/bin/sh
#minute (0-59)
#| hour (0-23)
#| | day of the month (1-31)
#| | | month of the year (1-12 or Jan-Dec)
#| | | | day of the week (0-6 with 0=Sun or Sun-Sat)
#| | | | | commands
#| | | | | |
# Обновление параметров стстистики для RRDTool
*/1 * * * * /data/www/rrd.update.sh >/dev/null
*/1 * * * * sleep 20 && /data/www/rrd.update.sh >/dev/null
*/1 * * * * sleep 40 && /data/www/rrd.update.sh >/dev/null
Сюда это всё барахло не стал выкладывать.
Кому будет нужно тот из этого всего слепит чёнить своё.
Если будут предложения по оптимизации кода, с радостью выслушаю

- alexco
- старшина
- Сообщения: 425
- Зарегистрирован: 2008-09-27 18:43:49
- Откуда: Россия, Москва
- Контактная информация:
Re: Заметка: rrdtool, или занимательное рисование
могу посоветовать pChart, это php класс позволяющий легко рисовать разнообразные и красивые графики
Электромонтажная Организация -> elemonorg.ru
-
- проходил мимо
Re: Заметка: rrdtool, или занимательное рисование
и в чём смысл то ? статику и сам ррдтулс отрисует красиво ...alexco писал(а):могу посоветовать pChart, это php класс позволяющий легко рисовать разнообразные и красивые графики
-
- проходил мимо
- Сообщения: 9
- Зарегистрирован: 2011-01-13 4:15:08
Re: Заметка: rrdtool, или занимательное рисование
Прошу помощи с rrdtool.
Есть подшефная организация, которой мы даем инет. Для мониторинга мы пользуем Zabbix, но там машинка слабая + директор сам хочет иногда просматривать че там у них творится. В общем на их серваке с фрей сделал рисовалку графиков загрузки сетевого интерфейса при помощи rrdtool. Графики рисует, все норм. Но тут директору пришла мысль, что неплохо бы смотреть сколько сотрудников сидит на работе. Поскольку инет машинки получают по pppoe, то можно просто посчитать pppoe интерфейсы и нарисовать график (заодно можно видеть во сколько машина включилась, то есть во сколько чел пришел на работу). Я знаю, что это глупо, потому что первый приходящий на работу включает все компы и создает видимость активной работы
) В общем, затея у меня не удалась...
Создал базу
Беру инфу по подключениям
... и получаю ошибку
Если напрямую указываю, что заносить в базу...
то ошибок не получаю, данные заносятся, все ок.
В чем может быть причина?
Есть подшефная организация, которой мы даем инет. Для мониторинга мы пользуем Zabbix, но там машинка слабая + директор сам хочет иногда просматривать че там у них творится. В общем на их серваке с фрей сделал рисовалку графиков загрузки сетевого интерфейса при помощи rrdtool. Графики рисует, все норм. Но тут директору пришла мысль, что неплохо бы смотреть сколько сотрудников сидит на работе. Поскольку инет машинки получают по pppoe, то можно просто посчитать pppoe интерфейсы и нарисовать график (заодно можно видеть во сколько машина включилась, то есть во сколько чел пришел на работу). Я знаю, что это глупо, потому что первый приходящий на работу включает все компы и создает видимость активной работы

Создал базу
Код: Выделить всё
#!/bin/sh
rrdtool create /var/rrdtool/db/ng.rrd \
--step 60 \
DS:ng:GAUGE:600:U:U \
RRA:AVERAGE:0.5:1:1200 \
RRA:MAX:0.5:1440:1200
Код: Выделить всё
#!/bin/sh
ng=`ifconfig|grep ng/*|wc -l`
`rrdtool update /var/rrdtool/db/ng.rrd N:$ng`
Код: Выделить всё
ERROR: /var/rrdtool/db/ng.rrd: expected timestamp not found in data source from 50
Код: Выделить всё
rrdtool update /var/rrdtool/db/ng.rrd N:52
В чем может быть причина?
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Заметка: rrdtool, или занимательное рисование
### пробуем
### ищем
### видим пробел. убрать бяку
попутно:
зачем берется в апострофы вызов rrdtool я так и не понял, убрал как лишнее
перед пайпами(и после них) ставим пробелы, ибо, как минимум, читабельнее
Код: Выделить всё
freebsp# rrdtool create /var/rrdtool/db/ng.rrd --step 60 DS:ng:GAUGE:600:U:U RRA:AVERAGE:0.5:1:1200 RRA:MAX:0.5:1440:1200
freebsp# sh a.sh
ERROR: /var/rrdtool/db/ng.rrd: expected timestamp not found in data source from 1
freebsp# cat a.sh
#!/bin/sh
ng=`ifconfig|grep ng/*|wc -l`
`rrdtool update /var/rrdtool/db/ng.rrd N:$ng`
Код: Выделить всё
freebsp# cat a.sh
#!/bin/sh
ng=`ifconfig | grep ng/* | wc -l`
echo rrdtool update /var/rrdtool/db/ng.rrd N:$ng
freebsp# sh a.sh
rrdtool update /var/rrdtool/db/ng.rrd N: 1
Код: Выделить всё
freebsp# cat a.sh
#!/bin/sh
ng=`ifconfig | grep ng/* | wc -l | tr -d ' '`
rrdtool update /var/rrdtool/db/ng.rrd N:$ng
freebsp# sh a.sh
freebsp#
зачем берется в апострофы вызов rrdtool я так и не понял, убрал как лишнее
перед пайпами(и после них) ставим пробелы, ибо, как минимум, читабельнее
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
-
- проходил мимо
- Сообщения: 9
- Зарегистрирован: 2011-01-13 4:15:08
Re: Заметка: rrdtool, или занимательное рисование
Огромное человеческое спасибо. Все получилось с небольшим допиливанием 

- QweЯty
- лейтенант
- Сообщения: 796
- Зарегистрирован: 2010-10-12 0:15:15
- Откуда: Таганрог, Калининград
- Контактная информация:
Заметка: rrdtool, или занимательное рисование
побуду некромантом...
а как у rrd справа тоже построить шкалу измерения?
а как у rrd справа тоже построить шкалу измерения?
-
- проходил мимо
Заметка: rrdtool, или занимательное рисование
Будь здоров!
Правая ось, в буквальном переводе.
Правая ось, в буквальном переводе.
Код: Выделить всё
[--right-axis scale:shift]
[--right-axis-label label]
[--right-axis-formatter formatter-name]
[--right-axis-format format-string]
- QweЯty
- лейтенант
- Сообщения: 796
- Зарегистрирован: 2010-10-12 0:15:15
- Откуда: Таганрог, Калининград
- Контактная информация:
Заметка: rrdtool, или занимательное рисование
не, мне надо одинаковые оси слева и справа.
хотя ща попробуем
хотя ща попробуем