rendered paste bodycreating rrd:
#!/bin/sh
rrdtool create /var/rrdtool/db/ftp.rrd --step 60 \
DS:ftpin:COUNTER:120:U:U \
DS:ftpout:COUNTER:120:U:U \
RRA:AVERAGE:0.5:1:3000 \
RRA:AVERAGE:0.5:5:700 \
RRA:AVERAGE:0.5:20:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:3000 \
RRA:MAX:0.5:5:700 \
RRA:MAX:0.5:20:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
RRA:MIN:0.5:1:600 \
RRA:MIN:0.5:6:700 \
RRA:MIN:0.5:24:775 \
RRA:MIN:0.5:288:797
---------------
filling rrd with data:
#!/bin/sh
# /var/rrdtool/script/network_usage.sh
ftpin=`/sbin/ipfw show 00010 | awk '{print $3}'`
ftpout=`/sbin/ipfw show 00011 | awk '{print $3}'`
/usr/local/bin/rrdtool update /var/rrdtool/db/ftp.rrd \
N:$ftpin:$ftpout
----------------
drawing:
#!/bin/sh
#/var/rrdtool/script/network_usage_graph.sh
SEC_IN_DAY=86400
/usr/local/bin/rrdtool graph /usr/local/www/rrdtool/ftp.png \
--width 1024 --height 256 --imgformat PNG \
--start -61440 \
--title "FTP from NNN" --rigid --alt-y-grid --color GRID#FF7F50 --color MGRID#FF0000 \
--x-grid HOUR:1:HOUR:6:HOUR:12:0:%a" "%R \
--lower-limit 0 \
--vertical-label "bits per second" \
DEF:ftpin=/var/rrdtool/db/ftp.rrd:ftpin:AVERAGE \
DEF:ftpout=/var/rrdtool/db/ftp.rrd:ftpout:AVERAGE \
CDEF:ftpin1=ftpin,8,* \
CDEF:ftpout1=ftpout,8,* \
COMMENT:"Avg.bits in" \
VDEF:sumftpin=ftpin,TOTAL \
VDEF:maxftpin1=ftpin1,MAXIMUM \
VDEF:minftpin1=ftpin1,MINIMUM \
VDEF:avgftpin1=ftpin1,AVERAGE \
VDEF:lastftpin1=ftpin1,LAST \
GPRINT:lastftpin1:"Last=%.1lf %sb" \
GPRINT:minftpin1:"Min=%.1lf %sb" \
GPRINT:maxftpin1:"Max=%.1lf %sb" \
GPRINT:avgftpin1:"Avg=%.1lf %sb" \
GPRINT:sumftpin:"Sum=%.1lf %sB\l" \
COMMENT:"Avg.bits out" \
VDEF:sumftpout=ftpout,TOTAL \
VDEF:maxftpout1=ftpout1,MAXIMUM \
VDEF:minftpout1=ftpout1,MINIMUM \
VDEF:avgftpout1=ftpout1,AVERAGE \
VDEF:lastftpout1=ftpout1,LAST \
GPRINT:lastftpout1:"Last=%.1lf %sb" \
GPRINT:minftpout1:"Min=%.1lf %sb" \
GPRINT:maxftpout1:"Max=%.1lf %sb" \
GPRINT:avgftpout1:"Avg=%.1lf %sb" \
GPRINT:sumftpout:"Sum=%.1lf %sB\l" \
AREA:ftpin1#00FF00:"IN" \
LINE1:ftpout1#FF0000:"OUT\l" \
COMMENT:"Last update at `date '+%a %b %d %H-%M-%S'`" \
2>&1 > /dev/null
------------
add to crontab (period 1 minute)
#!/bin/sh
#/var/rrdtool/script/network_usage_update_rrdtool.sh
/var/rrdtool/script/network_usage.sh
/var/rrdtool/script/network_usage_graph.sh