Naar de inhoud
Alle artikelen

ServerScope: van uptime-monitoring naar een compleet monitoringplatform

ServerScope: van uptime-monitoring naar een compleet monitoringplatform

ServerScope is een project waar ik de afgelopen tijd veel aan heb gewerkt. Het idee is om servers, websites en domeinen vanuit één centrale omgeving te kunnen beheren en monitoren. In plaats van verschillende tools te gebruiken om te controleren of alles nog werkt, wil ik met ServerScope zoveel mogelijk informatie op één plek beschikbaar maken.

Tijdens de ontwikkeling is het project steeds verder uitgebreid. Wat begon als een platform gericht op monitoring, ontwikkelt zich steeds meer tot een oplossing waarmee je niet alleen problemen kunt herkennen, maar ook beter kunt begrijpen wat er aan de hand is.

Eén overzicht voor je infrastructuur

Een belangrijk onderdeel van ServerScope is het verzamelen van informatie over verschillende onderdelen van een technische omgeving. Denk aan servers, websites, domeinen en SSL-certificaten.

Het is handig om te weten of een website bereikbaar is, maar dat vertelt niet altijd het hele verhaal. Een server kan bijvoorbeeld online zijn terwijl een belangrijke dienst niet meer werkt. Ook kan een website bereikbaar blijven, terwijl een specifieke pagina fouten teruggeeft.

Daarom breid ik de monitoring steeds verder uit. Het doel is om meer inzicht te geven in de daadwerkelijke status van een omgeving, zonder dat het dashboard onnodig ingewikkeld wordt.

Uitgebreidere websitemonitoring

Een van de grotere uitbreidingen is monitoring per pagina. ServerScope kan hierdoor verder kijken dan alleen de homepage.

Je kunt bijvoorbeeld een loginpagina, prijspagina of API-endpoint controleren. Per pagina kun je verschillende controles instellen, zoals de verwachte HTTP-statuscode, maximale responstijd, redirects en tekst die wel of juist niet op de pagina mag voorkomen.

Ook response-headers kunnen worden gecontroleerd. Dit is bijvoorbeeld handig wanneer je wilt weten of een beveiligingsheader, zoals Strict-Transport-Security, nog aanwezig is.

Daarnaast kan ServerScope automatisch pagina's ontdekken via robots.txt, XML-sitemaps en interne links. De gevonden pagina's worden niet zomaar allemaal actief gemonitord: je kunt eerst bepalen welke pagina's je daadwerkelijk wilt toevoegen.

Hierdoor wordt het eenvoudiger om ook grotere websites overzichtelijk te monitoren.

Slimmere incidenten en minder ruis

Een ander belangrijk aandachtspunt is de manier waarop incidenten worden afgehandeld.

Wanneer meerdere onderdelen tegelijk problemen ondervinden, kan het lastig zijn om te bepalen of het om afzonderlijke problemen gaat of dat alles dezelfde oorzaak heeft. Meerdere meldingen kunnen dan voor onnodige verwarring zorgen.

ServerScope ondersteunt daarom het groeperen van gerelateerde incidenten. Wanneer bijvoorbeeld een server uitvalt, kunnen problemen met websites die daarvan afhankelijk zijn onder hetzelfde hoofdincident worden weergegeven.

Hiervoor kunnen relaties tussen servers, websites en diensten worden vastgelegd. ServerScope kan bepaalde relaties voorstellen, maar deze worden pas gebruikt nadat ze zijn bevestigd.

Het systeem probeert dus niet zomaar alle gelijktijdige storingen samen te voegen. Het doel is om verbanden inzichtelijk te maken wanneer daar daadwerkelijk een onderbouwing voor is.

Meer inzicht in serverdiensten

Naast het controleren van de bereikbaarheid van servers is ook de monitoring van individuele diensten uitgebreid.

ServerScope kan ondersteuning bieden voor diensten zoals Nginx, Apache, MySQL, PostgreSQL, Redis en PHP-FPM. Hierdoor kun je controleren of belangrijke onderdelen van een server nog actief zijn.

Ook wordt onderscheid gemaakt tussen een gestopte dienst, een agent die niet reageert en een server die daadwerkelijk onbereikbaar is.

