All pastes #1327127 Raw Edit

RRD tool

public text v1 · immutable
#1327127 ·published 2009-02-04 14:32 UTC
rendered paste body
creating 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