Vai al contenuto

Monitoraggio cron job ed heartbeat che scova i fallimenti silenziosi.

Un cron job morto non genera errori né scrive log — lo scopri quando ti serve il backup. Assegna a ogni job un URL di ping e Uptimia apre un incidente entro un minuto dalla scadenza mancata.

Prova gratuita di 30 giorni · 50 monitor heartbeat Senza carta di credito Pronto per il GDPR
Da mancato ping a incidente
60s
Canali di avviso
12
Agenti da installare
0
Righe da integrare
1

Il backup che non è partito

Un backup notturno del database, pianificato per le 03:30. Lo script è morto prima di poter inviare il ping — nessun errore, nessun log, e l'unico segnale era il ping che non è mai arrivato.

03:30 Il ping notturno di db-backup non arriva maiLo script è morto — nessun rumore ultimo backup: obsoleto
03:33 Tolleranza esaurita — l'incidente si apreLa scansione al minuto lo intercetta: Slack, SMS, PagerDuty ultimo backup: obsoleto
03:41 Il reperibile prende in carico dall'avvisoUn clic sul link firmato — niente login alle 4 del mattino · MTTA 8 min ultimo backup: obsoleto
09:12 È lo stesso ping di successo a chiuderloIl job riparato viene eseguito — prova della correzione, non una promessa backup: aggiornati
3 minsilenzio → allarme
Nessuno è andato a controllare.09:12
Un cron job morto non può far scattare il proprio allarme — così il silenzio è diventato l'allarme. L'incidente ha raggiunto il team alle 03:33, e la correzione si è dimostrata da sola: il ping di successo l'ha chiuso, senza che nessuno dovesse riverificare nulla.
silenzio rilevato in 3 minpreso in carico tramite link firmatochiuso dal ping di successopianificazioni cron o a intervalli + tolleranza
E senza l'heartbeat? Un job di backup morto è invisibile — ogni notte in cui non gira è identica a ogni notte in cui gira. Lo scopri il giorno in cui ti serve un ripristino che non c'è. nessun ripristino

Monitora i job pianificati ovunque girino

Se può inviare una richiesta HTTP, Uptimia può sorvegliarlo — i ping sono solo in uscita, quindi i job dietro firewall o NAT si segnalano senza problemi.

Crontab Linux e systemdUna riga curl alla fine del job
Utilità di pianificazione di WindowsSnippet PowerShell già pronto
Kubernetes e DockerCronJob e container, allo stesso modo
GitHub Actions e JenkinsSnippet CI già pronti
1 url di ping per job silenzio oltre la tolleranza = allarme
Sidekiq, Celery e serverlessAnche worker di coda e funzioni
wp-cron e HerokuAnche le piattaforme gestite inviano ping
Dietro firewall, NAT e IoTSolo in uscita — nessuna porta da aprire
I job dall'altra parte sono quelli che non puoi permetterti di perdere: backup del database, cicli di fatturazione, ETL e sincronizzazioni dati, report, rinnovi di certificati, worker di coda e digest via email. una riga curl

Pianificazioni, segnali e log dei ping

Avvisi

Avvisato entro un minuto

Ogni monitor viene controllato ogni 60 secondi. Una scadenza mancata oltre la tua tolleranza apre un unico incidente e gli avvisi partono — nessuna raffica di ripetizioni, e si chiude solo quando torna un ping reale.

  • Catene di escalation e link di presa in carico a un clic — senza bisogno di login
  • Notifica di ripristino quando il job torna attivo
  • Finestre di manutenzione e pausa — niente falsi avvisi durante i deploy
Avvisa la persona successiva finché qualcuno non prende in carico
Ping mancato03:32:00
db-backup · notturno — atteso alle 03:30 + 2 min di tolleranza. La scansione a 60 secondi ha rilevato il silenzio; un solo incidente, nessuna raffica.
SlackEmailSMS+ PagerDuty…
1
Primo reperibile avvisato
03:32:00 · Slack, SMS ed email
non preso in carico
2
Il secondo reperibile prende in carico
03:41 · link firmato, senza login
MTTA 9 m
Ripristinato — ping di successo
09:12:04 · notifica di ripristino inviata
chiuso
Deploy stanotte? Le finestre di manutenzione e la pausa impediscono che un silenzio pianificato avvisi qualcuno. nessun avviso
Pianificazioni

La tua espressione cron, il tuo fuso orario

