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 .
Inhoudstabel
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 op dmv het commando :wq >sudo /etc/init.d/snmpd restart Hiermee herstart je snmpd met de zopas aangepastte 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’…
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
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%'
Templates
Openhab
Hoe grafieken te maken van zaken (bv items) binnen openHAB?
Goeie handleiding voor dit: http://www.mydigital-home.com/tinkerings/cacti-and-openhab-integration-using-rest-api-and-curl
O ja, ‘rest’ zaken zijn vlug te bekijken via volgende link. Al weet ik nu niet meer of je dit in de instellingen van openHAB apart moest ‘activeren’ of niet. Dacht dat dit enkel in versie 1 was, dus niet meer in versie 2….
http://openhabserver/rest/items
Minpuntje is misschien wel dat je item per grafiek moet aanmaken. Is dus wat intens werk als je meerdere grafieken (5+) wenst. Misschien es zien om dit in de toekomst te automatiseren?