Een heartbeat is een klein signaal dat systemen met vaste tussenpozen naar elkaar sturen, vaak elke seconde. De boodschap is simpel: ik leef nog. Blijft het signaal weg, dan concludeert de andere kant dat er iets mis is. Je komt het tegen tussen servers in een cluster, tussen back-upsystemen, en tussen bewakingssoftware en de apparaten die zij in de gaten houdt.
Dat mechanisme is de motor onder automatische uitwijk. Valt de actieve server stil, dan merkt de reserveserver dat binnen enkele seconden en neemt hij het over. Zonder heartbeat zou iemand dat handmatig moeten opmerken en omzetten, met een storing van minuten tot uren als gevolg. Voor systemen die je bedrijf echt stilleggen, zoals je server of telefonie, scheelt dat veel.
Waar het misgaat is bijna altijd het netwerk. Loopt het heartbeat-verkeer over dezelfde verbinding als al het andere verkeer, dan kan een drukke piek eruitzien als uitval en schakelt het systeem onnodig om. Erger nog is een situatie waarin beide servers denken dat de ander weg is. Daarom lopen heartbeats bij voorkeur over een aparte verbinding en werk je met een quorum als scheidsrechter.
Hoe werkt een heartbeat precies?
Twee afspraken bepalen alles: hoe vaak een systeem een heartbeat stuurt, en hoeveel signalen er mogen wegvallen voordat de ontvanger ingrijpt. Stuurt een server elke seconde een teken van leven en staat de drempel op vijf gemiste signalen, dan wordt uitval binnen vijf seconden opgemerkt. Zet je die drempel te laag, dan schakelt het systeem om bij het minste of geringste. Zet je hem te hoog, dan duurt een storing onnodig lang. De juiste instelling is een afweging tussen snel reageren en niet overreageren.
Het signaal zelf stelt weinig voor: een kort bericht over het netwerk, vaak niet meer dan een paar bytes. Juist die eenvoud maakt het bruikbaar. Er is geen zware controle voor nodig, dus je kunt het met hoge frequentie versturen zonder je verbinding te belasten.
Heartbeat, health check en bewaking
Een heartbeat zegt alleen: ik draai nog. Een health check gaat een stap verder en controleert of een dienst ook echt doet wat hij moet doen — of de database antwoordt, of de schijf niet vol zit. In de praktijk worden ze naast elkaar gebruikt: de heartbeat merkt uitval op, de health check merkt op dat iets wel draait maar niet meer werkt.
Je komt hetzelfde principe ook omgekeerd tegen. Een back-uptaak of een geplande verwerking meldt zichzelf na elke ronde bij een bewakingsdienst. Blijft die melding uit, dan krijg jij een signaal. Zo merk je dat een back-up niet meer draait op het moment dat het gebeurt, in plaats van op het moment dat je hem nodig hebt.
Veelgestelde vragen
Hoe vaak wordt een heartbeat verstuurd?
Tussen elke seconde en elke dertig seconden, afhankelijk van hoe snel je een storing wilt opmerken. Voor uitwijk tussen servers zit je aan de lage kant; voor het bewaken van een geplande taak is een melding per uur of per dag genoeg.
Wat gebeurt er als een heartbeat wegvalt door een netwerkstoring?
Dan denkt de ontvanger dat het andere systeem weg is, terwijl het gewoon draait. Dat is een vals alarm, en het is de belangrijkste reden om heartbeats over een aparte verbinding te laten lopen en met een quorum te werken.
Is een heartbeat hetzelfde als een ping?
Ze lijken op elkaar, maar een ping stuur je zelf op het moment dat je iets wilt weten. Een heartbeat komt uit zichzelf, met vaste tussenpozen, zonder dat iemand erom vraagt.
Heb je hier als MKB-bedrijf mee te maken?
Indirect wel. Je stelt het zelden zelf in, maar het bepaalt hoe snel je server, je telefonie of je back-up zichzelf herstelt als er iets misgaat. Vraag bij je leverancier na of uitwijk automatisch gaat en hoe lang dat duurt.
Wat OkayICT hierin doet: Wij richten uitwijk en bewaking zo in dat een storing automatisch wordt opgevangen in plaats van pas opgemerkt.
Meer lezen: Wat is clustering? · Wat is failover?
