Hlavní navigace

Prechádzame na RRDTOOL

Milan Gigel

Softwarový prostriedok MRTG pre tvorbu grafických prehľadov sa teší širokej popularite administrátorov. Postupom vývoja sa však usúdilo, že má limitácie v počte zobrazovaných premenných v časových radoch, ako aj v možnosti ich grafického stvárnenia, tak tvorcovia už dávnejšie začali pracovať na projekte RRDTOOL, ktorý má ukončením rady MRTG2 s nástupom MRTG3 do značnej miery zmeniť prístup k danej problematike.

Nová rada MRTG3 má byť celá založená na RRDTOOL, takže je lepšie sa do prechodu pustiť už teraz a vychutnať si široké možnosti tohto nástroja priamo vo svojom monitorovacom systéme. Na základe viacerých žiadostí čitateľov root.cz sa budeme tejto problematike v tomto miniseriáli venovať.

Dnes si ukážeme na jednoduchom príklade logiku, ktorou tento nástroj pracuje, a v ďalších častiach si presne zdokumentujeme jednotlivé možnosti a ukážeme si na praktických príkladoch jednotlivé možnosti použitia a nové formy stvárnenia, ako aj vyhodnocovanie.

Prvou zmenou oproti mrtg je prístup k spracovaniu. Spracovanie v podstate pozostáva z prvotného vytvorenia Round Robin databázy (z toho vznikol aj názov RRDTOOL), následne prichádza cyklické plnenie databázy údajmi v časovom rade a následne nezávisle od plnenia na základe požiadavky tvorba grafického výstupu s možnosťou špecifikovania časového rozsahu. Nie je tomu teda tak, ako pri mrtg, kde sa zber údajov automaticky spájal s tvorbou grafov, ale sú to dve samostatné činnosti. Ďalšou zmenou je zadávanie hodnôt aj s časovým údajom vo formáte timestamp. Možno vás prekvapí, že zmizli staré známe konfiguračné súbory, takže plnenie je nutné obstarať vlastnými skriptami. Vďaka knižniciam pre perl to nie je problémom a po prvom pokuse na modeli uvidíte, že je to úplne jednoduché. Na základnej konštrukcii je možné stavať ľubovoľné grafické aplikácie, takže hor sa do práce.

Po stiahnutí z domovskej stránky a skompilovaní, ktoré by malo prebehnúť na strojoch, kde už predtým bolo mrtg úspešne inštalované, bezproblémovo, si vytvoríme prvý modelový skript, ktorý nám bude do vytvorenej databázy ukladať časy odozvy pri pingovaní testovacieho hosta v sieti a pri každom zbere nových dát vytvorí grafické stvárnenie. Modelový skript bude vyzerať nasledovne:

#! /usr/bin/perl

  use lib qw( /rrdtool/perl-shared/blib/lib /rrdtool/perl-shared/blib/arch );
  use lib qw( /usr/local/rrdtool-1.0.33/lib/perl /rrdtool/lib/perl );
  use RRDs;

  my $start=time;
  my $rrd=   "/home/httpd/mrtg.domena.sk-443/html/rrdtool/test/pingtest.rrd";
  my $name = "/home/httpd/mrtg.domena.sk-443/html/rrdtool/test/pingtest.png";

  if (not -f $rrd){
  RRDs::create ($rrd, "--start",$start-1, "--step",300,
          "DS:pingtime:GAUGE:600:U:U",
          "RRA:AVERAGE:0.5:1:200",
  );
  my $ERROR = RRDs::error;
  die "$0: unable to create `$rrd': $ERROR\n" if $ERROR;
  };

  my $t;
  $t=`ping -c3 111.111.111.111 | grep round-trip|awk
    '{\$c=split(\$4,i,"/");print i[1]}'`;

  RRDs::update $rrd,"$start:$t";

  RRDs::graph "$name",
    "--title", "Demo ping prehladu",
    "--start", "now-1d",
    "--end", "now",
    "--imgformat","PNG",
    "--width=600",
    "--height=300",
    "DEF:a=$rrd:pingtime:AVERAGE",
    "LINE2:pingtime#00b6e4:real",
    "COMMENT:Aktuálna hodnota odozvy=$t",
  ;
  if ($ERROR = RRDs::error) {
    print "ERROR: $ERROR\n";
  };

Ako vidíte, jeho funkcia je jednoduchá. Máme dve premenné $rrd a $name, v ktorých máme uložené názov RRD databázy a názov výsledného grafického súboru. RRDTOOL sprievodné html dokumenty nevytvára, ako tomu bolo pri MRTG, texty je možné vkladať priamo do generovaného grafického súboru. Nasleduje kontrola existencie databázy. Ak neexistuje, vytvoríme si ju. V tomto prípade s jednou premennou s názvom pingtime, pre ktorú sa bude generovať päťminútová priemerná hodnota. Nasleduje získanie aktuálnej hodnoty odozvy a jej uloženie do premennej $t. Na rade je zápis do databázy. Všimnite si že dáta sa zapisujú vo formáte time:premenná1:pre­menná2:premen­ná3:…, takže je možné do databázy plniť údaje aj v dávkach z rôznych logových súborov, vždy však v časovom slede. Nakoniec prichádza na rad tvorba grafického výstupu, kde môžeme mnohými parametrami ovplyvňovať výsledok. V príklade použijeme nadpis, časový rozsah za posledných 24 hodín, čo je možné ľubovoľne špecifikovať, výsledný formát súboru (podporované sú .gif a .png), veľkosť výsledného obrázku, a premennú, ktorej graf sa má vytvoriť. My máme iba jednu, ktorú zobrazíme ako líniu hrúbky 2 s legendou umiestnenou pod grafom. Škálovanie osi hodnôt necháme pre automatickú definíciu v závislosti na hodnotách. Do komentára si umiestnime aktuálnu hodnotu odozvy.

Pri spúšťaní v crone v 5 minútovom intervale môže výsledok vyzerať nasledovne:

Graf

A máme za sebou úspešný prvý príklad na ktorom sme si ukázali, že RRDTOOL, ktorý vypadá na prvý pohľad oproti MRTG zložito, je v podstate jednoduchý. Nabudúce si vysvetlíme jednotlivé voľby, ktoré máme k dispozícii a poukazujeme si mnohé praktické využitia, ktoré v MRTG nebolo možné realizovať, ako napríklad grafické stvárnenie priemernej, maximálnej a minimálnej hodnoty, súčtovanie jednotlivých hodnôt čiastkových premenných, detekciu a stvárnenie nezistenej hodnoty v časových úsekoch, ako aj spoluprácu s vyhodnocovaním prevádzky postfix mail servera.

Našli jste v článku chybu?

30. 11. 2010 0:03

Zdravim. Funguje pouze na pul :( Nevykresluje body grafu - ani kdyz poustim rucne v 5ti minutovych intervalech (prava root). Ale dole se ukazuje jak dlouhy byl ping. (Aktualni hodnota odozvy=2.804). Na ose Y mam pouze hodnoty do 1. Jak aby se zobrazily hodnoty vetsi - treba do 5???

Diky

5. 9. 2006 12:47

ghost (neregistrovaný)
no a nevi nekdo co s timhle...?
/root/rrd/pok: line 3: syntax error near unexpected token `('
/root/rrd/pok: line 3: ` use lib qw( /rrdtool/perl-shared/blib/lib /rrdtool/perl-shared/blib/arch );'

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

DigiZone.cz: TV Philips a Android verze 6.0

TV Philips a Android verze 6.0

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo