Cacti: zobrazování vlastních dat a šablony

7. 8. 2009
Doba čtení: 5 minut

Sdílet

V minulé části našeho krátkého seriálku jsme si připravili monitorovaný stroj, teď nám zbývá naučit Cacti z něj sbírat data a dále je prezentovat. To se provádí pomocí šablon a metod. Ukážeme si, jak si vše potřebné vytvořit a přizpůsobit k obrazu svému a potřebám našeho testovacího prostředí.

Doporučujeme přečíst také předchozí díl seriálu.

Dále je potřeba vytvořit vstupní metodu dat ( Data input method). V menu položka Data input Methods a Add. Vytvoříme metodu load_dim. Doporučuji si za názvy přidávat identifikátor (_dim pro Data Input Method, _gt pro Graph Template), jinak se při dalším použití můžete ztratit. Z roletky vyberte Script/Command a jako Input string zadejte:

$ ssh cactiquery@ -p22 '~/load.sh'

Co je zadáno ve špičatých závorkách, bude později dotazováno při vytváření šablony dat. Pokud použijete slovíčko hostname, bude použito hostname z definice hostu. Díky tomu nám stačí pro monitorování více strojů stejná vstupní metoda. Volá se vždy s jinou adresou. Dále si přidáme vstupní a výstupní sloupce. U output polí se musí shodovat názvy s návěštími, které vrací skript. Výsledek by měl vypadat nějak takhle:

Cacti dim

Nyní musíme vytvořit několik šablon.

Část prvků ve všech šablonách má společné atributy:

  • u většiny položek můžeme zaškrtnout checkbox "Use Per-Data Source value (Ignore this value)". To se může někdy hodit, stejná věc se používá u šablony pro graf. Ve výchozím (nezaškrtnutém stavu) se při generování dat a grafu použije údaj ze šablony. Při zaškrtnutí se systém při generování grafu zeptá na údaj a můžeme tak generovat grafy s různými výjimkami (jiné popisky, velikosti, …).
  • v některých položkách můžeme použít klíčové slovo host_description uvozené znaky |. Při zpracování se klíčové slovo nahrazeno popisem stroje, který jsme zadali při zadávání monitorovaného stroje. Před nebo za klíčové slovo můžeme dodat vlastní text. V grafu se pak objeví náš text i popis hostu.

Nejprve musíme vytvořit datovou šablonu (menu "Data Templates" a "Add"). V první polovině formuláře nastavujeme pouze názvy, časy a krok. V názvu můžeme použít výše zmiňované |host_description|. Nezapomeňte z roletky zvolit náš DIM. Po kliknutí na create budete vráceni na stejnou stránku a ještě musíte definovat 3 výstupní sloupce (tlačítko "New" vpravo). U každého z nich nastavujeme jméno (doporučuji dodržet shodnost s návěštími – 1min, 5min a 15min), dále jejich min a max hodnoty a svazujeme je (pomocí "Output field") s hodnotami v DIM. Data source type je u těchto dat GAUGE. U počítaných dat zvolte counter. Nakonec je zde položka Hostname, kterou ponechte beze změny. Výsledek bude vypadat nějak podobně:

Cacti dt

Teď už potřebujeme jen šablonu pro graf (menu "Graph Templates" a "Add"). Ta je trochu náročnější. Nejprve zadáme název (load_remote_gt), můžeme definovat rozměr grafu, měřítko, odsazení, …). Pokud většinu necháte ve výchozím stavu, neuděláte chybu, grafy vypadají pěkně. V titulku je možné opět použít slovo |host_description|. Po té klikneme na create. Jsme vráceni na tu samou stránku, ale nahoře už můžeme definovat položky, které chceme grafovat.

Budeme zobrazovat 3 hodnoty, takže následující postup musíme provést 3×. V Tabulce "Graph Template Items" klikneme na "Add" a na zobrazeném formuláři vybereme správný Data source( load_remote_dt (1, 5 a 15 min)). Nezapomeňte vybrat rozdílné barvy. Jako Graph item Type zvolíme AREA. Dále můžeme hodnotu nejprve přizpůsobit pomocí CDEF funciton (matematické funkce). Je možno použít předpřipravené funkce (převod mezi bity a bajty, vydělení 1024 apod.) nebo si v menu Graph management -> CDEFs definovat vlastní. Můžeme zadat popis (text format). Výsledek bude vypadat takto:

