RRDTool (zkratka pro round-robin database tool) je v informatice opensource nástroj, který se zaměřuje na zpracování a ukládání časově závislých dat (například teplota, zatížení procesoru, síťový provoz a další). Tyto data jsou uložena v databázi typu round-robin, která má konstantní velikost v čase. RRDTool je nová generace nástroje MRTG, obsahuje také nástroje pro získání dat v grafické podobě.

Postup k vytvoření nové databáze a grafů editovat

  1. vytvoření prázdné databáze pomocí rrdtool create
  2. pomocí skriptu a/nebo cronu opakovaně přidávat data do databáze pomocí rrdtool update
  3. vytvořit, obvykle pomocí skriptu, jakkoliv modifikovaný graf pomocí rrdtool graph

Funkce editovat

Vytvoření databáze editovat

Funkce create vytvoří nový soubor s databází RRD. Takto vytvořená databáze je naplněna neznámými daty pro všechny vzorky.

Syntaxe k vytvoření databáze:

rrdtool create filename
[--start|-b start time]
[--step|-s step]
[--no-overwrite]
[DS:ds-name:DST:dst arguments]
[RRA:CF:xff:steps:rows]
  • filename je název souboru, který se nám vytvoří. Název by měl končit příponou .rrd, nástroj ale příjme jakýkoliv název souboru.
  • --start|-b start time určuje čas od 1.1.1970 UTC, kdy by měla být přidána první hodnota do databáze. Hodnoty přidané před tímto datem budou ignorována. Přednastavená hodnota je aktuální čas - 10 sekund.
  • --step|-s step určuje základní časový interval po kterém budou vkládána data do databáze. Přednastavená hodnota je 300 sekund.
  • --no-overwrite zajistí, že se již existující soubor se stejným názvem nepřepíše touto databází.
  • DS: Jedna RRD databáze může obsahovat vstupy z vícero zdrojů dat (DS), například příchozí a odchozí provoz na síťové kartě. Můžeme tedy do jedné databáze vkládat více hodnot (proměnných). Pro každou proměnnou musíme definovat její základní parametry:
    • ds-name je název, který se bude používat k odkazu na konkrétní zdroj dat. Název musí být maximálně 19 znaků dlouhý a může obsahovat pouze malá a velká písmena anglické abecedy, čísla a podtržítko (a-zA-Z0-9_).
    • DST určuje typ zdroje dat. Další parametry závisí na typu zdroje dat.
      • GAUGE, COUNTER, DERIVE, ABSOLUTE
        • syntaxe: DS:ds-name:GAUGE | COUNTER | DERIVE | ABSOLUTE:heartbeat:min:max
        • GAUGE je určen pro hodnoty jako je teplota, počet lidí v místnost. Do databáze se zapíše ta hodnota, kterou zadáme.
        • COUNTER bere rozdíl aktuální hodnoty a předchozí hodnoty. COUNTER předpokládá, že se hodnoty neustále zvyšují. Hodnota se sníží pouze, pokud čítač přeteče, o to se ale nástroj postará sám. Například počítadla síťové karty, které mohou jen stoupat.
        • DERIVE je to samé co COUNTER, jen může nabývat záporných hodnot. Například odchozí provoz na síťové kartě.
        • ABSOLUTE
        • heartbeat je počet sekund, po kterých je hodnota určena jako neznámá. Když například vypneme počítač, do databáze se nezapíší nesmyslné hodnoty, ale neznámá hodnota.
        • min a max určuje rozsah hodnot. Pokud hodnota překročí daný rozsah, zapíše se neznámá hodnota (UNKNOWN). Pokud rozsah neznáme, můžeme zadat U pro neznámou hodnotu.
      • COMPUTE
        • syntaxe: DS:ds-name:COMPUTE:rpn-expression
        • rpn-expression definuje vzorec použitý pro výpočet hodnoty z jiných zdrojových dat ve stejné RRD databázi. Vzorec je podobný příkazu CDEF funkce graph.
  • RRA (zkratka pro round-robin archive) určuje, jak se budou data ukládat. Pomocí RRA si určujeme, kolik hodnot na určený interval si databáze uchová. Můžeme tedy uchovat více hodnot pro interval jednoho měsíce, méně hodnot pak pro interval jednoho roku. V závislosti na RRA a počtu proměnných DS je určena velikost souboru.
    • CF nám určuje typ konsolidační funkce použité na hodnoty.
      • AVERAGE - průměr z hodnot
      • MAX - maximální hodnota
      • MIN - minimální hodnota
      • LAST - poslední hodnota
    • xff určuje, jaká část konsolidačního intervalu se může skládat z neznámých hodnot zatímco výsledná konsolidační hodnota je stále považována za známou. Hodnota xff je tudíž v rozmezí od 0 do 1.
    • steps určí, kolik hodnot se použije k vytvoření konsolidované hodnoty, která se poté uloží do databáze
    • rows určí, kolik řádků dat bude uloženo v databázi. Hodnota musí být větší než 0.

