Hlavní navigace

Prechádzame na RRDTOOL (6)

Milan Gigel

V minulých častiach sme si ukázali mnohé praktické využitia vizualizačného nástroja pre zobrazovanie hodnôt v časových radoch. Ostala nám ešte jedna posledná téma a to práca s protokolom SNMP, ako tomu bolo pri primárnom určení nástroja MRTG.

Primárna podpora SNMP v balíku RRDTOOL implementovaná nie je. Preto je potrebné, aby sme zber dát zabezpečili nejakým externým prostriedkom, ktorý by túto prácu vykonal. Najčastejšie nás zaujíma grafické vyhodnocovanie trafficu na príslušných sieťových rozhraniach serverov a routerov v nami spravovanej sieti.

Pre jednoduchý zber nám bohaté poslúži nástroj z balíka snmp-utils z názvom snmpget. Jednoduchosť MRTG vymizá, avšak pri základnej znalosti SNMP nie je problémom danú situáciu riešiť. Vopred je potrebné v príslušnom MIB súbore (alebo prostredníctvom nástroja snmpwalk) zistiť si príslušný OID identifikátor. Jeho zistenie by malo byť bezproblémové, je však viac ako vhodné overiť si, či vrátené hodnoty skutočne vyjadrujú požadovaný údaj. V našom prípade si vytvoríme graf vyjadrujúci tok dát cez rozhranie e0 routera Cisco 2500.

V našom prípade bude počet dát pretekajúci týmto rozhraním v OID .iso.3.6.1.2.1­.2.2.1.10.1 pre dáta tečúce dnu a v .iso.3.6.1.2.1­.2.2.1.16.1 pre dáta tečúce rozhraním von. Následne, keď už príslušné identifikátory OID máme k dispozícii, môžeme uskutočniť jednoduchým spôsobom ich načítanie. Pri použití príslušných parametrov pre zjednodušenie spracovania a následnou extrakciou pomocou awku dostaneme k dispozícii požadované hodnoty vyjadrujúce kumulovanú hodnotu pretečených dát v bajtoch za celkový uptime. V našom prípade to môže vyzerať nasledovne:

#snmpget -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.10.1|
  awk '{printf $2}'
584584574
#snmpget -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.16.1|
  awk '{printf $2}'
452458812

Z tohto budeme vychádzať pri tvorbe modelového skriptu pre ich spracovanie. V
princípe môže skript 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/rrdtool.domena.sk-443/html/host.rrd";
my $name = "/home/httpd/rrdtool.domena.sk-443/html/host.png";

if (not -f $rrd){
RRDs::create ($rrd, "--start",$start-1, "--step",60,
          "DS:in:COUNTER:180:U:U",
          "DS:out:COUNTER:180:U:U",
          "RRA:AVERAGE:0.5:1:3600",
          "RRA:MIN:0.5:1:3600",
          "RRA:MAX:0.5:1:3600",
);
};

my $ERROR = RRDs::error;
die "$0: unable to create `$rrd': $ERROR\n" if $ERROR;


$in=`snmpget -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.10.1|
  awk '{printf \$2}'`+0;
$out=`snmpget -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.16.1|
  awk '{printf \$2}'`+0;

$date=`date`;

print "$start:$in:$out";

RRDs::update $rrd,"$start:$in:$out";

my $ERROR = RRDs::error;
die "$0: unable to create `$rrd': $ERROR\n" if $ERROR;

$in=int($in/1024/1024);
$out=int($out/1024/1024);

RRDs::graph "$name",
  "--title", "Prehlad SNMP trafficu",
  "--start", "now-1d",
  "--end", "now",
  "--imgformat","PNG",
  "--width=600",
  "--height=150",
  "--step=300",
  "DEF:in=$rrd:in:AVERAGE",
  "DEF:out=$rrd:out:AVERAGE",
  "CDEF:gout=0,out,-",
  "CDEF:grin=in,8,*",
  "CDEF:grout=gout,8,*",
  "AREA:grin#d60000:Traffic in total\\: $in MB\\r",
  "AREA:grout#00d600:Traffic out total\\: $out MB\\r",
  "COMMENT:Generovane $date ",
;

if ($ERROR = RRDs::error) {
  print "ERROR: $ERROR\n";
};

Ako v predchádzajúcich príkladoch na začiatku definujeme názov RRA archívu a
výstupného grafického súboru, za ktorými nasleduje v prípade neexistencie RRA
archívu jeho vytvorenie. Všimnite si, že vstupné premenné je potrebné pre
tento účel nadefinovať ako typ COUNTER pre zabezpečenie automatického výpočtu
aktuálnej hodnoty za sledovaný časový úsek, v našom prípade 60 sekúnd.
Nasleduje zber príslušných dát pomocou snmpwalk a ich zápis do RRA archívu. Do
premenných $in a $out si uložíme celkový objem pretečených dát, ktorý pre
rýchlejšiu čitateľnosť pre dosahované veľké objemy premeníme na MB. Môžeme sa
teda pustiť do tvorby grafu samotného. Prostredníctvom DEF: si načítame pre
každý časový úsek hodnotu prietoku a prostredníctvom CDEF definícií preklopíme
prvotne odchádzajúce dáta na zápornú časť osi y a upravíme pre výpis.
Nasleduje vykreslenie AREA grafov pre obe veličiny s legendou vyjadrujúcou
celkový objem pretečených dát od posledného nulovania counterov a graf je na
svete. Výsledok môže vyzerať nasledovne:

Graf - větší obrázek

Ako vidno prostredníctvom tohto mocného nástroja je možné graficky zobrazovať ľubovoľné časové rady pri v podstate neobmedzenom počte sledovaných veličín pri možnosti presnej definície časového rámca. Uplatnenie je teda viac ako široké.

Našli jste v článku chybu?

4. 4. 2002 10:17

Vena (neregistrovaný)

Resim problem, jak jednou vytvorenou (create) databazi pozmenit, abych neznicil jiz ulozena data.
Priklad:
chci v jednom grafu kumulativne zobrazovat prenos dat z jednotlivych web serveru tak, abych videl i soucet prenosu. Jasne, to zvladnu. Ale jak pridat po nejake dobe do grafu dalsi web? Je to dalsi sledovana hodnota. Kdyz smazu databazi a vytvorim znovu, prijdu o historii. Kdyz vytvorim dalsi databazi, jak zobrazim v grafu data ze dvou databazi? Nejaky napad?



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

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

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: V restauraci bez cigaret? Sněmovna kývla

V restauraci bez cigaret? Sněmovna kývla

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

Jmenuje se Janina a žije bez cukru

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

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

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

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

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

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

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

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

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

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

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ů“

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

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

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

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?