Заметка: rrdtool, или занимательное рисование

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение FreeBSP » 2010-08-08 20:16:22

кронтаб покажи
тут вроде ровно
только в обновлении апострофы можно убрать
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

BI_J
сержант
Сообщения: 154
Зарегистрирован: 2008-09-19 12:21:10

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение BI_J » 2010-08-09 9:24:45

разве в кроне может что то повлиять на мою проблему ??

# 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, или занимательное рисование

Непрочитанное сообщение FreeBSP » 2010-08-09 10:38:21

виноват
сбивается, если обнулить, проверил
можно взять другой тип счетчика - не counter a derive.. надо попробовать... заменить тип, пересоздать базу и обнулить счетчики

по поводу кронтаба - во первых, лучше не в системный, а в пользовательский класть команды - для этого надо всего лишь сказать

Код: Выделить всё

crontab -e
а во вторых - авось ты туда создание запихнул =) хто вас пацифистов знает =)

потом, на порследней строчке скриптов не должно быть бекслеша, ибо строка последняя
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение FreeBSP » 2010-08-09 10:51:56

ЕДРИТЬ ТВОЮ!!!! :bn: :bn: :bn:
оно не сбивается!!! :st: :st: :st:
обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать :oops:
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение Al » 2010-08-13 15:00:51

Нормально. Заканчивай и выкладывать можно, имхо.

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение TITANius » 2011-01-09 20:35:36

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
Я делал интерактивные графики на amline c подвязкой на rrd, В итоге на сервак нагрузка меньше, на клиентскую машиу - в геометрической прогрессии ) это вам не статика в виде изображения.

Изображение

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

... если кто подключится, можем написать мануал по RRDTool + Amline ... самому лениво/нет времени ... (в личку)

quad
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-01-26 18:31:46

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение quad » 2011-01-27 15:33:39

FreeBSP писал(а):ЕДРИТЬ ТВОЮ!!!! :bn: :bn: :bn:
оно не сбивается!!! :st: :st: :st:
обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать :oops:
То же самое - во время перезапуска ipfw счётчики обнуляются и на графике рисуется здоровенный пик. Как бы это можно победить?

quad
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-01-26 18:31:46

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение quad » 2011-01-27 16:19:03

quad писал(а):
FreeBSP писал(а):ЕДРИТЬ ТВОЮ!!!! :bn: :bn: :bn:
оно не сбивается!!! :st: :st: :st:
обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать :oops:
То же самое - во время перезапуска ipfw счётчики обнуляются и на графике рисуется здоровенный пик. Как бы это можно победить?
кажется разобрался: при создании БД использовалось

Код: Выделить всё

DS:inTOTAL:[b]COUNTER[/b]:120:U:U
- поправил на

Код: Выделить всё

DS:inTOTAL:[b]DERIVE[/b]:120:0:1000000000
- пики вроде исчезли :oops:

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение TITANius » 2011-04-25 23:15:26

Решил выложить наработки по ррд, если что не понятно - спрашивайте, может быть отвечу :)

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;
rrd.update.sh

Код: Выделить всё

#!/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
Построение графиков у меня выполняется на стороне клиента через amcharts, выдирание данных через "rrdtool xport". И это всё на php.
Сюда это всё барахло не стал выкладывать.

Кому будет нужно тот из этого всего слепит чёнить своё.

Если будут предложения по оптимизации кода, с радостью выслушаю :)

Аватара пользователя
alexco
старшина
Сообщения: 426
Зарегистрирован: 2008-09-27 18:43:49
Откуда: Россия, Москва
Контактная информация:

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение alexco » 2011-07-14 19:39:54

могу посоветовать pChart, это php класс позволяющий легко рисовать разнообразные и красивые графики
Электромонтажная Организация -> elemonorg.ru

bot
проходил мимо

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение bot » 2012-01-04 23:38:43

alexco писал(а):могу посоветовать pChart, это php класс позволяющий легко рисовать разнообразные и красивые графики
и в чём смысл то ? статику и сам ррдтулс отрисует красиво ...

Demeo
проходил мимо
Сообщения: 9
Зарегистрирован: 2011-01-13 4:15:08

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение Demeo » 2012-02-08 22:53:49

Прошу помощи с rrdtool.

Есть подшефная организация, которой мы даем инет. Для мониторинга мы пользуем 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, или занимательное рисование

Непрочитанное сообщение FreeBSP » 2012-02-09 8:33:26

### пробуем

Код: Выделить всё

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 системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Demeo
проходил мимо
Сообщения: 9
Зарегистрирован: 2011-01-13 4:15:08

Re: Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение Demeo » 2012-02-11 15:50:21

Огромное человеческое спасибо. Все получилось с небольшим допиливанием :)

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение QweЯty » 2019-11-14 22:36:06

побуду некромантом...

а как у rrd справа тоже построить шкалу измерения?
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

.FreeBSP
проходил мимо

Заметка: rrdtool, или занимательное рисование

Непрочитанное сообщение .FreeBSP » 2019-11-15 1:01:33

Будь здоров!
Правая ось, в буквальном переводе.

Код: Выделить всё

 [--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, или занимательное рисование

Непрочитанное сообщение QweЯty » 2019-11-16 19:25:31

не, мне надо одинаковые оси слева и справа.
хотя ща попробуем
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение