A rövid bevezetés rrdtool - pöttyök és konzolok blog

Az előző bejegyzésben már említettem, hogy collectd alapértelmezett tárolja az összegyűjtött adatok segítségével rrdtool. A kimenet egy pár .rrd fájlok - egy minden metrikus - és akkor tehetik ugyanazt rrdtool. RRD fájlok nem olyan gyakran úszott beszélgetések a kávéfőző, sőt még mindig rrdtool eszköz, így nem azonnal világos, hogy miért collectd használja, és nem valami CSV.

Kiderült, hogy az okok a hiánya.

Mi rrdtool

Rrdtool - egy kis segédprogram, amely nem a csodálatos három dolgot:

  1. Hoz létre gyűrűs adatbázis (Round-Robin adatbázisok, RRDs),
  2. írja az adatokat, hogy azokat,
  3. és létrehozza diagramok alapján, hogy van rögzítve.

Mi a ciklikus adatbázis (RRD)

RRD olyan speciális adatbázis, amely kiindulva egy bizonyos ponton, írja be az új értékeket át a régieket. Például, ha a bázis feltételezzük, hogy tárolja 7 nap adatai alapján, a nyolcadik napon van írva az elsőre, a kilencedik - a tetején a második, és így tovább.

A tárolási rendszer mutatókat csak egy áldás. Például, ritkán Vajon milyen változatos másodpercenként CPU évvel ezelőtt. Ma és tegnap - érdekes. Bármilyen órás átlagértékek az utóbbi hetekben - túl jól. Még az átlagos terhelése az elmúlt évben a nap néha érdekes nézni. De minden, ami egy idősebb, és - kinek kell ez?

A rrdtool éppen az ilyen időben korlátozott, és levéltárak pontosság és éles. Ezen túlmenően, annak a ténynek köszönhető, hogy az időzítés és a pontosság kódolt, archív mérete ismert előre, hogy meglepi túlcsordulás lemez nem fog megtörténni.

Készítsen egy kör alakú bázis (RRD)

Létrehozásához RRD a rrdtool szüksége van egy kis fekete mágia, de ha egyszer megérteni, akkor minden megy simán. Azt hiszem, azonnal meg kell kezdenie, hogy felkészítse a csapatot, majd megérteni, hogy miért is működik:

Az első sor teljesen világos -, hogy hozzon létre egy úgynevezett cpu.rrd. A mi esetünkben ez a ciklikus tároló adatbázis processzor mutatókat. A következő paraméter - - 10. lépés - meghatározza, hogy milyen gyakran fogunk írni egy új adatot. Ebben az esetben - minden tizedik másodpercben. Ha az adatok jön előbb vagy utóbb, rrdtool interpolálja az értékeket, és összhangba hozza őket egy tíz határokat.

Az utolsó két sor írja le az adatforrás és az archív, amelyben azokat tárolják.

Az adatok forrása (adatforrás, DS)

DS paraméter leírja az adatforrást. Mi ő, még nem jelenti azt, hogy az adatok kerülnek mentésre - megköveteli fájlokat. És egy adatbázisban lehet több adatforrás.

A lehetőség - DS. cpu. Szelvény. 20. 0. 100 - szó szerint azt jelenti, a következő:

  1. Hozzon létre egy adatforrást (DS)
  2. címmel cpu
  3. és a mérőt.
  4. Ha 20 másodpercen belül (szívverés intervallum) az új adatok nem érkeznek - folyamatosan definiált.
  5. Az értékek között változhat 0
  6. és 100.

NYOMTÁVÚ típus megmondja rrdtool értelmezni a bejövő értékek „ahogy van”. Vannak olyan COUNTER nyernek, és abszolút tartotta rrdtool nem számít, és a sebesség, amellyel megváltoztathatja (hogy az aktuális érték, kivonni az előző, megosztottságot - lépés). A lépés - lépésre. szívverés-paraméter interpoláció és a beépített 10 mp az adatbázisban jelenik meg egy új értéket, akár tetszik, akár nem. Ezt az értéket nevezzük elsődleges adatok pont (elsődleges adatok Point, PDP)

Ciklikus mentés (Round-robin archívum, RRA)

RRA - ezúttal ablak összesített adatok. Mint abban az esetben a DS, az adatbázis is több. Az egyetlen archív RRA. Átlag. 0.5. 6. 120 áll, mint a következők:

  1. Tedd ciklikus archív (RRA)
  2. hossza 120 elemek,
  3. amelyek mindegyike az átlagos (átlag)
  4. 6 elsődleges adatok pont.
  5. Ha több, mint fele (> 0,5) értékek a hat - UNDEFINED, az archív is megy határozatlan.

