Installazione e configurazione di Watchdog

Come proteggere il server da blocchi e freeze con un watchdog timer.

Il watchdog timer è un meccanismo di protezione hardware che impedisce al server di bloccarsi indefinitamente. Il principio è semplice: il sistema invia periodicamente un segnale „heartbeat" per azzerare il timer. Se questo segnale si interrompe — perché il sistema si è bloccato, è andato in crash o è entrato in un loop infinito — il timer scatta e avvia un riavvio. A seconda della configurazione, il riavvio può essere un normale riavvio software oppure un riavvio forzato a livello hardware (ad esempio, attivando la linea RST).

Sui server dedicati e sui VPS ai quali non puoi accedere fisicamente, questo tipo di ripristino automatico è davvero prezioso.

Installazione su Ubuntu / Debian

sudo apt-get install watchdog

Il pacchetto installa i seguenti file principali:

  • /etc/init.d/watchdog — script di init del servizio
  • /etc/watchdog.conf — file di configurazione principale
  • /etc/default/watchdog — opzioni di avvio
  • /dev/watchdog — il dispositivo watchdog
  • /usr/sbin/watchdog — il binario watchdog

Parametri principali in /etc/watchdog.conf

Timing e logging:

  • interval — frequenza con cui il watchdog scrive sul dispositivo. Default: 10 secondi. Valori superiori a 60 secondi richiedono il flag -f all'avvio.
  • logtick — controlla con quale frequenza gli eventi vengono scritti nel log. Con logtick = 60 e interval = 10, gli eventi vengono registrati al massimo una volta ogni 10 minuti.

Carico di sistema:

  • max-load-1, max-load-5, max-load-15 — valori massimi accettabili di carico medio del sistema su 1, 5 e 15 minuti. Se una soglia viene superata, il watchdog avvia un riavvio. Impostare a 0 per disabilitare un controllo.

Memoria e temperatura:

  • min-memory — memoria virtuale libera minima accettabile. Impostare a 0 per disabilitare.
  • max-temperature — temperatura massima accettabile prima che venga avviato un riavvio.
  • watchdog-device — percorso del dispositivo watchdog (in genere /dev/watchdog).
  • temperature-device — percorso del sensore di temperatura.

Monitoraggio di file e processi:

  • file e change — monitora un file per eventuali modifiche. change imposta l'intervallo di verifica.
  • pidfile — percorso al file PID del processo da tenere in esecuzione. Esempio: pidfile = /var/run/apache2.pid. Se il processo non è attivo, il watchdog riavvia il sistema.

Rete:

  • ping e interface — verifica la connettività di rete eseguendo il ping di un host. interface specifica quale interfaccia di rete utilizzare.

Test personalizzati:

  • test-binary — percorso a uno script o programma di test personalizzato.
  • test-timeout — tempo massimo di esecuzione del test in secondi (0 per nessun limite).
  • repair-binary — programma eseguito automaticamente quando viene rilevato un problema, prima di ricorrere al riavvio.

Notifiche e priorità:

  • admin — indirizzo email per le notifiche degli eventi. Lasciare vuoto per disabilitare.
  • realtime = Yes — blocca il modulo watchdog in memoria in modo che non possa essere rimosso con lo swap.
  • priority — priorità di scheduling in tempo reale per il processo watchdog.

I nostri prodotti e servizi

Hosting WebServizi di hosting affidabili per siti web di qualsiasi dimensione.
Ordina
VPSInfrastruttura cloud flessibile con accesso root completo.
Ordina
Server DedicatiServer dedicati per le massime prestazioni.
Ordina

Esempio di configurazione con Intel TCO Watchdog

Caricare il modulo del kernel:

sudo modprobe iTCO_wdt

In /etc/watchdog.conf, decommentare o aggiungere:

watchdog-device = /dev/watchdog
interval = 10

In /etc/default/watchdog, specificare il nome del modulo:

watchdog_module="iTCO_wdt"

Per abilitare il logging dettagliato su syslog a scopo di debug:

watchdog_options="-v"

Riavviare il servizio:

sudo /etc/init.d/watchdog restart

Monitorare i log in tempo reale per verificare che tutto funzioni correttamente:

tail -f /var/log/syslog

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci