Страница 2 из 2

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

Добавлено: 2010-08-08 20:16:22
FreeBSP
кронтаб покажи
тут вроде ровно
только в обновлении апострофы можно убрать

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

Добавлено: 2010-08-09 9:24:45
BI_J
разве в кроне может что то повлиять на мою проблему ??

# 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

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

Добавлено: 2010-08-09 10:38:21
FreeBSP
виноват
сбивается, если обнулить, проверил
можно взять другой тип счетчика - не counter a derive.. надо попробовать... заменить тип, пересоздать базу и обнулить счетчики

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

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

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

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

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

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

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

Добавлено: 2010-08-13 15:00:51
Al
Нормально. Заканчивай и выкладывать можно, имхо.

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

Добавлено: 2011-01-09 20:35:36
TITANius
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 ... самому лениво/нет времени ... (в личку)

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

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

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

Добавлено: 2011-01-27 16:19:03
quad
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:

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

Добавлено: 2011-04-25 23:15:26
TITANius
Решил выложить наработки по ррд, если что не понятно - спрашивайте, может быть отвечу :)

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.
Сюда это всё барахло не стал выкладывать.

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

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

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

Добавлено: 2011-07-14 19:39:54
alexco
могу посоветовать pChart, это php класс позволяющий легко рисовать разнообразные и красивые графики

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

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

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

Добавлено: 2012-02-08 22:53:49
Demeo
Прошу помощи с 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
то ошибок не получаю, данные заносятся, все ок.

В чем может быть причина?

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

Добавлено: 2012-02-09 8:33:26
FreeBSP
### пробуем

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

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 я так и не понял, убрал как лишнее
перед пайпами(и после них) ставим пробелы, ибо, как минимум, читабельнее

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

Добавлено: 2012-02-11 15:50:21
Demeo
Огромное человеческое спасибо. Все получилось с небольшим допиливанием :)

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

Добавлено: 2019-11-14 22:36:06
QweЯty
побуду некромантом...

а как у rrd справа тоже построить шкалу измерения?

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

Добавлено: 2019-11-15 1:01:33
.FreeBSP
Будь здоров!
Правая ось, в буквальном переводе.

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

 [--right-axis scale:shift]
 [--right-axis-label label] 
 [--right-axis-formatter formatter-name] 
 [--right-axis-format format-string]       

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

Добавлено: 2019-11-16 19:25:31
QweЯty
не, мне надо одинаковые оси слева и справа.
хотя ща попробуем