Příklad vytvořené databáze:

rrdtool create temperature.rrd
--step 300
DS:temp:GAUGE:600:-273:5000
RRA:AVERAGE:0.5:1:1200
RRA:MIN:0.5:12:2400
RRA:MAX:0.5:12:2400
RRA:AVERAGE:0.5:12:2400
  • Vytvoří soubor s názvem temperature.rrd
  • Základní krok bude 300 sekund
  • jediná proměnná se jmenuje temp, minimální hodnota bude -273 a maximální 5000
  • sbírané hodnoty:
    • 1. archiv bude sbírat každou hodnotu, těchto hodnot bude 1200. Maximální časový interval je proto 360 000 sekund (100 hodin), starší hodnoty budou smazány.
    • 2. archiv bude sbírat minimální hodnotu z 12 hodnot, takovýchto hodnot bude 2400. Maximální časový interval je 8 640 000 sekund (100 dní).
    • Obdobně pro zbylé archivy jen s jinou konsolidační funkcí (maximální hodnota, průměr z hodnot)

Vložení dat do databáze editovat

Příkaz update slouží k vkládání nových dat do databáze. Data jsou v databázi automaticky přeskládána podle zadaných parametrů při vytvoření databáze.

Syntaxe:

rrdtool update filename
[--template|-t ds-name[:ds-name]...]
[--daemon address] [--]
N|timestamp:value[:value...]
  • filename je název aktualizovaného souboru
  • [--template|-t ds-name[:ds-name]...] nám určí, které data budou aktualizována a v jakém pořadí. Nemusíme tudíž aktualizovat všechny hodnoty najednou.
  • [--daemon address] se pokusí připojit k cache daemonovi a předat hodnoty ke zpracování jemu. [1]
  • N|timestamp:value[:value...] jsou čas a data vkládané do databáze. První je vždy čas dat (určené pomocí timestampu nebo hodnotou N určující aktuální čas) a poté data seřazená podle toho, v jakém pořadí jsme je definovali při vytvoření databáze, nebo podle určené šablony.

Vytvoření grafu v obrázkové podobě editovat

Používá se k reprezentaci dat v podobě čitelné pro člověka. Hlavním cílem je vytvoření grafické podoby dat, může ale generovat i číselné zprávy.

Příkaz potřebuje k práci nějaké hodnoty, je tedy nutné připojit alespoň jednu proměnnou z RRD souboru. Hodnot může být více z vícero souborů. Syntaxe:

