Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:03:contents:05 [2014/03/10 12:20]
alexandru.carp
saisp:labs:03:contents:05 [2014/04/05 12:08] (current)
mihai.carabas [05. [20p] Baze de date Round Robin (RRD)]
Line 5: Line 5:
 Dimensiunea acesteia este cunoscuta de la momentul creării, în funcție de numărul de tipuri de date colectate și de granularitatea acestora. După cum îi spune și numele, aceasta stochează datele într-un spațiu finit, iar când acel spațiu alocat este epuizat, datele inițiale se vor suprascrie. Înainte de suprascriere se face o ''​arhivare''​ a datelor suprascrise (de cele mai multe ori se folosește media aritmetică pe intervalul de timp respectiv). Dimensiunea acesteia este cunoscuta de la momentul creării, în funcție de numărul de tipuri de date colectate și de granularitatea acestora. După cum îi spune și numele, aceasta stochează datele într-un spațiu finit, iar când acel spațiu alocat este epuizat, datele inițiale se vor suprascrie. Înainte de suprascriere se face o ''​arhivare''​ a datelor suprascrise (de cele mai multe ori se folosește media aritmetică pe intervalul de timp respectiv).
  
-Utilitarul cu ajutorul căruia vom crea și popula bazele de date se numește ''​rrdtool''​. Acesta permite 3 operații: ''​create''​ (creare bază de date)''​update''​ (inserare valori bază de date) și ''​graph''​ (generează un grafic funcție de timp pe baza valorilor introduse).+Utilitarul cu ajutorul căruia vom crea și popula bazele de date se numește ''​rrdtool''​. Acesta permite 3 operații: 
 +  * ''​create''​ (creare bază de date) 
 +  * ''​update''​ (inserare valori bază de date) 
 +  * ''​graph''​ (generează un grafic funcție de timp pe baza valorilor introduse)
  
 Pe stația monitor instalăm utilitarul ''​rrdtool'':<​code bash> Pe stația monitor instalăm utilitarul ''​rrdtool'':<​code bash>
 root@monitor:​~#​ apt-get install rrdtool root@monitor:​~#​ apt-get install rrdtool
 </​code>​ </​code>​
-Pentru a crea o bază de date comanda ''​rrdtool create''​ primește următorii parametri:+Pentru a crea o bază de datecomanda ''​rrdtool create''​ primește următorii parametri:
   * timpul de început/​referință   * timpul de început/​referință
   * pasul cu care datele vor fi introduse în baza de date (la nivel de secundă)   * pasul cu care datele vor fi introduse în baza de date (la nivel de secundă)
Line 30: Line 33:
 </​code>​ </​code>​
 După cum se observă am creat 2 variabile de tipul ''​COUNTER''​ care se numesc ''​speedIn''​ și ''​speedOut''​ (pentru alte tipuri de variabile vezi [[saisp:​courses:​03|]]). Valoarea lor maximă este nespecficată (''​U''​ - undefined). Valoarea ''​10''​ reprezintă numărul de secunde cât așteaptă după date noi, iar dacă este depășit se inserează o valoarea specială ''​UNKNOWN''​ pentru a nu afecta mediile calculate. După cum se observă am creat 2 variabile de tipul ''​COUNTER''​ care se numesc ''​speedIn''​ și ''​speedOut''​ (pentru alte tipuri de variabile vezi [[saisp:​courses:​03|]]). Valoarea lor maximă este nespecficată (''​U''​ - undefined). Valoarea ''​10''​ reprezintă numărul de secunde cât așteaptă după date noi, iar dacă este depășit se inserează o valoarea specială ''​UNKNOWN''​ pentru a nu afecta mediile calculate.
-Tipul de arhivare configurat este ''​AVERAGE''​ și o dată la 2 valori, realizează media acestora după care vechile valori vor fi suprascrise. Sunt păstrate 60 astfel de medii, în final aceste 60 medii fiind suprascrise și ele. Timpul acoperit de această arhivare este de 10 minute (5secundă ​x 2 x 60).+Tipul de arhivare configurat este ''​AVERAGE''​ și o dată la 2 valori, realizează media acestora după care vechile valori vor fi suprascrise. Sunt păstrate 60 astfel de medii, în final aceste 60 medii fiind suprascrise și ele. Timpul acoperit de această arhivare este de 10 minute (5 secunde ​x 2 x 60).
  
