In de netwerk- en serverwereld draait alles om zichtbaarheid; als je niet weet wat je netwerk en servers aan het doen zijn, dan vaar je blind. En op die manier je gang gaan, brengt je vroeg of laat in de problemen. Gelukkig zijn er een hoop gratis en betaalde tools die het nodige licht op de zaken kunnen laten schijnen.

Omdat goed en gratis beter zijn dan goed en kostbaar, is dit een lijstje van mijn favoriete open-source tools die iedere dag miljoenen beheerders uit de brand helpen.

1. Observium

Observium is een netwerk- en hostmonitor dat reeksen systemen kan scannen op basis van SNMP. Het wordt aangeboden als LAMP-applicatie en is relatief eenvoudig te installeren en configureren: het vereist de gebruikelijke installaties van Apache, PHP en MySQL. Observium kan geïnstalleerd worden op een eigen server met een dedicated URL, zo is het ontworpen.

Eenmaal ingesteld, kun je bij een webinterface aanmelden en hosts en netwerken toevoegen, alsmede autodiscovery netwerkreeksen en SNMP-data. Hierna gaat Observium op het netwerk aan de slag. Het kan ook netwerkdevices ontdekken via CDP, LLDP en FDP. Bovendien kun je hostagenten op Linux-systemen laten helpen in het vergaren van data.

Alle data wordt getoond in een eenvoudig te navigeren gebruiksinterface die een veelvoud aan statistieken, tabellen en grafieken biedt. Daarbij gaat het van ping en SNMP responstijden tot grafieken van IP-doorvoer, fragmentatie, packet counts, enzovoorts. Afhankelijk van het device, is deze data beschikbaar voor iedere poort die je ontdekt en kun je een inventaris aanleggen met modulaire devices.

Voor servers laat Observium CPU, RAM, storage, swap, temperatuur en eventlog statussen zien. Je kunt datacollectie en prestatiegrafieken ook op services als Apache, MySQL, BIND, Memcached en Postfix instellen.

Observium doet het netjes als VM en kan al snel je favoriete tool worden voor het verkrijgen van netwerk- en serverstatusinformatie op zowel kleine als grote bedrijfsnetwerken.

2. Cacti

Eerst was er MRTG. In de jaren 90 schreef Tobi Oetiker een simpele grafische tool om routeractiviteit te laten zien. Nog steeds vormt deze tool de basis van een flink aantal open-source oplossingen van vandaag de dag. Cacti is de huidige vaandeldrager op gebied van netwerkvisualisatie en tilt het originele idee achter MRTG naar een nieuw niveau.

Cacti is een LAMP-applicatie waarmee een compleet graphingraamwerk voor allerlei soorten data gemaakt kan worden. In de meer geavanceerde implementaties van Cacti, laat ik de tool data verwerken van koelingunits in datacenters tot vrije ruimte op servers. De tool biedt sjablonen om een groot aantal devices te monitoren, van Linux en Windows Servers tot Cisco routers en switches - eigenlijk vrijwel alles dat SNMP spreekt. Dan zijn er ook nog bergen downloadbare sjablonen beschikbaar vanuit de community voor nog veel meer hard- en software.

Hoewel Cacti standaard SNMP als verzamelmethode hanteert, kun je ook lokale Perl- of PHP-scripts gebruiken. Het raamwerk maakt bij het dataverzamelen en de graphing netjes onderscheid tussen verschillende instances, dus het is makkelijk om data te reorganiseren in verschillende weergaven. Daarnaast kun je eenvoudig specifieke tijdvakken en gedeelten van grafieken selecteren door te klikken en te slepen. In sommige van mijn installaties, werk ik met jaren oude historische data die soms onmisbaar blijkt om een vreemd probleem met een netwerkapparaat of een server op te lossen.

Door de PHP Network Weathermap plug-in voor Cacti te gebruiken, kun je eenvoudig live netwerkkaarten maken waarmee het linkgebruik tussen verschillende netwerkdevices inzichtelijk wordt, compleet met grafieken die getoond worden als je met de muis over een gedeelte van het netwerk gaat. Op sommige locaties waar ik Cacti geïmplementeerd heb, draaien deze kaarten 24/7 op 42 inch LCD-monitors aan de muur, zodat IT'ers direct kunnen zien hoe het staat met netwerkbezetting en linkstatus.

Cacti is een uitgebreide prestatiegraphing- en trendingtool die je kunt gebruiken om bijna iedere gegevensstroom in een grafiek te laten plotten. Het is oneindig aanpasbaar, wat helaas maakt dat het soms wel complex kan worden.

3. Zabbix

Zabbix is een uitgebreide netwerk- en systeemmonitoring tool die verschillende functies functies in een enkele webgebaseerde console onderbrengt. Het kan geconfigureerd worden om data van een groot aantal servers en netwerkapparatuur te vergaren.