Dat onderscheid is belangrijk, omdat niet iedere melding dezelfde actie vereist. Wanneer een specifieke dienst stopt, kan het probleem bijvoorbeeld veel beperkter zijn dan wanneer een complete server offline gaat.

De monitoringagent is bovendien ontworpen om gegevens uit te lezen en geen externe commando's op de server uit te voeren.

Voorspellingen op basis van meetgegevens

Een functie die ik interessant vind, is het herkennen van afwijkingen en het voorspellen van capaciteitsproblemen.

ServerScope kan historische gegevens gebruiken om onder andere CPU-gebruik, geheugen, swap, netwerkverkeer, schijfgroei, responstijden en foutpercentages te beoordelen.

Wanneer een schijf bijvoorbeeld steeds voller raakt, kan het systeem inschatten wanneer deze bij voortzetting van de huidige trend zijn capaciteit bereikt.

Daarbij is het belangrijk dat voorspellingen niet zomaar uit beperkte gegevens worden afgeleid. Daarom wordt rekening gehouden met de beschikbare meetperiode en de betrouwbaarheid van de voorspelling.

Het doel is om problemen eerder zichtbaar te maken, zodat je niet pas hoeft in te grijpen wanneer een server daadwerkelijk tegen zijn grenzen aanloopt.

Betere rapportages en historische informatie

Monitoring wordt een stuk nuttiger wanneer je ook kunt terugkijken naar wat er eerder is gebeurd.

Daarom zijn de rapportages uitgebreid met informatie over beschikbaarheid, detectietijden, incidentduur en terugkerende problemen. Ook is het mogelijk om incidentgegevens te exporteren en rapporten af te drukken of als PDF op te slaan.

Daarnaast houdt ServerScope een geschiedenis bij van waargenomen certificaten. Hierdoor kun je onder andere bekijken welke certificaten zijn gebruikt, wie ze heeft uitgegeven en binnen welke periode ze geldig waren.

Ook de historische gegevens van paginacontroles en voorspellingen kunnen onder ingestelde bewaartermijnen worden opgeschoond.

De techniek achter het platform

Bij de ontwikkeling kijk ik niet alleen naar nieuwe functies, maar ook naar de manier waarop verschillende onderdelen samenwerken.

De API is uitgebreid met endpoints voor onder andere paginacontroles, automatische pagina-ontdekking, afhankelijkheden, diensten en voorspellingen. Daarnaast ondersteunen schrijfverzoeken een Idempotency-Key, zodat herhaalde verzoeken niet onbedoeld dezelfde actie meerdere keren uitvoeren.

Ook de betrouwbaarheid van ServerScope zelf krijgt aandacht. Via de systeemstatus kan worden gecontroleerd of geplande taken worden uitgevoerd, de wachtrij wordt verwerkt en meldingen correct worden afgeleverd.

Op het gebied van beveiliging wordt rekening gehouden met risico's bij het automatisch benaderen van websites. Interne adressen en cloud-metadata-adressen worden geblokkeerd, ook wanneer redirects worden gevolgd.

Dit soort maatregelen zijn belangrijk bij een platform dat automatisch externe websites controleert.

Wat volgt hierna?

ServerScope heeft inmiddels veel meer mogelijkheden dan een eenvoudige uptime-monitor. Het platform combineert servermonitoring, websitemonitoring, incidentbeheer, historische gegevens en rapportages.

Toch is er altijd ruimte voor verdere ontwikkeling. Een belangrijk aandachtspunt blijft ervoor zorgen dat alle onderdelen betrouwbaar samenwerken en dat de informatie in het dashboard daadwerkelijk helpt bij het oplossen van problemen.

Ik wil ServerScope verder ontwikkelen tot een platform waarmee je niet alleen ziet dát er iets misgaat, maar ook sneller begrijpt waar je moet zoeken.

Uiteindelijk draait het om drie dingen: problemen eerder ontdekken, minder onnodige meldingen ontvangen en meer controle krijgen over je eigen infrastructuur.

↑ ↓ navigeren ↵ openen Esc sluiten