InfraNestInfraNest
Monitors & checks

Een cronjob of script monitoren

De meeste checks benaderen iets van jou. Een heartbeatmonitor werkt andersom: jouw back-upscript, cronjob of geplande taak meldt zich bij…

Deze handleiding is voor iedereen die wil weten of een back-upscript, cronjob of geplande taak stilletjes stopt met draaien — in plaats van een monitor die iets van jou controleert, wacht deze op een check-in van jouw taak.

Overzicht

  • Een heartbeatmonitor werkt omgekeerd: jouw script roept InfraNest aan wanneer het klaar is, in plaats van dat InfraNest het script aanroept.
  • Als de check-in niet op tijd binnenkomt, waarschuwt InfraNest je.
  • Het is de beste manier om te signaleren dat een taak stopt met draaien zonder dat er ergens een fout verschijnt die je zou opmerken.

Eén instellen

  1. Ga naar Monitoring en selecteer add a monitor.
  2. Kies Heartbeat / Cron monitor als type.
Een cronjob of script monitoren
  1. Geef het een naam die je herkent in een melding — “Nightly database backup” is beter dan “job 1”.
  2. Stel het check interval in op hoe vaak de taak zou moeten draaien.
  3. Stel een grace period in — extra tijd die wordt toegestaan voordat de taak als te laat wordt beschouwd. Een back-up die meestal vier minuten duurt maar soms acht minuten, heeft een grace period nodig die ruim langer is dan die uitloop.
  4. Selecteer create monitor.

Voor dit type voer je geen URL in — InfraNest maakt er zelf een aan wanneer je opslaat.

Je taak laten inchecken

  1. Open de monitor om de ping URL te zien, plus een kant-en-klare eenregelige opdracht om te plakken.
  2. Voeg die regel toe aan het einde van je script of cronjob, zodat deze alleen wordt uitgevoerd als de taak daadwerkelijk is geslaagd:
0 3 * * *  /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://your-infranest-url/api/heartbeat/your-uuid

De && is belangrijk: dit betekent dat de check-in alleen plaatsvindt als de back-up zelf succesvol is afgerond. Een mislukte taak blijft dan stil, en die stilte is wat de melding activeert.

TipGebruik de kopieerknop in plaats van de URL opnieuw te typen — de identifier erin is uniek voor deze monitor.

Vanuit een GitHub Actions-workflow

Als je back-up, verlenging of nachtelijke synchronisatie draait als een geplande GitHub Actions-workflow, werkt dezelfde monitor — de workflow meldt zich als laatste stap.

  1. Open in je repository op GitHub Settings → Secrets and variables → Actions en voeg een repository secret toe met de naam HEARTBEAT_URL, met de ping URL als waarde.
  2. Voeg deze stap toe aan het einde van de job:
      - name: Check in with InfraNest
        run: curl -fsS -m 10 --retry 3 "$HEARTBEAT_URL"
        env:
          HEARTBEAT_URL: ${{ secrets.HEARTBEAT_URL }}

GitHub slaat de resterende stappen over zodra er één mislukt, dus de check-in vindt alleen plaats als alles daarvoor is geslaagd — hetzelfde effect als de && hierboven.

Dit vangt ook iets op dat GitHub niet duidelijk meldt: in een openbare repository schakelt GitHub geplande workflows uit na 60 dagen zonder enige activiteit in de repository. De workflow stopt dan met draaien, er mislukt niets, en de ontbrekende check-in is wat de melding activeert.

Wat er daarna gebeurt

  • Elke check-in markeert de monitor als Actief en registreert de tijd als laatste ping.
  • Een gloednieuwe monitor blijft in afwachting totdat het eerste venster is verstreken, zodat je de tijd hebt om de check-in in te stellen zonder hierover een melding te krijgen.
  • Als er niets binnenkomt binnen het interval plus de grace period, gaat de monitor down en wordt er een incident geopend, waardoor je gebruikelijke meldingsbestemmingen worden geactiveerd.
  • De volgende check-in lost het incident op en laat je weten dat alles weer werkt — je hoeft het niet handmatig te sluiten.

NoteEen heartbeatmonitor pauzeren is veilig: de ping URL blijft normaal reageren, dus een taak die er nog steeds naartoe meldt, zal geen fouten gaan rapporteren. InfraNest stopt simpelweg met kijken totdat je hervat.

Tips

  • GitHub kan geplande workflows enkele minuten later starten wanneer het druk is. Geef de monitor een grace period die hiermee rekening houdt, bovenop de eigen looptijd van de taak.
  • Behandel de ping URL als een geheim. Iedereen die deze heeft, kan jouw taak als gezond rapporteren — wat een echte storing zou kunnen verbergen.

Probleemoplossing

  • No ping received yet bij de monitor betekent dat InfraNest nog helemaal niets van de taak heeft gehoord. Voer de curl-regel handmatig uit vanaf dezelfde machine: als de monitor daardoor groen wordt, ligt het probleem in je script, niet hier.
  • Als de machine geen uitgaande internettoegang heeft, kan de check-in niet aankomen — sta uitgaand HTTPS-verkeer naar InfraNest toe.
  • Een monitor die elke nacht op hetzelfde tijdstip een melding geeft, heeft meestal een grace period die korter is dan de werkelijke worstcasetijd van de taak.

Gerelateerde artikelen

Begin in seconden

Breng je hele infrastructuur samen in één modern dashboard.

Gratis plan · Geen creditcard nodig · In enkele minuten ingesteld