Agaton.cz

Základní instalaci systému Cacti je možné provést pomocí yum

yum install cacti net-snmp net-snmp-utils

Pokud však budeme chtít využít přídavné pluginy, je zřejmě jediným východiskem instalace z balíku .tar.gz. Takže mimo základního balíku cacti-0.8.7e.tar.gz je zapotřebí ještě rozšíření cacti-plugin-0.8.7e-PA-v2.6.zip. Rozšíření PluginArchitecture však musí být ve stejné verzi, jako základ Cacti, bohužel v současné době jsou na server cacti.net nějaké zmatky (zřejmě v souvislosti se stažením verze 0.8.7f ) a tento plugin je ke stažení pouze ze "soukromých" archivů v konferenci forums.cacti.net.  Abych nemusel příště zase hledat verze, které k sobě "pasují", udělal jsem si vlastní archiv potřebných souborů.

Po instalaci Cacti pomocí příkazu yum je umístěno v /usr/share/cacti/.  Při instalaci z balíku tar.gz je možné použít stejný adresář, nebo "klasické" /var/www/html/cacti/.  Protože na mém zvoleném serveru nebude běžet žádná jiná webová služba, poslední úroveň adresáře jsem vypustil a Cacti nainstaloval přímo do /var/www/html/.

Do zvoleného adresáře se rozbalí soubor cacti-0.8.7e.tar.gz - mezi rozbalenými soubory je i soubor se strukturou databáze cacti.sql.  Založí se databáze a uživatel a nastaví se přístupová práva k souborům

mysqladmin create cacti -p
mysql cacti < cacti.sql -p

mysql -p
create user cactiuser@localhost identified by 'heslo';
grant all on cacti.* to cactiuser@localhost identified by 'heslo';
flush privileges;
quit

chown cacti:cacti /var/www/html -R
chmod 770 /var/www/html/rra

Samozřejmě, že uživatel cacti musí být i jako systémový uživatel založen. Při instalaci pomocí yum se tak stane automaticky, jinak je nutné jej založit ručně.

Dále se aplikují aktualizační patche

wget http://www.cacti.net/downloads/patches/0.8.7e/cli_add_graph.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/snmp_invalid_response.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/template_duplication.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/fix_icmp_on_windows_iis_servers.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/cross_site_fix.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/sql_injection_template_export.patch
patch -p1 -N < cli_add_graph.patch
patch -p1 -N < snmp_invalid_response.patch
patch -p1 -N < template_duplication.patch
patch -p1 -N < fix_icmp_on_windows_iis_servers.patch
patch -p1 -N < cross_site_fix.patch
patch -p1 -N < sql_injection_template_export.patch

Pokud se budou používat i pluginy, je zapotřebí aplikovat patch PluginArchitecture z balíku cacti-plugin-0.8.7e-PA-v2.6.zip a upravit databázi

patch -p1 -N < cacti-plugin-0.8.7e-PA-v2.6.diff
mysql cacti < pa.sql -p

Nyní se upraví konfigurace www serveru apache dle požadované adresy a přístupových práv v souboru /etc/httpd/conf.d/cacti.conf

<Directory /cesta/k/cacti/>
Order Deny,Allow
Deny from All
Allow from 192.168.1.0/24 172.16.20.0/23
</Directory>

V souboru /var/www/html/include/config.php se upraví řádky

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "heslo";

 

Pokračovat v instalaci se nyní již může přes webové rozhraní na adrese http://mujserver.cz.  Zde proběhne kontrola a zobrazí se případné chyby. Pak se již může přejít na hlavní stránku Cacti.  Implicitní jméno a heslo pro prvotní přihlášení je admin / admin, a po prvním přihlášení se nejprve zobrazí stránka požadující změnu hesla.

Ještě je zapotřebí přidat do /etc/crontab řádek pro periodické spouštění polleru

*/5 * * * * cacti php /usr/share/cacti/poller.php > /dev/null 2>&1

Pro začátek a pro menší sítě stačí tento poller, pro větší sítě je možno použít ryhlejší poller Spine.

 

Instalace Pluginů

Oficiální pluginy do Cacti je možné stáhnout z http://cactiusers.org/. Jejich instalace pak spočívá v rozbaleni do adresáře /plugins a případné aktualizace databáze - pokud je aktualizace potřeba, je součástí pluginu i soubor *.sql

mysql cacti < *.sql -p

Aktivace pluginu se pak provede v souboru /include/global.php

$plugins = array();
//$plugins[] = 'thold';
$plugins[] = 'hostinfo';
$plugins[] = 'monitor';
$plugins[] = 'settings';
$plugins[] = 'clog';
$plugins[] = 'tools';

A v některých případech se ještě musí nastavit přístupová práva k pluginům pro jednotlivé uživatele. Ve webovém rozhraní se v levém sloupci zvolí "User management", vybere se oprávněný uživatel (např. admin) a na záložce "Realm Permissions" se povolí jejich používání (pro admina povolit vše). Některé pluginy vyžadují nainstalovaný plugin "settings", proto je nejlepší začínat tímto pluginem.

Zajímavé jsou například pluginy (vyzkoušené)