Cacti gt hodnota

Tím přidáme hodnotu do grafu, ale můžeme víc. Pokud znovu klikneme na Add, vybere stejný Data Source, ale jako Graph item Type zvolíme LEGEND, Cacti nám vygeneruje pod graf popisky a bude zobrazovat, min, max a průměrnou hodnotu. Dále můžeme třeba udělat odsazení. Pro představu doporučuji projít si některé hotové grafy. Je možné si tu hodně pohrát.

Cacti gt

A tím máme hotovo. Už stačí pouze v "Devices"  zvolit náš stroj, kliknout na "Create Graphs for this Host" a v části "Graph template" zvolte náš "load_remote_gt" a tlačítko "Create".

Data se budou z našeho stroje vyčítat, ukládat a je možné zobrazovat graf. Ještě je musíme zařadit náš graf nebo celý server do přehledu grafů. To provedete v "Graph Trees". Zde jej můžeme vložit do výchozí větve nebo vytvořit jinou. Do ní pak lze přidat samotný graf nebo celý server. Dále si můžete určit třídění v této větvi, vytvořit další podvětve apod. Můžete si udělat různé větve, graf může být ve více větvích. Někdy nás třeba zajímá jen jeden host a všechny jeho hodnoty (CPU, HDD, síťové karty), jindy zase třeba chceme mít v jedné větvi jen vytížení CPU všech serverů v našem clusteru. To už je na Vás.

Ještě nám zbývá "Host template". Nic už nás nenutí jej použít, ale může usnadnit práci. V Cacti je jich několik šablon pro různé typy hostů připravených (Windows 2000/XP host, Cisco router, Local Linux machine, …). Ke zvolenému typu jsou přiřazené grafy. Když si třeba vyberu Windows 2000/XP host a chci generovat grafy, Cacti mi nabídne grafy, které má pro Windows definované a v podstatě na jeden klik je všechny vytvoří. Jinak by bylo nutné vždy vybrat z roletky graf, vygenerovat a takhle pokračovat s dalším. Nic nám nebrání si udělat vlastní Host template, třeba pro Linux, přidat do něho náš load, k tomu třeba počet přihlášených uživatelů, který už je přímo v Cacti a další grafy. Potom si pro naše Linuxy nastavit tento host template a začít generovat, třeba takhle:

bitcoin_skoleni

Cacti ukázka final

V případě problémů nám může pomoci několik věcí. V menu „Data Sources“ po kliknutí na příslušný zdroj dat je možno si zobrazit debugovací informace RRD. To samé jde přímo i pro graf v menu "Graph Management". Pokud zde chyba není a v grafu nic nevidíte, zkontrolujte, zda jste vybrali barvu pro grafovanou hodnotu. K zobrazování hodnot nedojde ani v případě, když grafovaná hodnota je mimo min/max rozsah zadaný v Data template nebo Graph template. Pokud nedochází k vyčítání dat, zkontrolujte si ssh (nejsnáze jak bylo popsáno výše) a projděte Cacti log. U logování lze nastavit několik úrovní včetně debugování. V případě velkých problémů je možné poller spustit ručně a sledovat jeho výstup.

Na rozdíl třeba od mrtg takto získáváme více možností než jen grafovat In-out bity nebo jen dvě hodnoty bez možnosti si graf nějak přizpůsobovat. RRD Tool nám umožní takové grafy, ale ne tak snadnou správu grafů, zobrazení a strojů. Jak vidíte, Cacti nabízí mnohem víc.

Autor článku

Petr Macek studoval aplikovanou informatiku na Jihočeské univerzitě, pracuje jako síťový specialista ve firmě Kostax, s. r. o. Baví ho především FreeBSD, sítě a monitoring Cacti.