Pogledali smo si prikaz podatkov, tukaj pa se bomo poglobili v shranjevanje podatkov za opravljanje dolgoročnih analiz. Podatke bomo shranjevali v RRD ciklično bazo, kjer bodo primerno shranjeni za nadaljno obdelabo. Instalacijo RRD orodja smo si ogledali tule.
|
Za začetek ustvarimo mapo. v kateri bomo hranili podatke "mkdir /home/vp/ws2300_data". Baze bomo najlaže ustvarili s pomočjo skripte, ki jo lahko snamete tukaj. Skripto skopirajte v pravkar ustvarjeno mapo in ji spremenite atribut x, da bo postala izvršna (executable). Ukaze v skripti lahko prilagodite svojim potrebam, prav tako poti.
Pozor! Če poženete skripto v mapi z bazami, ki že vsebujejo podatke bodo le ti izbrisani. Da bi bila zagotovljena vsaj mala zaščita je v 2. vrstici vpisano "exit 0" kar povzroči izhod iz skripte takoj na začetku. Za ustvrjanje datotek ukaz zakomentirajte ali izbrišite. |
![]() |
| Poglejmo si malo definicijo baze za temperaturo. Za ostale baze so definicije podobne, natančna navodila pa boste našli tule. |
rrdtool create Tout.rrd --step 300 \"rrdtool create" je ukaz za ustvarjanje nove baze, "Tout.rrd" je ime naše nove baze. "--step 300" parameter pa določi, da se bodo podatki vpisovali vsakih 300 sek (5 minut). Povratna poševnica (backslash) na koncu vsake vrstice povzroči izničenje prehoda v novo vrstico. Celoten ukaz bi namreč moral biti samo v eni vrstici, nakar bi bila programsa koda zelo nepregledna, zato se uporablja ta trik. |
DS:Tout:GAUGE:360:-35:70\Ta vrstica definira prvo podatkovno skupino (DataSet) takole: - Tout = ime skupine podatkov - GAUGE = tip podatkov (za izmerjene vrednosti vedno GAUGE) - 360 = čas čakanja na podatek (v sek), ko preteče ta čas, se vpiše v bazo izpad podatka - -35:70 = spodnja in zgornja meja podatka. Podatek ki se nahaja izven teh meja, je neveljaven. Za ostale definicije velja podobna analogija. |
RRA:AVERAGE:0.5:1:600000Ta vrstica pa definira končno podobo baze (RoundRobinArchive) - AVERAGE = način vnosa (average = povprečje). Za naš primer: Izmed vseh podatkov, ki pridejo v bazo v obdobju 5 minut se izračuna povprečna vrednost, ki se na koncu vnese v bazo. Če bi tukaj navedli npr. MAX bi se v bazo vpisal podatek z najvišjo vrednostjo. - 0.5 = hitrost sprejemanja podatkov - 1 = število veljavnih podatkov - 600000 = stevilo zapisov v bazi (pri vnosu vsakih 5 minut je to cca 5 let) |
| Poženemo skripto s "./creatb.sh" in v naši mapi se ustvarijo baze skupne velikosti cca 129 MB. |
| Baze smo ustvarili, sedaj pa jih moramo samo še polniti s podatki. Podatke bomo vnašali vsako minuto, RRD pa nam bo iz 5 -ih zaporednih podatkov izračunal povprečje in ta podatek vnesel v bazo. Podatek se v bazo vnese s trenutno časovno znamko, ki je dokonča in je ni mogoče spreminjati. Podatki so dosegljivi preko te znamke. |
| Za vpis podatkov v baze lahko uporabimo tole skripto. Kličemo jo iz skripte ws2300_data_read.sh ki je bila opisana tule. Potrebo je le odkomentirati vrstico "#"$bin_path"logiraj.sh" (izbrišemo znak #). Pa si jo malo poglejmo: |
|
|
V drugi in tretji vrstici lahko popravimo poti do podatkov. V 8. vrstici je določena baza s katero trenutno operiramo. 11. - 18. vrstca: Tukaj prečitamo vrednosti in jih vpišemo v spremenljivke. Vrednosti smo predhodno prebrali s postaje in jih shranili v datoteko. Za preverjanje delovanja skripre lahko odkomentiramo nasledje vrstice, ki bodo izpisale vrednosti na zaslon. V 29. vrstici pripravimo podatke kot jih razume RRD in jih v 31. vrstici dejansko vpišemo v bazo. Postopek je ponovljen še za ostale baze. |
| Za preizkus shranjevanja podatkov, v ukazno vrstico vpišemo npr.: "rrdtool fetch /home/ws2300/ws2300_data/Tout.rrd AVERAGE". Če na koncu izpisa vidimo številke, ki se razlikujeo od 0, se podatki pravilno logirajo. Prvi podatek je viden komaj 5 minut po vnosu, zato je potrebno za preizkus malo počakati. |
Podatki se sedaj shranjujejo v baze. V naslednjem poglavju si bomo ogledali, kako lahko te podatke na različne načine prikažemo in preiskujemo. Baze kot so definirane rukaj, se napolnijo po cca. 5. letih, nakar najstarejši podatki začnejo padati ven, ko jih nadomeščajo novi. Priporočam, da baze vsaj enkrat na leto arhivirate na varno mesto.