rrdtool graph filename
[option ...]
[data definition ...]
[data calculation ...]
[variable definition ...]
[graph element ...]
[print element ...]
  • filename je název souboru, který bude vytvořen k zobrazení. Doporučené formáty jsou PNG, SVG a EPS. Výsledek můžeme rovnou poslat na výstup, v tomto případě nebude soubor vytvořen.
  • Parametrů option může být více. Jejich veškerý souhrn je na stránce programu.[2]
    • Základní parametry:
      • časový interval: [-s|--start time] [-e|--end time] [-S|--step seconds]
      • štítky: [-t|--title string] [-v|--vertical-label string]
      • velikost: [-w|--width pixels] [-h|--height pixels] [-j|--only-graph] [-D|--full-size-mode]
      • popisky, barvy, velikost a typ písma a další
  • data definition definují proměnné vyčtené přímo z RRD souborů.
    • syntaxe: DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
      • vname je název proměnné použité pro vykreslení do grafu. Maximální délka je 255 znaků a složená může bát z malých a velkých písmen anglické abecedy, čísel a podtržítka (a-zA-Z0-9_).
      • rrdfile je název RRD souboru
      • ds-name je název proměnné v souboru
      • CF je konsolidační funkce proměnné v souboru
      • step=<step> určí krok, po kterém se budou brát data
      • start=<time> a end=<time> nám umožňuje vybrat časové rozpětí dat
      • reduce=<CF> je použito pro zredukování vykreslovaných dat pomocí některé konsolidační funkce
  • data calculation slouží k vytvoření nových proměnných pomocí příslušných operátorů
    • syntaxe: CDEF:vname=RPN expression
      • vname je lokální název nové proměnné
      • RPN expression [3]
        • logické operace
        • porovnávání hodnot
        • aritmetické operace
        • a další operace
  • variable definition slouží k vytvoření nových proměnných pomocí příslušných operátorů
    • syntaxe: VDEF:vname=RPN expression
      • vname je lokální název nové proměnné
      • RPN expresison [4]
        • MAXIMUM, MINIMUM, AVERAGE - vrátí maximální, minimální nebo průměrnou hodnotu v rozsahu grafu
        • STDEV - vrácí směrodatnou odchylku hodnot
        • LAST, FIRST - vrací první/poslední hodnotu v rozsahu grafu
        • a další
  • graph element slouží k vykreslení grafových prvků [5]
    • základní prvky:
      • GPRINT:vname:format - to samé co PRINT níže, ale vykreslí data do grafu
      • LINE[width]:value[#color][:[legend][:STACK]][:dashes[=on_s[,off_s[,on_s,off_s]...]][:dash-offset=offset]]
        • Vykreslí čáru na hodnotě value o zadané tloušťce pomocí width. Čára může být určena proměnnou nebo číslem, nemusí být tedy vždy rovná. Můžeme určit barvu.
        • Pokud použijeme volitelný modifikátor STACK, je tento prvek naskládaný na předchozí LINE nebo AREA.
        • volitelně se pod graf může vypsat legenda nebo můžeme čáru vykreslit čárkovaně.
      • AREA:value[#color][:[legend][:STACK]]
        • Stejné jako LINE, jen bude vykreslena i oblast mezi osou X a vrchní hodnotou.
      • a další
  • print element vypisuje hodnoty pod graf [6]
    • syntaxe: PRINT:vname:format[:strftime]
      • vname určí vypisovanou proměnnou
      • format slouží k určení formátu vypisovaných dat
      • strftime - pokud chceme vypsat proměnnou získanou pomocí VDEF, můžeme tímto vypsat i čas této hodnoty

Další funkce editovat

  • dump [7] slouží k vypsání hodnot do XML souboru nebo na standardní výstup
  • fetch [8] slouží k vypsání dat v určeném časovém intervalu nebo s použitím určité konsolidační funkce
  • resize [9] se používá ke změně počtu řádku v databázi
  • restore [10] obnovuje data z XML souboru do databáze
  • a další

Reference editovat

  1. více o RRD cache daemonovi
  2. option na stránce nástroje
  3. RPN výraz pro CDEF na stránce nástroje
  4. RPN výraz pro VDEF na stránce nástroje
  5. více o grafových prvcích na stránce nástroje
  6. více o tištěných prvcích na stránce nástroje
  7. dump na stránce nástroje
  8. fetch na stránce nástroje
  9. resize na stránce nástroje
  10. restore na stránce nástroje

Související články editovat

Ostatní nástroje, které se dají použít stejně jako RRDTool nebo používaji RRDTool jako zobrazovač grafů

Externí odkazy editovat