Hogy lesz egy fájl tárolja a percenként (10 másodperc * 6) Átlagos CPU kihasználtság értékei az elmúlt két órában (10 másodperc * 6 * 120). Ennek egyik eleme az úgynevezett összevont archív adatok pont (konszolidált adatok Point, CDP) és az átlagos - megszilárdítása funkció (konszolidáció funkció, CF). Elsődleges és konszolidált feltételek kapcsolódnak, mint ez:

ÁTLAG Ezen kívül vannak más konszolidáló funkciók: MIN, MAX, és az utolsó.

Hozzátéve adatok RRD

Ha új adatokat egy ciklikus bázist is megy keresztül rrdtool. Mivel az idő befolyásolja, hogyan és hol tárolja az értéket, meg kell átvinni őket. Például, akkor hozzáadott értéket a label „most”:

Amellett, hogy a numerikus értékeket az adatbázisban, akkor mentse az „U” - határozatlan.

Bár az adatok és felveheti a kezét a parancssor lesz ésszerű, ha ez nem egy script, vagy egy másik program.

Létrehozása grafikonok RRD

rrdtool nem csak tárolja az adatokat, hanem hogy dolgozzon. A paranccsal létrehozhat grafikonokat kaphatunk bemenetére millió lehetőségeket. de a demo elég csak néhány alapvető.

Az Ubuntu virtuális collectd hogy már dolgozik néhány napig, ami lehet, hogy egy falka RRD fájlok: cpu-system.rrd, cpu-user.rrd és hasonlók. Ahhoz, hogy egy normális menetrend az első két kép, elég egy ilyen parancsot:

Készítsen CPU grafikon

Hello.
Segíts, kérlek értsd: hibaüzenetet kapok, ha a $ res = rrd_graph ($ file, $ options) -> «Call to undefined function rrd_graph ()»? A rrd_error nincs hiba, rrd_fetch teljesíti tökéletesen, de rrd_graph nem akar dolgozni. Mauger adni, hogy rrd_graph nedoustanovilsya néhány csomag? Vagy a jogot a mappát a fájlok rrd baj? köszönöm

Üdvözlet!
PHP nem én profilom, így nem valószínű, hogy segítsen. De azt fel a problémát a továbbított rrd_graph érveket, nem a hiányzó csomagokat. A dokkok nincsenek további függőségek és Veremtúlcsordulás valaki már ugyanaz volt a probléma rrd_xport, mert a $ opciók a megfelelő méretű, hogy a «Call to undefined function» lehet dobni különböző okok miatt. Az elképzelés az, hogy menjenek, grafikon kell ugyanazokkal a paraméterekkel, így ha a lekérés terhelés, a $ options helyesek, és a problémát meg kell valahol a $ file. Lehet, hogy nem rendelkezik engedéllyel a felvételt, vagy valamilyen módon köztes mappa nem jön létre. Akkor is kísérletezni a formátum a kimeneti kép: ha PNG esik, lehet, SVG út, majd visszatérünk a kihagyott implicit függőségeket.
Valami ilyesmi.

Hello. Lehet, hogy valaki jól jön: Megmutattam a hiba Call to undefined function rrd_graph a sorban, ahol hívtam ezt a funkciót. A PHP egy funkció get_defined_functions, így ha hívja print_r (get_defined_functions); exit ();. például az index fájlt, akkor úgy tűnik, minden PHP-funttsii és ha nem látjuk őket rrd_graph, az a baj a beállításokat a szerver. Volt minden, de rrd_graph 🙂 az igazság nem tudom pontosan mi a főnökök be a szerveren - mint például, hogyan kell állítani a baj rrdtool, rebutnuli szerveren, és működött. Nos, ha ez a funkció -, akkor valóban probléma a lehetőségeket.

Hmm, titokzatosan. De kösz a megosztást. Már gondolkodtam a programozási nyelvek és a hiányosságokat a világ, eszébe jutott, hogy a legutóbbi fogási megfoghatatlan NuGet csomag Compression for .NET alkalmazások: minden rendben van össze, de azonnal kiesett, amikor az alkalmazás futtatásához RuntimeExeption, Compresison.ZipFile nem található. A sorrend nem létezik sehol.