Erinevus lehekülje "RRDtool ja võrgugraafik" redaktsioonide vahel

Allikas: Kuutõrvaja
(Seadistus)
(Seadistus)
9. rida: 9. rida:
 
Paigaldame ka rakenduse '''RRDtool'''.
 
Paigaldame ka rakenduse '''RRDtool'''.
  
===Seadistus===
+
===Andmefaili loomine===
  
 
Kõige keerulisem osa RRDtooli juures on andmebaas, kus andmeid hoitakse. Järgmised parameetrid on väga olulised:
 
Kõige keerulisem osa RRDtooli juures on andmebaas, kus andmeid hoitakse. Järgmised parameetrid on väga olulised:
20. rida: 20. rida:
 
Loome andmefaili, kuhu salvestame võrguliikluse andmed. Selleks käivitamie järgmise käsu
 
Loome andmefaili, kuhu salvestame võrguliikluse andmed. Selleks käivitamie järgmise käsu
  
  rrdtool create liiklus.rrd     \
+
  rrdtool create liiklus.rrd \
   --start N                    \
+
   --step 300              \
   DS:in:COUNTER:600:U:12500000  \
+
   DS:in:COUNTER:600:U:U    \
   DS:out:COUNTER:600:U:12500000 \
+
   DS:out:COUNTER:600:U:\
   RRA:AVERAGE:0.5:1:600        \
+
   RRA:AVERAGE:0.5:1:288    \
   RRA:AVERAGE:0.5:6:700        \
+
   RRA:AVERAGE:0.5:6:336    \
   RRA:AVERAGE:0.5:24:775        \
+
   RRA:AVERAGE:0.5:24:372  \
   RRA:AVERAGE:0.5:288:797      \
+
   RRA:AVERAGE:0.5:288:365  \
   RRA:MAX:0.5:1:600            \
+
   RRA:MAX:0.5:1:288        \
   RRA:MAX:0.5:6:700            \
+
   RRA:MAX:0.5:6:336        \
   RRA:MAX:0.5:24:775            \
+
   RRA:MAX:0.5:24:372      \
   RRA:MAX:0.5:288:797
+
   RRA:MAX:0.5:288:365      \
  
 
Selle tulemusel tekib anmebaasi fail nimega '''liiklus.rrd'''. Nüüd natuke lähemalt, mida me siin tegime.
 
Selle tulemusel tekib anmebaasi fail nimega '''liiklus.rrd'''. Nüüd natuke lähemalt, mida me siin tegime.
  
'''DS:in:COUNTER:600:U:12500000''' tekitab andmevoo (muutuja nimega in), mis on COUNTER tüüpi, nõuab uuendust iga 600 sekundi tagant, mille minimaalne väärtus on teadmata(U) ning maksimaalne väärtus on 12500000 (bittides, mis oleks  umbes 1.490116119 MB/s"
+
'''DS:in:COUNTER:600:U:U''' tekitab andmevoo (muutuja nimega in), mis on COUNTER tüüpi, tekitab andmepunkti iga 600 sekundi tagant, mille minimaalne ja maksimaale väärtus on teadmata (U)
  
'''RRA:AVERAGE:0.5:1:600''' tekitab nädala keskmise (600 ühikut, iga uuenduse järel = 600 * 300 sekundit =
+
'''RRA:AVERAGE:0.5:1:288'''  
RRA:AVERAGE:0.5:6:700
 
RRA:AVERAGE:0.5:24:775
 
RRA:AVERAGE:0.5:288:797
 
  
 +
288 andmeühikut!
 +
1 (iga uuendus) * 300 sekundit (uuenduse samm) * 288 (andmepunkti) = 86400 sekundit
 +
86400 sekundit / 60 => 1440 minutit
 +
1440 minutit / 60 => 24 tundi
 +
 +
  RRA:AVERAGE:0.5:6:336    \
 +
  RRA:AVERAGE:0.5:24:372  \
 +
  RRA:AVERAGE:0.5:288:365  \
  
 
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.
 
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  
 
Kohandame graafikuskriptis failirajad ning võrgukaardi numbri vastavalt endale parajaks. Selleks vaatame skripti liiklus.sh  
 +
 +
===Andmete uuendamine===
  
 
<source lang=bash>
 
<source lang=bash>
78. rida: 85. rida:
  
 
ifDescr.1 on siis väline ehk fxp0 ja ifDescr.2 sisemine kaart fxp1
 
ifDescr.1 on siis väline ehk fxp0 ja ifDescr.2 sisemine kaart fxp1
 +
 +
===Graafikute loomine===
  
 
Nüüd paigaldame skripti g.sh, mis loob info järgi rrdtool’i andmefailis graafiku  
 
Nüüd paigaldame skripti g.sh, mis loob info järgi rrdtool’i andmefailis graafiku  
186. rida: 195. rida:
  
 
Esimene on graafikupildi asukoht ja kaks teist on liiklus.rrd ehk rrdtooli andmebaasifaili asukoht.
 
Esimene on graafikupildi asukoht ja kaks teist on liiklus.rrd ehk rrdtooli andmebaasifaili asukoht.
 +
 +
===CRON===
  
 
Lisame cron’i graafikuloomis skriptide käivitamise, avame /etc/crontab, lisame read  
 
Lisame cron’i graafikuloomis skriptide käivitamise, avame /etc/crontab, lisame read  

Redaktsioon: 18. aprill 2013, kell 13:12

Sissjuhatus

RRDtool on vabavaraline andmete hoidmise ja graafikute loomise vahend. See toetab mistahes arvulisi andmemassiive. Näiteks: võrguliiklus, temperatuur, protsessori kasutus, kõvaketta ruum, aktiivsed võrguühendused, failide arv kettal jms.

Install

Paigaldame serverisse SNMP teenuse. Täpsemalt on selle paigaldamisest juttu palas net-snmp.

Paigaldame ka rakenduse RRDtool.

Andmefaili loomine

Kõige keerulisem osa RRDtooli juures on andmebaas, kus andmeid hoitakse. Järgmised parameetrid on väga olulised:

1. kui tihti andmeid lisatakse [--step X] (samm on vaikimisi 300 sekundit)
2. muutujate nimed andmebaasis
3. kui pika aja kohta me infot andmebaasis hoiame

Esmalt teeme võrguliikluse andmebaasi, kus andmete uuendamine toimub iga 300 sekundi (5 minutit) tagant. Meil on vaja graafikut nii ööpäeva, nädala, kuu ning aasta jaoks.

Loome andmefaili, kuhu salvestame võrguliikluse andmed. Selleks käivitamie järgmise käsu

rrdtool create liiklus.rrd \
  --step 300               \
  DS:in:COUNTER:600:U:U    \
  DS:out:COUNTER:600:U:U   \
  RRA:AVERAGE:0.5:1:288    \
  RRA:AVERAGE:0.5:6:336    \
  RRA:AVERAGE:0.5:24:372   \
  RRA:AVERAGE:0.5:288:365  \
  RRA:MAX:0.5:1:288        \
  RRA:MAX:0.5:6:336        \
  RRA:MAX:0.5:24:372       \
  RRA:MAX:0.5:288:365      \

Selle tulemusel tekib anmebaasi fail nimega liiklus.rrd. Nüüd natuke lähemalt, mida me siin tegime.

DS:in:COUNTER:600:U:U tekitab andmevoo (muutuja nimega in), mis on COUNTER tüüpi, tekitab andmepunkti iga 600 sekundi tagant, mille minimaalne ja maksimaale väärtus on teadmata (U)

RRA:AVERAGE:0.5:1:288

288 andmeühikut!
1 (iga uuendus) * 300 sekundit (uuenduse samm) * 288 (andmepunkti) = 86400 sekundit
86400 sekundit / 60 => 1440 minutit
1440 minutit / 60 => 24 tundi
  RRA:AVERAGE:0.5:6:336    \
  RRA:AVERAGE:0.5:24:372   \
  RRA:AVERAGE:0.5:288:365  \

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

Andmete uuendamine

 #!/bin/sh
 
 # sisenevad bitid
 sin=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifInOctets.3`
 # väljjuvad bitid
 sout=`/usr/local/bin/snmpget -v2c -c avalik -Oqv localhost IF-MIB::ifOutOctets.3`
 
 # väljastame siseneva ja väljuva liikluse numbrid, lihtsalt ilu pärast ja kontrolliks
 echo Snmp in : $sin
 echo Snmp out: $sout
 
 # uuendame infoga liiklus.rrd faili
 /usr/local/bin/rrdupdate '''/home/kasutaja/rrdtool/'''liiklus.rrd N:$sin:$sout

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 siin näites võrgukaardi numbrit. Et teada saada, mis number oleks kasutada õ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 ehk fxp0 ja ifDescr.2 sisemine kaart fxp1

Graafikute loomine

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.

CRON

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/

Andkefailide konvert enne teisele arhidektuurile tõstmist

rrdtool puhul pole võimalik kasutada samu rrd faile nii 32 kui 64bitistel masinatel ja vahepeal tuleb need ümber konvertida ja taastada. Arendajate poolt arutatakse ka uue formaadi loomist mille puhul sarnaseid konvertimisi enam ei peaks tegema kuid hetkel seda ametlikus releasis veel pole.

Esimeses masinas konverdime kõik failid xml formaati järgneva skriptiga

#!/bin/sh
for g in $( ls /usr/local/var/rrdfailid ) ; do
 name=`echo $g | awk '{sub(/rrd/,"xml");print}'`
  echo $g
  echo $name
   rrdtool dump /usr/local/var/rrdfailid/$g /usr/local/var/rrdfailid/$name
done

Kopeerime failid üle teise arvutisse kus Kustutame esimesena eksisteerivad rrdfailid ja seejäärel loome neist uued rrdfailid.

#!/bin/sh
for g in $( ls /usr/local/var/rrdfailid ) ; do
 name=`echo $g | awk '{sub(/xml/,"rrd");print}'`
  echo $g
  echo $name
   rrdtool restore /usr/local/var/rrdfailid/$g /usr/local/var/munin/rrdfailid/$name
done

Ja seejärel võime eemaldada kopeeritud failid


Lingid

http://oss.oetiker.ch/rrdtool/

http://en.wikipedia.org/wiki/RRDtool