Incolla la riga già presente nel tuo crontab, oppure imposta un semplice intervallo da 30 secondi a 90 giorni. Le scadenze si adattano all'ora legale, così un job delle 03:30 resta un job delle 03:30 anche a ottobre.

  • Qualsiasi espressione cron a cinque campi — intervalli, passi, nomi, macro in stile @daily
  • Un periodo di tolleranza che imposti per ogni job — uno che a volte gira più a lungo non avviserà nessuno
  • Pianificazioni non valide o impossibili vengono rifiutate al salvataggio
Impedisci che un lavoro pianificato avvisi qualcuno
CRONCron a cinque campi*/15 * * * 1-5prossimo 09:45
INTIntervallo sempliceda 30 s fino a 90 giorniprossimo 09:30:30
@macro @dailyanche @hourly · @weeklyprossimo 00:00
interpretato nel
tuo fuso orario
Scadenza armata09:45:00
Uptimia ora si aspetta un ping entro le 09:45 + 2 min di tolleranza — le scadenze seguono il fuso orario del tuo account, cambi dell'ora legale inclusi.
tolleranza 2 mina prova di ora legalescansione a 60 s
Pianificazione impossibile? Un cron come 0 0 31 2 * non può mai scattare — viene rifiutato al salvataggio, non ignorato in silenzio. rifiutato
Log dei ping

Ogni esecuzione nel log dei ping

Apri un monitor e scopri quando è girato l'ultimo job, se sta slittando sempre più in là settimana dopo settimana e quanto è durata ogni esecuzione — senza dover entrare via shell nella macchina.

  • Barra degli impulsi delle ultime 12 ore e un grafico dei ping orari a confronto con la frequenza attesa
  • Durata dell'esecuzione a ogni ping quando il job invia un segnale di avvio
  • Ping in ritardo segnalati nel log — mai un avviso
Sorveglia la macchina su cui gira il job
LOGweb-cron · ogni 15 min
una riga per ping · i più recenti in cima
09:45:03 · +3 s · 212.47.163.9run 2.1 s
09:30:14 · +14 s · curl/8.5.0in ritardo · registrato
slot 09:15 — silenzio oltre la tolleranzamancato
09:00:02 · +2 s · 212.47.163.9run 2.0 s
Gli slot mancati vengono ricostruiti dove si trovava il silenzio — il log mostra il vuoto stesso, non solo i ping attorno a esso.
Barra degli impulsi delle 12 ore
Ping orari rispetto all'atteso
atteso 4 / ora — alle 09:00 ottenuti 3
Durata dell'esecuzione — avvio → successo
start 09:45:01 · success 09:45:03 → run 2.1 s
In ritardo ma vivo? Un ping oltre la tua soglia di ritardo viene segnalato nel log — segnalato, mai un avviso. solo registrato
Segnali

Coglie blocchi e crash, non solo il silenzio

Tre segnali coprono ogni modo in cui un job può fallire. Il successo azzera il conto alla rovescia; l'avvio attiva un limite di durata, così un job bloccato avvisa anche se non termina mai; il fallimento avvisa immediatamente.

  • /start — durata dell'esecuzione nel log, più rilevamento della durata massima
  • /fail — incidente immediato, tolleranza saltata
  • Funziona da qualsiasi client HTTP — curl, wget, PowerShell o il tuo codice
Controlla passo per passo l'API che il job chiama
/startEsecuzione avviata03:30:01 · limite di durata armatocoglie i blocchi
successUscita pulitasemplice URL di ping · GET o POSTconto alla rovescia azzerato
/failUscita con erroretolleranza saltataavvisa subito
3modalità
di fallimento
Job bloccato colto03:50:01
/start arrivato — nessun successo entro il limite di 20 minuti. Il job non è mai terminato, e vieni avvisato comunque.
blocco → limitecrash → /failsilenzio → mancato
Una sola riga di curl — l'URL di ping è tutto ciò che il job deve raggiungere. Nessun agente, nessuna libreria, niente da installare. curl -fsS

Come funziona il monitoraggio heartbeat

Un URL per job — nessun agente, nessuna libreria.

Passo 120 secondi

Crea un monitor

Dai un nome al job e imposta la sua pianificazione — a intervalli o cron. Il salvataggio genera un URL di ping privato.

Nome del monitor
db-backup · nightly
Pianificazione
IntervalloEspressione cron
30 3 * * *
Ogni giorno alle 03:30 · fuso orario dell'account
Periodo di tolleranza
2 min
AnnullaCrea monitor →
Passo 210 secondi

Aggiungi una riga al job

Aggiungi un curl in coda, oppure copia uno snippet già pronto — Crontab, Bash, PowerShell, GitHub Actions o PHP. Il monitor si arma da solo al primo ping.

crontab -e
30 3 * * * /usr/local/bin/db-backup.sh \
  && curl -fsS -m 10 --retry 3 \
     https://uptimia.com/p/hb_9f2…c41 >/dev/null
# il primo ping reale arma il monitor:
 ping ricevuto — db-backup · notturno è armato
Passo 3automatico

Ricevi un avviso quando tutto tace

Scadenza mancata più tolleranza = un incidente. Il tuo team viene avvisato entro un minuto, sui canali che già usi.

#ops-alerts
Uptimia 03:33
⚠ Ping mancato — db-backup · notturno
atteso alle 03:30tolleranza 2 minultimo ping 24 h fa
Inviato anche a EmailSMSPagerDuty

Aggiungi una riga al job.Scoprilo la notte stessa in cui si ferma.

Ogni job, ogni ping, ogni canale di avviso — gratis per 30 giorni, e nessuno di questi è un componente aggiuntivo a pagamento.

Inizia la tua prova gratuita di 30 giorni
30 giorni gratis senza carta di credito annulla quando vuoi

Incluso anche

API REST completa

Crea, modifica, metti in pausa ed elimina gli heartbeat dalla tua pipeline — più un endpoint di anteprima cron che valida le espressioni prima che vadano in produzione.

POST /api/v2/heartbeat 201 · ping_url: https://uptimia.com/p/hb_3d7…b52

Snippet già con il tuo token inserito

Crontab, Bash, PowerShell, GitHub Actions e PHP.

CrontabBashPowerShellActionsPHP

Reset del token con un clic

Il vecchio URL smette di funzionare nel momento in cui rigeneri il token.

hb_9f2…c41hb_e81…a07

Limiti di frequenza compatibili con il NAT

Conteggiati per monitor, non per IP — le flotte di worker sono benvenute.

300 ping / 10 min
per monitor

Ping di test

Lancia un ping dal pannello per vederlo comparire nel log.

manuale · registrato · non arma mai

Ogni tipo di Monitor in un solo account

Gli stessi gruppi, la stessa lista contatti e gli stessi ruoli di ogni altro tipo di monitor.

db-backup · nightlyHEARTBEAT www.caldmont.comUPTIME api.caldmont.comSSL

Dove arrivano i tuoi avvisi

Un backup mancato raggiunge le stesse persone, sugli stessi canali, di un sito che è andato giù.

Reperibilità & escalation
Diretto

12 canali, una sola lista contatti — la imposti una volta, e ogni tipo di monitor la usa.

Sfoglia l'elenco completo delle integrazioni
03:33 · incidente aperto — ping mancato · db-backup · notturno
#ops-alertsSlack
⚠ Ping mancato — db-backup · nightly
atteso alle 03:30tolleranza 2 minPrendi in carico ↩
+371 ··· 4082SMS
Uptimia: PING MANCATO db-backup · notturno. Atteso 03:30 +2m tolleranza. Ultimo ping 24h fa.
Posta in arrivoEmail
⚠ Ping mancato — db-backup · notturno
Atteso 03:30 (+2 min tolleranza) · ultimo ping ieri alle 03:30:07 · prendi in carico con un clic…
ProductionPagerDuty
TRIGGEREDPing mancato — db-backup · notturno
assegnato al reperibile · tramite integrazione Uptimia

Cos'è il monitoraggio di cron job ed heartbeat?

Il monitoraggio dei cron job — chiamato anche monitoraggio heartbeat — verifica che i task pianificati vengano davvero eseguiti. Invece di far interrogare il tuo server da Uptimia, ogni job invia una breve richiesta HTTP (un "ping") al proprio URL univoco quando viene eseguito. Se il ping non arriva entro la pianificazione più la tolleranza, Uptimia apre un incidente e ti avvisa.

Dall'esterno verso l'interno

Monitoraggio uptime

Uptimia
171+ sonde
controllo HTTP · ogni 30 s
Il tuo sito web
risponde alle richieste

Funziona quando c'è qualcosa da chiedere. Siti web e API rispondono; un cron job no.

Dall'interno verso l'esterno

Monitoraggio heartbeat

Il tuo cron job
anche dietro un firewall
ping · a ogni esecuzione
Uptimia
lo attende secondo pianificazione

nessun ping entro le 03:32 → l'incidente si apre · un ping /fail avvisa all'istante

Conosciuto anche come

Un interruttore a uomo morto per i cron