-O altă arhivare configurată este dată media a 60 de valori (deci 300 de secunde), fiind ținute 12 de astfel de medii. Această arhivare acoperă ''​300secunde ​x 12 = 60 minute''​. Deci baza noastră de date ne poate oferi statistici ale traficului pe o interfațăde rețea la diferite nivele de granularitate (în ultimele 10 minute este calculată media la nivel de 10 secunde, iar în ultima oră este calculată media la 1 minut).+O altă arhivare configurată este dată media a 60 de valori (deci 300 de secunde), fiind ținute 12 de astfel de medii. Această arhivare acoperă ''​300 secunde ​x 12 = 60 minute''​. Deci baza noastră de date ne poate oferi statistici ale traficului pe o interfață de rețea la diferite nivele de granularitate (în ultimele 10 minute este calculată media la nivel de 10 secunde, iar în ultima oră este calculată media la 1 minut).
  
-Copiați și completați scriptul de mai jos pentru a obține valorile pentru variabilele ''​octetsIn''​ și ''​octetsOut''​. Acestea reprezintă ​ numărul de octeți (trimiși și primiți) de pe interfața ''​eth0''​ a stației ''​gateway''​(Hint:​ ''​snmpwalk'',''​IF-MIB::​ifInOctets''​ urmat de numărul instanței). Scriptul colectează numărul de octeți din 5 în 5 secunde și îl introduce în baza de date ''​target.rrd''​ (''​rrdtool update target.rrd $(date +%s):​inOctets:​outOctets''​):<​code>+Copiați și completați scriptul de mai jos pentru a obține valorile pentru variabilele ''​octetsIn''​ și ''​octetsOut''​. Acestea reprezintă ​ numărul de octeți (trimiși și primiți) de pe interfața ''​eth0''​ a stației ''​gateway''​ (**Hint**: ''​snmpwalk'',​ ''​IF-MIB::​ifInOctets''​ urmat de numărul instanței). Scriptul colectează numărul de octeți din 5 în 5 secunde și îl introduce în baza de date ''​target.rrd''​ (''​rrdtool update target.rrd $(date +%s):​inOctets:​outOctets''​):<​file bash in-out-octets>
 #!/bin/bash #!/bin/bash
  
 rm -rf target.rrd rm -rf target.rrd
  
-#obtinem data de inceput +Init timestamp. 
-data=$(date +%s)+timestamp=$(date +%s)
  
-#o facem multiplu de +Align timestamp to multiple of seconds. 
-data=$(($data/5*5)) +timestamp=$(($timestamp/5*5)) 
-data_init=$data+init_timestamp=$timestamp
  
 rrdtool create target.rrd \ rrdtool create target.rrd \
-         ​--start $data \+         ​--start $timestamp ​\
          ​--step 5 \          ​--step 5 \
          ​DS:​speedIn:​COUNTER:​10:​U:​U \          ​DS:​speedIn:​COUNTER:​10:​U:​U \
Line 54: Line 57:
          ​RRA:​AVERAGE:​0.5:​60:​12          ​RRA:​AVERAGE:​0.5:​60:​12
  
-for i in $(seq 1 24) +for i in $(seq 1 24)do 
-do+   sleep 5 
 +   ​timestamp=$(($timestamp + 5))
  
-sleep 5 +   ​outOctets=$(...) 
-data=$(($data + 5))+   ​inOctets=$(...)
  
-outOctets=$(...) +   rrdtool update target.rrd ​ $timestamp:​$inOctets:​$outOctets
-inOctets=$(...) +
- +
-rrdtool update target.rrd ​ $data:​$inOctets:​$outOctets+
 done done
  
-echo --start $data_init ​--end $data +echo --start $init_timestamp ​--end $timestamp 
-</code>+</file>
 <​solution -hidden> <​solution -hidden>
 <​code>​ <​code>​
saisp/labs/03/contents/05.1394446805.txt.gz · Last modified: 2014/03/10 12:20 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0