Een health check is een geautomatiseerde periodieke probe die naar een service of eindpunt wordt verzonden om te bepalen of deze gezond, ongezond of verslechterd is. Load balancers, DNS failover-systemen en container orchestrators gebruiken health checks om verkeer alleen naar werkende instanties te routeren en om failover- of herstelacties te starten wanneer services onbereikbaar worden.
Veelgebruikte health check-mechanismen zijn:
- TCP check: Probeert een TCP-handshake naar een specifieke host en poort. Succes geeft aan dat de service luistert; er wordt geen validatie op applicatielaagniveau uitgevoerd.
- ICMP check: Stuurt een standaard ping (Echo Request/Reply per RFC 792) om basisnetwerkconnectiviteit te testen.
- HTTP(S) check: Stuurt een GET- of HEAD-request naar een specifiek pad (zoals
/healthof/status) en valideert de HTTP-antwoordcode (doorgaans 200) en optionele inhoud van het antwoordlichaam. - Custom protocol check: Toepassingsspecifieke probes die service-logica of gegevensbeschikbaarheid verifiëren.
Health checks worden uitgevoerd met vaste intervallen (vaak elke 5–30 seconden). Na een geconfigureerd aantal opeenvolgende fouten of successen markeert het systeem een instantie als ongezond of gezond. Wanneer een load balancer een ongezonde backend detecteert, stopt deze met het sturen van nieuwe requests naar die instantie totdat deze hersteld is.
TipDefinieer betekenisvolle health check-eindpunten die echte service-gereedheid weerspiegelen—niet alleen dat het proces draait. Een service kan HTTP 200 retourneren maar geen toegang hebben tot zijn database.
Health checks zijn essentieel voor het handhaven van uptime en het verminderen van MTTR door detectie en isolatie van fouten te automatiseren.