Cacti

Cacti is HET monitoringtooltje bij uitstek. Geen nood aan zware servers, grote budgetten…

Enkel ergens een klein linuxservertje (mag virtueel zijn), en je kan starten. Veel hangt af van de grootte van je netwerk, doch voor de meeste zaken tot 50 nodes hoef je je geen zorgen te maken.
Het idee is simpel, activeer snmp op je te controleren toestellen (routers, switchen, firewalls, servers, computers…) en cacti kan hen ondervragen. Of andersom, laat al die toestellen ook al hun logs doorsturen naar cacti. Dan heb je een mooie databank met alle meldingen.
Cacti zet dit alles in één grote databank, waar jij volledige controle over hebt.

Echt een makkelijk, en compleet systeem om de data van je verschillende toestellen te beheren.
En bovenal, het is volledig gratis !!!

Voor meer informatie: www.cacti.net or cactiusers.org .

Cacti vs Nagios
Hier heb ik al veel discussies over gehad. Veel pro’s, veel contra’s… Maar wat is nu het beste tooltje voor de job? Is dit cacti, is dit nagios, of toch icinga, of zabbix, of…?
Ik kan enkel spreken uit mijn eigen ervaring, dus hier gaan we:

Ontwikkeling
Nagios is geschreven in een programeer code. Wat betekent dat je veel zal moeten ‘compilen’ vooraleer je de zaken hebt draaien zoals jij het wil. Ik heb meermaals slechte ervaringen met dit alles. Cacti daarentegen is geschreven in php, een programeer code voor website met een database. Voor mij, telkens opnieuw, draai je cacti binnen het uur. Gewoon installeren, en je bent vertrokken. Waarschijnlijk is dit ook zo met Nagios, eens je snapt hoe dit in elkaar zit.

Mijn conclusie?
De basis van Nagios is gemaakt voor servers. En voor deze basis hebben ze er het netwerk bij genomen.
De basis van Cacti is gemaakt voor netwerken. En dmv deze netwerken nemen ze er de toestellen bij.

Installatie
Open een console op je linux machine (bv ubuntu?), en vervolledig volgende stappen:

sudo apt-get install cacti
sudo apt-get install rrdtool
sudo apt-get install net-snmp
sudo apt-get install snmpd
sudo service apache2 restart

Dit zou alle software pakketten moeten installeren, en de website opbrengen
Optioneel indien de website niet draait:

ln -s /usr/share/cacti /var/www/cacti

That’s it.

Het zou nu moeten werken.
Open even je favoriete webbrowser en ga naar http://yourCactiServerIP/cacti (bv http://192.168.0.2/cacti).

SNMP
Cacti is voornamelijk SNMP gebaseerd. Dus is het leuk dat je snmp hebt draaien op alle toestellen. Voor een Ubuntu gebaseerde server, probeer je volgende zaken:

Open a terminal

sudo apt-get install snmp
sudo apt-get install snmpd
sudo vi /etc/snmpd/snmpd.conf

(hier zit al je configuratie in)
Wijzig de communitystring ‘public’ naar iets persoonlijk (bv mijnMonitoring123)
Wijzig eventueel nog de contactgegevens en locatie naar iets meer zeggen (bv mijn@email.be en woonkamer)
Sla dit ope dmv het commando :wq

sudo /etc/init.d/snmpd restart

Hiermee herstart je snmpd met de zopas aangpeast configuratie

Poort Omschrijvingen
Ik vind het niet leuk dat ik de poortomschrijving van mijn switch niet zie in de grafieken. ‘IP-camera A’ zegt namelijk zoveel meer dan ‘interface 1/3’. Om dit te wijzigen, kan je volgende stapjes doen:

Ga naar 'console’
Kies 'Graph Templates’
Klik op 'Interface - Traffic (bits/sec)
Deselecteer de titel, en kopieer dit in het veldje: |host_description| - |query_ifName| - |query_ifAlias|

Vanaf nu zou je de omschrijving (mits aanwezig in je switch) moeten zien op de grafieken.
Mocht je switch reeds ondervraagd zijn, kan je best deze opnieuw ondervragen. Ga naar ‘devices’, kies je switch, en klik op ‘verbose interfaces statistics’…

Syslog Module
Dmv van syslog kan je veel beter je logs bekijken. Dan kan je makkelijk al (bv server, router, camera’s…) je logs op 1 plaats bekijken, en via een handig toolje. Dus geen nood om in te loggen op elk toestel, de juiste commando’s kennen…

Installeer rsyslog (op de server)

