Heartbeat-monitorozás
Az éjszakai mentés, amely csendben leállt, az a kimaradás, amit senki sem lát. Hagyja, hogy minden feladat maga jelentkezzen, és értesüljön az elmaradt futásról.
Az ellenőrzés, amely az Ön infrastruktúráján belül fut
Minden más ellenőrzésünk kívülről kérdez: nyitva van-e a port, válaszol-e az oldal, megvan-e még a rekord. Egy cron-feladat egyikre sem válaszol — olyan gépen fut, amelyet senki nem ér el, nem hoz létre végpontot, és amikor csendben leáll, az egyetlen tünet egy mentés, amit senki nem készített el, vagy egy számla, amit senki nem küldött ki. A heartbeat ezt megfordítja. A Pulsitor privát tokent ad a feladatnak, a feladat minden sikeres futás végén egy fejlécben küldi el egyetlen rögzített címre, mi pedig figyeljük az órát. Ha az ablak ping nélkül zárul, az incidens magától megnyílik, és ugyanazokon a csatornákon érkezik, mint minden más ellenőrzésnél.
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 -H "X-Heartbeat-Token: YOUR-TOKEN" https://external-services.pulsitor.com/heartbeat/ping
A parancs után láncolva, így egy hibás mentés soha nem jelent sikert.
Hogyan működik a heartbeat-ellenőrzés
Amiben a Pulsitor már az első naptól erős.
A feladat maga jelentkezik
Adjon egy sort a cron-bejegyzés, a worker vagy a deploy szkript végére. Egy GET, POST vagy HEAD kérés elég, a monitor tokenjével egy fejlécben — nincs ügynök, nincs könyvtár, nincs telepítenivaló.
A periódust és a ráhagyást Ön adja meg
Adja meg, milyen gyakran kell jelentkeznie a feladatnak — egy perctől egy hétig —, és mennyit késhet, mielőtt elmaradtnak számít. Egy mentés, amely általában húsz percig tart, húsz perc türelmi időt kap.
Az incidenst a csend nyitja meg
Ha az ablak ping nélkül zárul, az incidens abban a pillanatban kezdődik, amikor a jelentésnek meg kellett volna érkeznie, nem akkor, amikor észrevettük. És magától lezárul, amint a feladat újra jelentkezik.
Mit figyelnek vele
Mindent, aminek menetrend szerint futnia kell, és nincs saját címe.
Cron-feladatok
Éjszakai mentések, számlázási futások, importok, gyorsítótár-melegítés. A klasszikus eset: egy crontab-sor, amely a szerver újjáépítésekor elhallgatott, és egy hónapig senki nem vette észre.
Queue workerek
A leállt worker csendben növekvő várólistát hagy maga után. Az egyes kötegek végéről érkező heartbeat elmondja, hogy valóban fogyasztja a sort, nem csak szerepel a folyamatlistán.
Mentések és exportok
Csak akkor jelentkezzen, ha a dump lefutott és a feltöltés megerősítve. Az a mentés, amely a siker előtt jelentkezik, rosszabb, mint a monitorozás teljes hiánya.
Eszközök és ügynökök
IoT-eszközök, edge boxok és NAT mögötti szkriptek, amelyeket az internetről semmi nem ér el. Kívülről nem pingelhetők, de kifelé tudnak szólni.
Egyetlen sor a már meglévő feladatban
A teljes integráció egyetlen kérés: a tokenje egy fejlécben, elküldve a futás végén, amikor a munka valóban sikerült.
Crontab
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 -H "X-Heartbeat-Token: YOUR-TOKEN" https://external-services.pulsitor.com/heartbeat/ping
A parancs után láncolva, így egy hibás mentés soha nem jelent sikert.
Shell szkript
#!/bin/sh set -e pg_dump mydb | gzip > /backups/mydb.sql.gz aws s3 cp /backups/mydb.sql.gz s3://backups/ curl -fsS -m 10 --retry 3 -H "X-Heartbeat-Token: YOUR-TOKEN" https://external-services.pulsitor.com/heartbeat/ping
A rövid időkorlát és néhány újrapróbálkozás megakadályozza, hogy a lassú hálózat hamis incidenst nyisson.
Alkalmazáskód
Http::withHeaders(['X-Heartbeat-Token' => $token])
->timeout(10)
->retry(3, 200)
->get('https://external-services.pulsitor.com/heartbeat/ping');
Bármelyik HTTP-kliens megteszi. A válaszból semmit nem olvasunk ki, csak azt, hogy megérkezett.
Miért így figyelje a feladatot
Elkapja a csendes hibát
Az a feladat, amely el sem indul, nem dob hibát és nem ír naplót. Az egyetlen jel a hiánya — és pontosan ezt hivatott észrevenni a heartbeat.
Elér oda, ahová a szondák nem
Tűzfal mögé, egy laptopra, belső hálózatba, nyilvános cím nélküli eszközre. Ha kimenő kérést tud küldeni, monitorozható.
Ugyanazok az incidensek, ugyanazok a csatornák
Az elmaradt heartbeat ugyanolyan incidens, mint bármelyik másik: ugyanazok a csatornák, ugyanaz az előzmény és ugyanazok a státuszoldalak, amelyeket ügyfelei már olvasnak.
A heartbeat-monitorozás számokban
Mit tesz valójában az ellenőrzés.
| Tulajdonság | Érték |
|---|---|
| Mit ellenőrzünk | Hogy a feladat kérése megérkezik-e a várt ablakban |
| Elfogadott metódusok | GET, POST, HEAD |
| Hogyan azonosítjuk a monitort | Token az X-Heartbeat-Token fejlécben, vagy Authorization: Bearer formában |
| Várt periódus | 1 perctől 7 napig |
| Türelmi idő | 30 másodperctől 24 óráig |
| Mikor nyílik incidens | Egy várt ablak ping nélkül zárult |
| Értesítési csatornák | 14 |
| Elérhető | Fizetős csomagok, 6 EUR/hó ártól |
Kérdések a heartbeat-monitorozásról
Mit mond el a heartbeat, és mit nem.
Mi pontosan a heartbeat-monitor?
Cél nélküli monitor. Nem mi hívjuk az Ön szolgáltatását, hanem az Ön feladata hívja minden futáskor a mi egyetlen címünket, saját tokenjét egy fejlécben hozva. Az ellenőrzés akkor sikeres, ha a kérés időben megérkezik, és akkor bukik el, ha nem.
Mikor küldje el a feladat a pinget?
A legvégén, amikor a munka sikerült. Az indításkori hívás olyan futást jelentene, amely félúton még elbukhat — és pontosan ez az a kimaradás, amit el akar kapni.
Mire jó a türelmi idő?
A valódi feladatok csúsznak. A türelmi idő azt adja meg, mennyit késhet a jelentés, mielőtt a monitor feladja — így az a mentés, amely néha tíz perccel hosszabb, nem ver fel senkit éjjel.
Miért fejlécben van a token, és nem az URL-ben?
Mert a címben lévő titok nem marad titok: bekerül a hozzáférési naplókba, az útközbeni minden proxyba, a shell előzményeibe és a feladatot futtató gép folyamatlistájába. Fejlécben egyikbe sem kerül bele, és minden monitor ugyanazt a címet hívja.
Figyelhetek tűzfal mögötti feladatot?
Igen, és éppen ez a lényeg. Semminek nem kell elérnie a gépét — a feladatnak csak kimenő HTTPS-kérést kell tudnia küldeni.
Mi történik, ha a feladat újra jelentkezik?
Az incidens a következő pingnél magától megoldódik, a megoldásról szóló értesítés pedig ugyanazokon a csatornákon megy ki, amelyeken a riasztás érkezett.
Elérhető a heartbeat-monitorozás az ingyenes csomagban?
Nem. A heartbeat-monitorok a fizetős csomagok részei, a DNS-, SSL- és domain-lejárati ellenőrzések mellett.
Feladatfigyelés 3 lépésben
Hozzon létre heartbeat-monitort, nevezze el a feladat után, és adja meg, milyen gyakran jelentkezzen.
Másolja a tokent a feladatba, és küldje el a fejlécben minden sikeres futás végén.
Válassza ki az értesítési csatornákat, az óra figyelését pedig hagyja ránk.