A Cacti egy egyszerű, alapvetően hálózati struktúrát monitorozó termék. A maga puritán módján, egy gyors webes, grafikonos megoldást kínál a hálózatunk felügyelete érdekében. Kedves kollégám Kiss János készített egy rövid leírást melyet engedélyezett, hogy közkincsé tehessek. A cikk nem a Cacti felépítésével, és lelkével foglalkozik, inkább kezdőknek szól, hogy is tudják telepíteni, és működésre bírni.

A Cacti maga természetesen a végtelenségig scriptelhető és customizálható. A következőkben János írása következik.

Hálózati beállítások

Feltételezem, hogy egy alap Red Hat vagy CentOS telepítés már a rendelkezésünkre áll. Ellenőrizzük le, hogy a biztonsági beállításaink lehetővé teszik-e a snmp port (161/udp) forgalmát. Az SELinux státuszát az #sestatus paranccsal, az iptablesünket az #iptables –L –n paranccsal ellenőrizhetjük.

Cacti install

A Cacti egy összetett monitorozó webes ‘alkalmazás’ ami az RRDTool’ –al összegyűjtött és készített diagramokat jeleníti meg.
Először is updateljünk a #yum update paranccsal:

Telepítsük a szükséges csomagokat és függőségeiket:

#yum install httpd php php-mysql php-snmp php-gd php-ldap mysql mysql-server net-snmp net-snmp-devel

Apache, PHP beállítások

Győződjünk meg, hogy a szükséges PHP modulok elérhetőek rendszerünkben:

    • mysql
    • SNMP
    • XML
    • Session
    • Sockets
    • LDAP
    • GD

A következő paranccsal tudjuk kilistázni a betöltött php modulokat:

# php -m | egrep ‘(mysql)|(snmp)|(xml)|(session)|(sockets)|(snmp)|(ldap)|(gd)’

A /etc/php.ini–ben ellenőrizzük a php extension-ok elérhetőségét:

extension_dir = /usr/lib64/php/modules

Lokalizáljuk a mysql.so –t és az snmp.so –t (én szeretem a locate használatát, de bármilyen keresővel megtörténhet):

Aktiváljuk a MySQL extension-t a /etc/php.d/mysql.ini -ben:

# vi /etc/php.d/mysql.ini

Az alábbi bejegyzéseket tegyük az /etc/httpd/conf/httpd.conf, amennyiben nem szerepel:

# Load config files from the config directory “/etc/httpd/conf.d”.
Include conf.d/*.conf
Az /etc/httpd/conf.d/php.conf –hoz adjuk a következő sorokat:
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
LoadModule php5_module modules/libphp5.so
#
# Cause the PHP interpreter to handle files with a .php extension.
AddHandler php5-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
DirectoryIndex index.php

MySQL konfiguráció

Adjuk ki az alábbi parancsokat:

#service mysqld start
#mysqladmin –user=root password yourpassword
#mysqladmin –user=root –password reload

#mysqladmin –user=root –p create cacti

# mysqladmin –u root –p cacti < cacti.sql

# mysql –u root –p

GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘yourcactiuserpassword’;
flush privileges
quit

Cacti konfigurálás

Töltsd le a legutolsó Cacti verziót a http://www.cacti.net oldalról.
Tömörítsd ki a /var/www/html/cacti könyvtárba a #tar –xvf cacti-yourversion.tar.gz paranccsal. Szerkeszd a config.php fájlt a cacti/include könyvtárban, és módosítsd a alap beállításokat az általad megadott értékekkel:

RRDTtool install

#yum install gcc cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel

Töltsd le az rrdtool forrást a http://packages.express.org/rrdtool/ és tömörítsd ki.

Állítsd be a PKG_CONFIG_PATH környezetbe az alábbi bejegyzést:
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig/

Add ki a következő parancsot:
# ./configure

Fordítsuk és installáljuk az RRDTool-t:

# make
# make install
# cd /usr/local/
# ln -s rrdtool-‘yourversion’/ rrdtool/
# cd rrdtool
# ls –l

Írd be a Cacti szervered IP-jét a böngésződbe és kövesd a next-next-finish install folyamatot.

SNMP beállítás a localhoston

Csináljunk egy backupot a default /etc/snmp/snmpd.conf fájlról:

# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig

Hozzunk létre egy újat alap beállításokkal:

# vi /etc/snmp/snmpd.conf

rocommunity testingsnmp
syslocation Whereyouare
syscontact root

Indítsuk el az snmpd szervizt az #service snmpd start paranccsal és ellenőrizzük az snmp beállításainkat:

# snmpwalk –v 2c –c “yourrocommunitystring” yourserverip

Hasonló kimenetet kell kapnod:

Cacti-ban localhost monitorozás létrehozása

A Cacti web interfész főoldalán klikkelj a Create devices for network -> Add gombra és töltsd ki a jelenlegi hostod hostnevével vagy IP címével és az /etc/snmp/snmp.conf –ban beállított SNMP Community string -el:

A sikeres beállítás után ezt kellene látnod:

Módosítsd a crontab-odat, hogy áramoljon az adat a grafikonjaidba:

*/5 * * * * root php -q /var/www/html/cacti/poller.php > /dev/null 2>&1

Megjegyzés: Amennyiben Cisco Nexus switchet akarsz monitorozni, az SNMP Timeout value –t emeld fel 500-ról 35000-re.

Szerviz start

Végül állítsuk be a szervizek indulását automatikusra egy restart után a #chkconfig httpd mysqld snmpd on paranccsal.