Zabbix werkt met agents die draaien op gemonitorde systemen, maar het kan ook agentloos met SNMP werken of remote checks op open services als SMTP en HTTPS uitvoeren. Het biedt ondersteuning voor VMware en andere virtualisatiehypervisors en produceert uitgebreide data over hypervisorprestaties en activiteit. De tool kan ook prima overweg met Java-applicatieservers, webservices en databases.

Hosts kunnen handmatig worden toegevoegd of via een automatisch discoveryproces. Een grote set standaardsjablonen stellen de tool snel in voor Linux, FreeBSD en Windows servers; bekende diensten als SMTP en HTTP en ICMP en IPMI devices voor uitgebreide hardwaremonitoring. Daarnaast kunnen custom checks geschreven worden in Perl of Python.

Zabbix biedt aanpasbare dashboards en webinterface layouts zodat jij je zo goed mogelijk kunt richten op het monitoren van je meest kritieke infrastructuur. Notificaties en escalaties zijn aan te maken op gespecificeerde events en kunnen leiden tot custom acties voor hosts of groepen van hosts. Acties kunnen zelfs worden geconfigureerd om op afstand commando's uit te voeren, zodat een script kan worden uitgevoerd op een remote host zodra aan bepaalde eventcriteria wordt voldaan.

Grafiekweergave zoals doorvoer en CPU-gebruik zijn met Zabbix mogelijk en kunnen naderhand nog geheel naar wens worden aangepast.

Zabbix kan in het begin intimiderend overkomen, maar gebruik van templates en autodiscovery verzachten de integratiepijn aanzienlijk. Naast als installeerbaar pakket, is Zabbix ook beschikbaar als virtuele appliance voor vrijwel iedere beschikbare hypervisor.

4. Nagios

Nagios is een volwassen netwerkmonitoring raamwerk dat al jaren volop doorontwikkeld wordt. Het programma is geschreven in C en biedt systeem- en netwerkbeheerders alles wat ze van een monitoringpakket mogen verwachten. De web gebruiksinterface is snel en werkt intuïtief, daarnaast is de back-end erg robuust.

Net als voor Cacti geldt, is ook op Nagios van toepassing dat een hele grote community de tool ondersteunt en er bergen plug-ins beschikbaar zijn. Die verschillen van simpele pingtests tot integratietools als Webinject, waarmee je de status van alles dat via IP werkt kunt monitoren.

Ik gebruik Nagios om hardeschijfruimte op servers te meten, te kijken naar RAM- en CPU-gebruik, FLEXlm licentiegebruik, servertemperatuur en WAN en internet link latency. Het kan je ook helpen ervoor te zorgen dat webservers niet alleen HTTP-queries behandelen, maar ook helpen vast te stellen dat ze de juiste pagina's retourneren en dat er geen malware actief is.

Netwerk- en servermonitoring stelt niets voor zonder notificaties. Nagios kent een volledig e-mail/SMS notificatiesysteem en escalatieplan. Deze kunnen gebruikt worden om intelligente beslissingen te maken over wie wanneer in te lichten. Dit kan je bergen slaaptekort besparen als je het goed gebruikt. Daarnaast heb ik Nagios' meldingen geïntegreerd met Jabber, dus zodra een uitzonderingsgeval plaatsvindt, krijg ik een IM van Nagios met de details van het probleem. De web GUI kan gebruikt worden om notificaties op te volgen en uit te schakelen; het kan ook kanttekeningen van beheerders bijhouden.

En alsof dit nog niet genoeg was, is er ook nog een kaartenfunctie waarmee alle gemonitorde devices in een logische representatie van hun plek in het netwerk kunnen worden geplot, compleet met kleurcodering om zodra problemen optreden, deze te tonen.

Het nadeel van Nagios is de configuratie. De config werkt het beste via de commandline en is lastig te leren voor nieuwkomers, al zullen lui die gewend zijn te werken met standaard Linux/Unix config bestanden zich snel thuis en op hun gemak voelen. Net als voor de andere tools in dit lijstje geldt, geldt ook voor Nagios dat de mogelijkheden gigantisch zijn, maar dat je soms behoorlijk wat moeite moet steken in het ontsluiten van diezelfde mogelijkheden.

Laat de complexiteit je niet afschrikken - Nagios heeft mijn hachje meermaals gered. De voordelen van een waarschuwingssysteem voor zoveel onderdelen van het netwerk zijn van onschatbare waarde. De tool is je tijd en inzet dubbel en dwars waard.

5. Icinga

