RRDTool
Az RRDTool egy meghatározott időszakról képes adatokat tárolni és ezeket grafikonon megjeleníteni. A tárolt adatok körbeforgó adatbázisban tárolódnak (RRD: Round Robin Database), ahol a legrégebbi adatot írja felül a legújabb. Így az adatbázis mindig ugyanakkora.
Fontos tudni, hogy az RRDTool nem képes összegyűjteni az adatokat. Az információt bizonyos időközönként kell beletölteni, ez történhet Cron-ból vagy akár a munin-nal (A munin működése) . Viszont, ha nem sok gépet szeretnénk monitorozni, vagy csak kevés jellemzőt figyelünk, akkor érdemesebb szkriptelni, mert így kevesebb erőforrást használunk fel.
Az erőforrás-gazdálkodás szempontjából fontos lehet az is, hogy ha gyakran és egyszerre többen nézzük a grafikonokat, akkor érdemes bizonyos időközönként ismételve generáltatni a képeket, egyéb esetben akár a php oldal is előállíthatja nekünk, amikor éppen szükség van rá.
A program egyszerű és ebből kifolyólag robusztus, de nem árt rendszeresen mentéseket készíteni az adatbázis állományokról.
A mentéseken kívül a program egyetlen kimeneti megjelenése a grafikon.
Tartalomjegyzék[elrejtés] |
1 Telepítés és használat
Jelenleg az RRDTool csomagját a legtöbb disztribúció tartalmazza. Így telepítése egyszerű:
apt-get install rrdtool
2 RRD adatbázis állomány elkészítése
Először alaposan át kell gondolni, hogy mit szeretnénk tárolni. Egy létező adatbázist kibővíteni jelenleg még nem lehet.
Hozzunk létre egy adatbázist, amiben a gépünk egyik ethernet interfészének ki- és bemenő forgalmát rögztjük.
rrdtool create localpc_traffic_eth0.rrd \ --step 300 \ DS:traffic_in:COUNTER:600:U:U \ DS:traffic_out:COUNTER:600:U:U \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:288:365 \ RRA:MAX:0.5:1:288 \ RRA:MAX:0.5:288:365
Az első paraméter a create, tehát létrehozás.
A második az rrd adatbázisállomány neve, amely 1-19 karakter hosszú lehet és [a-zA-Z0-9_] karaktereket tartalmazhat.
A --step értéke a legkisebb kezelt lépésközt adja másodpercben. Ez a feladattól függ, nekünk most elég az 5 perces lépésköz.
A DS (Data Source) vezeti be az adatforrásokat, paraméterei kettősponttal elválasztva. Az első az adatforrás neve, a második a típusa, a többi argumentum jelentése pedig a típustól függően változik. A típusok:
- GAUGE: egyszerű szám pl hőmérséklet, létszám, jel-zaj viszony... Paraméterei: heartbeat:min:max
- COUNTER: számláló, olyan folyamatosan növekvő értékek, amelyek csak a számláló túlcsordulása esetén csökkenhetnek. pl adatforgalom. Az értékek mennyiség/sec formában tárolódnak. Paraméterei: heartbeat:min:max
- DERIVE: Hasonló a counter-hez, de nincs túlcsordulás ellenőrzés. Paraméterei: heartbeat:min:max
- ABSOLUTE: A gyorsan túlcsorduló számlálók részére, amelyeket minden kiolvasás után nullázunk. Paraméterei: heartbeat:min:max
- COMPUTE:Házi feladat.
A típusoktól függő paraméterek magyarázata:
- Heartbeat: Két adabázis-frissítés között eltelt idő maximuma másodpercben. A heartbeat általában kétszerese a step-nek. Ha ennyi idő elteltével sem érkezik adat, akkor ismeretlen (Unknown) érték lesz letárolva, a grafikonon ez kihagyásként jelentkezik. Ha két adatfeltöltés között több lépésköz is kimaradt, de a heartbeat még nem telt le, akkor a program az előző és a legfrissebb adatból interpolál. Ezért úgy érdemes megválasztani az értéket, hogy a kisebb hibákat elfedje, de a nagy hibák kiderüljenek.
- Min: A minimális érték. U=Unknown
- Max: A maximális érték. U=Unknown . Ha min/max esetén a beírandó érték a megadott határokon kívül esik, akkor ismeretlen (Unknown) érték lesz letárolva. Pl forgalomszámlálásnál a szélsőértékek lehetnek a hálózati eszköz vagy kapcsolat által megszabott határok. A min és max értékek segítenek az RRDTool-nak ellenőrizni a friss értékek valósságát.
DS blokkból több is lehet, egymástól szóközzel elválasztva. Esetünkben kettő adatforrást tárolunk. A DS blokkok után következnek az RRA blokkok, amelyek az adatok eltárolását határozzák meg.
Az adatok eltárolásának a következő módjai vannak:
- AVERAGE: az adott lépésközben beírt adatok átlagát tárolja (nagyobb léptékű megjelenítés esetén is "szép" grafikont ad)
- MIN: az adott lépésközben beírt adatok maximumát tárolja
- MAX: az adott lépésközben beírt adatok minimumát tárolja
- LAST: az adott lépésközben beírt adatok utolsó értékét tárolja
A mód megadása után következik három érték:
- xff: értéke általában 0.5, a programot az ismeretlen értékek kezelésében befolyásolja
- steps: a lépésköz (--step) szorzója, ennyi időközönként tárolunk le egy adatot. Érdemes hozzáigazítani a grafikonhoz.
- rows: sorok száma, azaz a tárolt rekordok száma.
A mi esetünkben tároljuk az átlagot és a maximumot, 5*1 percenként 288 sort (5min*288=1 nap) és 5*288 percenként 365 sort (1nap*365=1 év). Természetesen a 365 érték nem fog szép éves grafikont adni pl 800 képpont szélesség esetén, ezért érdemes lehet gyakrabban és több sort tárolni, pl 0.5:100:1100. A két utolsó paraméter és a lépésköz szorzata adja az adatbázis körbefordulási idejét. Tehát 100*1100*300sec=382nap.