"tools" umožňující ruční kontrolu vybraného hosta (SNMPWalk a ServiceCheck)
"monitor" pro monitoring a notifikaci funkčnosti hlídaných hostů
"discovery" prohledává zadané sítě a hledá SNMP hosty
"thold" monitoruje nastavené mezní hodnoty a zasílá notifikace při překročení
"clog" zobrazuje barevně zvýrazněné logy (velice vhodné pro hledání chyb)

v nejbližší době se chystám vyzkoušet i pluginy "syslog" a "flowview". Zajímavý by mohl být i "mactrack".... A to jsem se ještě ani nedostal k neoficiálním pluginům.....

 

Spine

Pro rozsáhlé sítě by měl být vhodnější poller Spine. Ke stažení je opět na cacti.net. Je také potřeba doinstalovat další balíčky

yum install net-snmp-devel libtool dos2unix

Po rozbalení dopracovního adresáře je zapotřebí před překladem provést několik úprav. V adresáři config se musí změnit odkaz config.sub - původně ukazuje na /usr/share/libtool/config.sub, správně (pokud je libtool instalován pomocí yum) musí odkazovat na /usr/share/libtool/config/config.sub. Stejně se upraví í odkazy na config.guess a ltmain.sh. Nyní se již může spustit překlad

./bootstrap
./configure
make
make install

Spine se instalací zkopíruje do adresáře /usr/local/spine/bin a konfigurační soubor spine.conf (zde je zapotřebí znovu doplnit heslo k databázi) do /usr/local/spine/etc. Cestu ke Spine je zapotřebí doplnit i do webového rozhraní Cacti ( Setting - Path - Spine Poller File Path ).  Používání Spine je pak možné nastavit opět ve webovém rozhraní  Setting - Poller - Poller Type a zároveň upravit parametry Spine Specific Execution Parameters (zvěšit počet současných threadů a PHP-scriptů).

Při hledání případných chyb je zapotřebí nejprve zjistit, zdaje chyba v ukládání nebo zobrazování dat. Zda poller správně ukládá data je možné zjistit jednoduše příkazem

rrdtool dump soubor.rrd > soubor.xml

spuštěným v adresáři rra.

Také je někdy zapotřebí udělat v adresáři /bin udělat odkaz na program /usr/bin/wc (nebo wc jednoduše do adresáře /bin zkopírovat :-))

 

Template

Pro odečítání dat z routerů Mikrotik je ještě zapotřebí instalovat patřičný template. Ten je dostupný přes fórum na adrese http://forums.cacti.net/about25349.html , konkrétně verze 02/10/2009 je přímo na http://forums.cacti.net/download.php?id=15969 . Postup instalace je na těchto stránkách popsán - v podstatě se jedná o rozkopírování obsahu adresářů /resource a /scripts do stejnojmenných adresářů v /usr/share/cacti/ a dále přes webové rozhraní (volba "Import Templates") nainstalovat soubor z adresáře /template.

Pro tento template je zapotřebí používat SNMP verze 1.

Další templaty je možné nalézt na http://www.debianhelp.co.uk/cactitemplates.htm - ověřené mám například template pro stav toneru HP Laserjet 4100, Multi-CPU graf (http://forums.cacti.net/download.php?id=11377 )  ze stránek http://forums.cacti.net/about11615-0-asc-120.html . Poznámka k Multi-CPU: Pro správnou funkci MUSÍ být mimo tohoto template ještě aktivován i "SNMP - Get Processor Information" a v menu ve volbě "Graph Mamgement" - "Monitor - 4 CPU Utilization" se musí správně přidělit Data Source - viz obrázek:

Někdy jsou problémy s vytvářením grafů. Pokud se v tomto případě zapne "Graph Debug Mode", a na posledním řádku se objeví chyba  "ERROR: the RRD does not contain an RRA matching the chosen CF", tak je zapotřebí v menu (levý sloupec) zvolit "Data Sources", hned pod tím "RRAs" a ve všech řádcích vpravo změnit "Consolidation Functions" na "LAST". Potom je potřeba vygenerovat znovu grafy (pokud je stále zapnutý režim "Debug", tak by již mělo být na posledním řádku výpisu "OK".

SNMP

yum install net-snmp net-snmp-utils net-snmp-devel net-snmpd-perl
snmpconf
service snmpd start

tyto soubory umístit do cacti/resources/snmp_queries

http://sf-alpha.bjgang.org/downloads/cacti/queries/

a tyto template načíst přes Import Templates

http://sf-alpha.bjgang.org/downloads/cacti/templates/

Upozornění - článek již není aktuální, protože v průběhu času firma Mikrotikls bohužel změnila některá OID a zatím jsem nikde nenašel aktuální templaty pro ROS verze 5.x. Sice bych si je mohl upravit (i když jsem některá nová OID k původním vůbec nenalezl - např. "ARP Entries"), ale nějak není čas....  Jediné, co jsem nedávno udělal, jsou templaty pro Anemo-stanici GIOM 3000. V případě zájmu je zde zveřejním.  Data z této meteorologické stanice odečítáme a ukládáme do databáze, navíc si je zobrazujeme v popisovaném systému Cacti. On-line údaje jsou dostupné na našich firemních stránkách.

Mám sice v plánu stávající servery s Cacti kompletně přeinstalovat, pak zde samozřejmě zveřejním vše aktualizované, ale času je málo a práce mnoho....