Icinga begon ooit als fork van Nagios, maar is sinds kort herschreven en als Incinga 2 beschikbaar. Beide versies worden nog doorontwikkeld. Het grote voordeel van het werken met Icinga 1.x blijft dat de tool compatible is met Nagios-plugins en configuraties. Icinga 2 is ontworpen om kleiner en wendbaarder te zijn en biedt distributed monitoring en multithreading raamwerken die in Nagios en Icinga 1 niet aanwezig zijn. Je kunt van Nagios naar Icinga 1 migreren en van Icinga 1 naar Icinga 2.

Net als Nagios, kan Icinga gebruikt worden om alles dat IP praat te monitoren, kun je zo diep duiken in SNMP als je wenst en biedt de tooling ondersteuning voor talloze plug-ins en add-ons.

Er zijn verschillende web UI's voor Icinga en een groot verschil met Nagios is de configuratie van het geheel: binnen Icinga is het mogelijk in een grafische interface en hoeft het niet via configuratiebestanden te gebeuren. Wie liever niet met de command-line werkt, zal hier groot plezier aan beleven.

Icinga integreert netjes met veschillende graphing- en monitoringoplossingen als PNP4Nagios, inGraph en Graphite en biedt solide prestatievisualisaties. Ook met de rapportagemogelijkheden zit het bij deze tool wel snor.

6. NeDi

Als je ooit binnen je netwerk naar een apparaat hebt gezocht door te telnetten naar switches en door MAC-adres lookups uit te voeren of als je zou willen zien waar een device zich fysiek bevindt (of soms belangrijker nog, waar het eerder fysiek aanwezig was) , dan moet je zeker een kijkje nemen naar NeDi.

NeDi is een LAMP-applicatie die regelmatig de MAC-adressen en ARP-tabellen van je netwerkswitches naloopt en daarbij ieder device dat het ontdekt, netjes catalogiseert in een lokale database. Het is niet zo bekend als de andere genoemde projecten, maar het kan een heel handige tool zijn in bedrijfsnetwerken waar veel met devices rondgeschoven wordt.

Na het inloggen op de web GUI van NeDi, kun je via zoekopdrachtten uitvinden waar switches, switch poorten, draadloze AP's zich bevinden en daarvan het MAC-adres, IP-adres en de DNS-naam opvragen. NeDi verzamelt zoveel informatie van ieder netwerkdevice dat het tegenkomt en toont ook serienummers, firmwareversies, softwareversies, temperaturen, moduleconfiguraties en nog veel meer. Je kunt NeDi zelfs gebruiken om MAC-adressen van devices die vermist of gestolen zijn te markeren. Als ze op het netwerk terug verschijnen, kan NeDi je daar een melding van geven.

Discovery vindt plaats via cronjobs op vastgestelde intervals. Configuratie is niet ingewikkeld: er wordt gewerkt met een enkel configuratiebestand dat ruimte laat voor behoorlijk wat aanpassingen, bijvoorbeeld voor het skippen van devices, Je kunt zelfs een lijst devices invoeren waarop gecheckt moet worden, wat handig is als het betreffende netwerk losstaat van het eigen netwerk, zoals het geval is in een MPLS-implementatie.

NeDi gebruikt meestal het Cisco Discovery Protocol of Link Layer Discovery Protocol. Zodra je de configuratie eenmaal hebt neergezet, verloopt het werk van het ontdekken en in kaart brengen relatief snel. NeDi integreert tot op zekere hoogte met Cacti en als je de inloggegevens voor een Cacti-installatie opgeeft, kun je de ontdekte deviceinformatie koppelen aan Cacti-grafieken.

7. Ntop

Het Ntop-project - nu beter bekend als Ntopng - moest afgelopen decennium van ver komen. Maar Ntop (of Ntopng) is verworden tot een excellente netwerkverkeermonitor met een prima, eenvoudige webinterface. Het programma is geschreven in C en staat compleet op zichzelf. Je draait een geconfigureerd enkel proces om een specifieke netwerkinterface in de gaten te houden en dat is het ook eigenlijk.

Ntop biedt makkelijk te lezen grafieken en tabellen van huidig en historisch netwerkverkeer, waaronder protocolinformatie, bron, bestemming, transactiehistorie en hosts. Je treft er ook een indrukwekkende collectie grafiek-, kaart- en trendmogelijkheden aan, naast een plug-in raamwerk dat gebruikt kan worden voor tools als NetFlow en sFlow. En dan is er ook nog de Nbox, een hardware monitor bovenop Ntop.

Een van de handigste toepassingen van Ntop is het on-the-spot kunnen controleren van netwerkverkeer. Als mijn Cacti-aangestuurde PHP Weathermap opeens netwerklinks in het

Ook dit soort inzichten zijn onmisbaar. Ntop kan op iedere interface draaien geconfigureerd op switchniveau om poorten of VLAN's te monitoren.