Ogni monitor heartbeat di Uptimia lo è — pianificazioni compatibili con cron, un periodo di tolleranza e avvisi ovunque lavori il tuo team.

I ping continuano ad arrivare — l'interruttore resta chiuso. Tutto tace.
I ping si fermano — l'interruttore si apre. L'incidente parte, gli avvisi escono.

Domande frequenti sul monitoraggio heartbeat

01Cosa deve fare davvero il mio job?+
Richiamare il proprio URL di ping una volta per ogni esecuzione — basta curl -fsS -m 10 --retry 3 https://uptimia.com/p/hb_… alla fine della riga del crontab. Funzionano GET, POST e HEAD. Il monitor resta inattivo fino al primo ping reale, quindi non può avvisarti mentre lo stai ancora collegando.
02Quando scatta esattamente un avviso?+
Quando l'orario atteso più la tolleranza passa senza che arrivi un ping. I monitor vengono controllati ogni minuto, quindi il rilevamento aggiunge al massimo 60 secondi. Un ping /fail avvisa immediatamente, e nulla riavvisa finché un incidente resta aperto.
03Il mio job si blocca invece di andare in crash — lo intercettate comunque?+
Sì — invia un ping a /start quando l'esecuzione comincia e imposta una durata massima. Se non arriva un successo entro il limite, si apre un incidente. Ottieni anche la durata di ogni esecuzione nel log.
04Perché il mio cron job non è partito?+
I soliti sospetti: il demone cron non è in esecuzione, il PATH o l'ambiente del job sono diversi dalla tua shell, i permessi sono cambiati, oppure la pianificazione è sbagliata. Il monitoraggio non risolve la causa — ma ti garantisce di scoprirlo entro un minuto, e il log dei ping mostra esattamente quando le esecuzioni si sono fermate.
05Posso monitorare i CronJob di Kubernetes, GitHub Actions o le attività di Windows?+
Sì. Qualsiasi cosa in grado di inviare una richiesta HTTP può inviare un ping — aggiungi un passo curl a un CronJob o a un workflow, oppure usa lo snippet PowerShell integrato per l'Utilità di pianificazione di Windows. Funzionano anche gli ambienti dietro firewall o NAT, perché i ping sono solo in uscita.
06Cosa registrate di ogni ping?+
Segnale, timestamp, scostamento dalla pianificazione, IP di origine, user agent e durata dell'esecuzione. Il body della richiesta non viene salvato — non inviare segreti o log.
07Inviamo ping da centinaia di worker dietro un solo NAT — è un problema?+
No. I limiti di frequenza si contano per monitor — 300 ping ogni 10 minuti — non per IP di origine, quindi indirizzi di uscita condivisi e flotte di worker non entrano in conflitto.
08In quale fuso orario girano le pianificazioni cron?+
Nel fuso orario del tuo account, con supporto all'ora legale. Al momento non esiste un fuso orario per singolo monitor; le pianificazioni a intervalli evitano del tutto la questione.
09Posso gestire gli heartbeat senza l'interfaccia?+
Sì — l'API REST crea, modifica, mette in pausa ed elimina i monitor, rigenera i token, invia ping di test e mostra l'anteprima delle espressioni cron (validità più le tre esecuzioni successive).
10Un'anteprima di link può far sembrare vivo, per errore, un job morto?+
No. Le anteprime di Slack e Teams, i SafeLinks di Outlook, le nuove scansioni di Mimecast e Proofpoint e altri bot di anteprima vengono riconosciuti dal loro user agent: il tocco viene comunque scritto nel log dei ping così puoi vederlo, ma non arma mai un monitor e non sposta mai in avanti la scadenza. Solo un client reale — curl, wget, PowerShell, il tuo codice — conta come un'esecuzione.
11Il monitoraggio heartbeat è un componente a pagamento?+
No. Ogni piano a pagamento include il monitoraggio heartbeat insieme a uptime, SSL, transazioni, DNS e server — mai come componente aggiuntivo a pagamento. I piani differiscono solo per quanti monitor heartbeat includono. Il piano gratuito non include gli heartbeat; la prova gratuita di 30 giorni sì (fino a 50 monitor), senza carta di credito.

Il tuo prossimo job mancato dovrebbe avvisarti.

Una riga alla fine di un job lo mette sotto sorveglianza — accanto al tuo monitoraggio uptime, SSL e server.

Prova gratuita di 30 giorni 50 monitor heartbeat inclusi Senza carta di credito Pronto per il GDPR
Il monitoraggio heartbeat è incluso in ogni piano a pagamento, accanto a ogni altro tipo di monitor.