sudo apt-get install rsyslog
sudo apt-get install rsyslog-mysql

Voeg volgend toe in /etc/rsyslog.conf (let op met ’ !)

$ModLoad ommysql $template cacti_syslog,“INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values (’%syslogfacility-text%’, ‘%syslogpriority-text%’, ‘%timereported:::date-mysql%’, ‘%timereported:::date-mysql%’, ‘%HOSTNAME%’, ‘%msg%’)”, SQL . >{mysql_server},{db_name},{db_users},{db_pass};cacti_syslog

Voeg volgend toe in /etc/syslog.conf

. @192.168.111.1

Wijzig volgend in /etc/rsyslog.d/mysql.conf (let op met ’ !)

. :ommysql:localhost,Syslog,rsyslog,0Hqye5vroAaQ

naar

$template syslog,“INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values (’%syslogfacility-text%’, ‘%syslogpriority-text%’, ‘%timereported:::date-mysql%’, ‘%timereported:::date-mysql%’, ‘%HOSTNAME%’, ‘%msg%’)”, SQL
. >localhost,syslog,syslog,s4sl0g;syslog

Herstart de services

sudo /etc/init.d/rsyslog restart
sudo /etc/init.d/syslogd restart

Remote devices
Om logs door te sturen van bv een cisco switch of router, doe volgend:
log in op de switch of router

enable (ga naar admin mode)
conf t (ga in de configuratie mode)
logg trap not (log alle wijzigen)

Speel wat met de verschillende niveau’s. Let op, sommige niveau geef je mega veel informatie
logging 192.168.192.168 (stuur al deze info naar je cacti server, wijzig je IP naar jouw server)

Extra logfiles

Het zou leuk zijn mochten er extra logbestanden in de database worden bijgehouden. En dankzij cacti, is dit relatief makkelijk om te dien. Vervang hieronder natuurlijk het IP-adres met jouw IP-adres. En eventuele logfiles zoals jij dit wil.
Wijzig het bestandje /etc/rsyslog.conf:

Voeg in het begint toe:

$ModLoad imfile
En op het eind:
user.* @192.168.111.1:514
#Monitor /var/3rdpartycrap/log/request.log
$InputFileName /var/log/pluto/DCERouter.log
$InputFileTag tam_request:
$InputFileStateFile DCEROUTER1.log
$InputFileSeverity notice
$InputFileFacility user
$InputRunFileMonitor
$InputFilePollingInterval 10

Nadien, nog even rsyslog herstarten en …

Color Problems
Iedere keer dat ik de syslog plugin installeerde, had ik problemen met de kleurtjes. Hiervoor moet je in de syslog.conf volgende zaken wijzigen:

%syslogfacility-text%’, '%syslogpriority-text%‘
en niet %syslogfacility%’, ‘%syslogpriority%’

Plugins voor cacti
Quicktree

wget http://wotsit.thingy.com/haj/cacti/quicktree-0.2.zip -P /tmp/
unzip /tmp/quicktree-0.2.zip -d /usr/share/cacti/plugins/

Intropage

Download manual via forum: http://forums.cacti.net/download/file.php?id=29498&sid=2045f346e4bc0a3b4aea133d1990aa99
tar xvzf /tmp/intropage_0.4.tar.gz -C /usr/share/cacti/plugins/

Capacityreport

wget http://docs.cacti.net/_media/userplugin:capacityreport-0.1.zip -P /tmp/
unzip /tmp/userplugin:capacityreport-0.1.zip -d /usr/share/cacti/plugins/

Thold / Settings

wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz -O - | tar xvzf - -C /usr/share/cacti/plugins/
wget http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz -O - | tar xvzf - -C /usr/share/cacti/plugins/

RRDclean

wget http://docs.cacti.net/_media/plugin:rrdclean-v0.41.tgz -O - | tar xvzf - -C /usr/share/cacti/plugins/
mkdir /usr/share/cacti/rra/{backup,archive} && chown www-data:www-data /usr/share/cacti/rra/{backup,archive}

Realtime

wget http://docs.cacti.net/_media/plugin:realtime-v0.5-2.tgz -O - | tar xvzf - -C /usr/share/cacti/plugins/
mkdir /tmp/cacti-realtime && chown www-data:www-data /tmp/cacti-realtime
HMIB; inventory of processes
wget http://docs.cacti.net/_media/plugin:hmib-v1.4-2.tgz -O -
tar xvzf - -C /usr/share/cacti/plugins/

Mactrack

wget

Manage

wget

Weathermap

wget

Syslog

wget