RRDtool ja võrgugraafik

Allikas: Kuutõrvaja
Redaktsioon seisuga 31. jaanuar 2007, kell 12:43 kasutajalt Triinu (arutelu | kaastöö)

Paigaldame snmpd teenuse serverisse

cd /usr/ports/net-mgmt/net-snmp4
make install 
      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/snmpd.sh

Lisame rc.conf’i nagu õpetatakse read snmpd boodil startimiseks

snmpd_enable="YES"
snmpd_flags="-as -p /var/run/snmpd.pid"
snmptrapd_enable="YES"
snmptrapd_flags="-as -p /var/run/snmptrapd.pid"

Loome snmp.conf’i /usr/local/share/snmp/snmpd.conf

syscontact   jj
sysservices  76

rocommunity  public 127.0.0.1
rocommunity  avalik localhost

agentaddress  127.0.0.1

Installime rrdtool’i ehk programmi, mis hakkab meile graafikuid joonistama

pkg_add -r rrdtool v cd /usr/ports/net/rrdtool && make install clean

Teeme serverile reboodi, peale starti on snmp meil töötavana olemas

Testime snmp’d

snmpwalk -v 1 -c public localhost .1.3 käsul


Loome rrdtool’i jaoks andmefaili, kuhu ta hakkab liiklusekohta infot kirjutama, selleks käivitame käsu

rrdtool create liiklus.rrd --step 60 DS:in:COUNTER:60:0:U DS:out:COUNTER:60:0:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:30:336  RRA:AVERAGE:0.5:120:336 RRA:AVERAGE:0.5:1440:17280

mis tekitab meile faili liiklus.rrd

Võtame ja paigaldame nüüd kaks skripti vastavalt siis g.sh, mis kogub snmp käest info ning kirjutab selle faili liiklus.rrd ning liiklus.sh, mis andmetest loob graafiku.

Kohandame graafikuskriptis failirajad ning võrgukaardi numbri vastavalt endale parajaks. Selleks vaatame skripti liiklus.sh

#!/bin/sh

sin=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifInOctets.3`
sout=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifOutOctets.3`

echo Snmp in : $sin
echo Snmp out: $sout

/usr/local/bin/rrdupdate /home/kasutaja/rrdtool/liiklus.rrd N:$sin:$sout

kus kaks rida pööra tähelepanu ridadele sin ja sout :) ehk siis sisse ja välja data vastavalt

sin=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifInOctets.3`
sout=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifOutOctets.3`

number kolm (ifInOctets.3) tähistab siis võrgukaardi numbrit. Et teada saada, mis number oleks õige, kirjutame käsu

snmpwalk -v 1 -c public localhost | more

ning siis kerid alla kuni leiab read

IF-MIB::ifDescr.1 = STRING: fxp0
IF-MIB::ifDescr.2 = STRING: fxp1

ifDescr.1 on siis väline ja ifDescr.2 sisemine kaart

Nüüd paigaldame skripti g.sh, mis loob info järgi rrdtool’i andmefailis graafiku

#!/bin/sh
/usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-p2ev.png -a PNG -A -w 800 -h 300 -s -24h -v "Liiklus" \
   'DEF:in=/home/kasutaja/rrdtool/liiklus.rrd:in:AVERAGE' \
   'DEF:out=/home/kasutaja/rrdtool/liiklus.rrd:out:AVERAGE' \
   'CDEF:kbin=in,1024,/' \
   'CDEF:kbout=out,1024,/' \
   'CDEF:outg=out,-1,/' \
   'CDEF:background=in,POP,LTIME,7200,%,3600,LE,INF,UNKN,IF' \
   'CDEF:backgroundN=background,-1,*' \
   'AREA:background#F3F3F3' \
   'AREA:backgroundN#F3F3F3' \
   'HRULE:262144#FF0000' \
   'HRULE:131072#FF0000' \
   'HRULE:32768#FF0000' \
   'HRULE:-32768#FF0000' \
   'HRULE:-131072#FF0000' \
   'HRULE:-262144#FF0000' \
   'AREA:in#91ACF1' \
   'AREA:outg#FF9090' \
   'LINE1:in#767676' \
   'LINE1:outg#767676' \
   'GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB' \
   'GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j' \
   'GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB' \
   'GPRINT:kbout:AVERAGE:Keskmiselt välja\: %3.2lf KB\j'


/usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-n2dal.png -a PNG -A -w 800 -h 300 -s -168h -v "Liiklus" \
   'DEF:in=/home/kasutaja/liiklus.rrd:in:AVERAGE' \
   'DEF:out=/home/kasutaja/liiklus.rrd:out:AVERAGE' \
   'CDEF:kbin=in,1024,/' \
   'CDEF:kbout=out,1024,/' \
   'CDEF:outg=out,-1,/' \
   'CDEF:background=in,POP,LTIME,172800,%,86400,LE,INF,UNKN,IF' \
   'CDEF:backgroundN=background,-1,*' \
   'AREA:background#F3F3F3' \
   'AREA:backgroundN#F3F3F3' \
   'HRULE:262144#FF0000' \
   'HRULE:131072#FF0000' \
   'HRULE:32768#FF0000' \
   'HRULE:-32768#FF0000' \
   'HRULE:-131072#FF0000' \
   'HRULE:-262144#FF0000' \
   'AREA:in#91ACF1' \
   'AREA:outg#FF9090' \
   'LINE1:in#767676' \
   'LINE1:outg#767676' \
   'GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB' \
   'GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j' \
   'GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB' \
   'GPRINT:kbout:AVERAGE:Keskmiselt välja\:%3.2lf KB\j'

/usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-kuu.png -a PNG -A -w 800 -h 300 -s -672h -v "Liiklus" \
   'DEF:in=/home/kasutjaa/liiklus.rrd:in:AVERAGE' \
   'DEF:out=/home/kasutaja/liiklus.rrd:out:AVERAGE' \
   'CDEF:kbin=in,1024,/' \
   'CDEF:kbout=out,1024,/' \
   'CDEF:outg=out,-1,/' \
   'CDEF:background=in,POP,LTIME,1209600,%,604800,LE,INF,UNKN,IF' \
   'CDEF:backgroundN=background,-1,*' \
   'AREA:background#F3F3F3' \
   'AREA:backgroundN#F3F3F3' \
   'HRULE:262144#FF0000' \
   'HRULE:131072#FF0000' \
   'HRULE:32768#FF0000' \
   'HRULE:-32768#FF0000' \
   'HRULE:-131072#FF0000' \
   'HRULE:-262144#FF0000' \
   'AREA:in#91ACF1' \
   'AREA:outg#FF9090' \
   'LINE1:in#767676' \
   'LINE1:outg#767676' \
   'GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB' \
   'GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j' \
   'GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB' \
   'GPRINT:kbout:AVERAGE:Keskmiselt välja\:%3.2lf KB\j'

/usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-aasta.png -a PNG -A -w 800 -h 300 -s -8064h -v "Liiklus" \
   'DEF:in=/home/kasutaja/liiklus.rrd:in:AVERAGE' \
   'DEF:out=/home/kasutaja/liiklus.rrd:out:AVERAGE' \
   'CDEF:kbin=in,1024,/' \
   'CDEF:kbout=out,1024,/' \
   'CDEF:outg=out,-1,/' \
   'HRULE:262144#FF0000' \
   'HRULE:131072#FF0000' \
   'HRULE:32768#FF0000' \
   'HRULE:-32768#FF0000' \
   'HRULE:-131072#FF0000' \
   'HRULE:-262144#FF0000' \
   'AREA:in#91ACF1' \
   'AREA:outg#FF9090' \
   'LINE1:in#767676' \
   'LINE1:outg#767676' \
   'GPRINT:kbin:LAST:Viimati sisse \:   %3.2lf KB' \
   'GPRINT:kbout:LAST:Viimati välja \:   %3.2lf KB\j' \
   'GPRINT:kbin:AVERAGE:Keskmiselt sisse\: %3.2lf KB' \
   'GPRINT:kbout:AVERAGE:Keskmiselt välja\:%3.2lf KB\j'

Muudame vastavalt leiduvad rajad failis õigeks. Rajad, mida vaja muuta on

/usr/local/bin/rrdtool graph /home/kasutaja/public_html/g-p2ev.png -a PNG -A -w 800 -h 300 -s -24h -v "Liiklus" \
   'DEF:in=/home/kasutaja/rrdtool/liiklus.rrd:in:AVERAGE' \
   'DEF:out=/home/kasutaja/rrdtool/liiklus.rrd:out:AVERAGE' \

Esimene on graafikupildi asukoht ja kaks teist on liiklus.rrd ehk rrdtooli andmebaasifaili asukoht.

Lisame cron’i graafikuloomis skriptide käivitamise, avame /etc/crontab, lisame read

*/1     *       *       *       *       root    /usr/home/kasutaja/liiklus.sh > /dev/null
*/5     *       *       *       *       root    /usr/home/kasutaja/g.sh > /dev/null

Nagu näha, küsime snmp’ga infot ja lisame rrdtool’i andmebaasi seda iga minut, aga graafikud joonistame iga 5 minuti järel. Praegu on see halb, et korraga loome iga kord päeva, kuu, nädala ja aasta graafiku. Võib näiteks g.sh lüüa lahti kolmeks skriptiks, mida omakorda gron käivitab vastavalt kord päev, kord nädalas, kord aastas ;)

Tulemuseks saame neli pilti. Toome esile siin päevagraafiku.

G-p2ev.png

Loome mingi html faili, mis näitab tekitatud pilte


Kogu edasine info netis http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/