Re: Заметка: rrdtool, или занимательное рисование
Добавлено: 2010-08-08 20:16:22
кронтаб покажи
тут вроде ровно
только в обновлении апострофы можно убрать
тут вроде ровно
только в обновлении апострофы можно убрать
Не так страшен танк, как его пьяный экипаж
https://forum.lissyara.su/
Код: Выделить всё
crontab -e
Я делал интерактивные графики на 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
То же самое - во время перезапуска ipfw счётчики обнуляются и на графике рисуется здоровенный пик. Как бы это можно победить?FreeBSP писал(а):ЕДРИТЬ ТВОЮ!!!!
оно не сбивается!!!
обнуление счетчика система считает как переход через потолок счетчика... то бишь ей кажется, что за время между измерениями (минуту) было выкачано то ли 2^32 то ли 2^64 байтов - скорость порядка 2.6 эксабит(около 10^17) в секунду. поэтому то что там рядом какие то пять мегабит даже незаметно... набольших временных интервалах это сглаживается несколько и получается незаметно...
--
PS прошу прощения что встал на стол и начал кричать
кажется разобрался: при создании БД использовалось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
Код: Выделить всё
#!/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;
Код: Выделить всё
#!/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 писал(а):могу посоветовать pChart, это php класс позволяющий легко рисовать разнообразные и красивые графики
Код: Выделить всё
#!/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# 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#
Код: Выделить всё
[--right-axis scale:shift]
[--right-axis-label label]
[--right-axis-formatter formatter-name]
[--right-axis-format format-string]