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....