Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Raspberry Pi: monitorare dispositivi con Watchdog

Watchdog: implementazione su Raspberry Pi per monitorare server e altri device da riavviare automaticamente in caso di malfunzionamenti
Watchdog: implementazione su Raspberry Pi per monitorare server e altri device da riavviare automaticamente in caso di malfunzionamenti
Link copiato negli appunti

In rete esistono diversi tool con cui monitorare l'attività di computer e server. In passato abbiamo parlato di strumenti simili ma in questo tutorial vogliamo focalizzarci su Watchdog.

Cosa è Watchdog e a cosa serve

Questo software open source si occupa di monitorare lo stato di un device. Quando quest'ultimo perde la connessione alla rete diventando inaccessibile da remoto, o comincia a bloccarsi a causa di qualche processo, Watchdog fa in modo che il sistema operativo si riavvi autonomamente. Senza costringere l'utente ad intervenire manualmente o ad essere fisicamente presente nei pressi del dispositivo.

Chi si occupa della manutenzione di server sparsi in diverse posizioni geografiche comprende facilmente l'utilità di Watchdog. Capiremo quindi come implementarlo utilizzando Raspberry Pi.

La nota board ARM low-cost è infatti molto popolare e può essere impiegata per progetti di vario tipo, come ad esempio NAS per il backup o server DNS. Implementare Watchdog all'interno di tali configurazioni può essere utile per assicurarsi che, in caso di problemi, un device proceda con un riavvio in autonomia. Senza che l'utente debba intervenire fisicamente, ad esempio per staccare e riattaccare il cavo di alimentazione.

Watchdog funziona in modo molto semplice. Si tratta in termini tecnici di un "temporizzatore hardware". Esso fa sì che la CPU di un dispositivo rilevi una situazione di stallo o il loop infinito di un processo. Tale sistema di monitoraggio permette al processore di prendere provvedimenti con soluzioni come, appunto, il reboot della macchina.

Viene utilizzato anche per eseguire il debug di altri applicativi e per innescare una serie di azioni di controllo e messa in sicurezza del sistema. Per tali motivazioni Watchdog su Linux agisce come un modulo kernel. Di base è stato infatti implementato per evitare che il sistema rimanga bloccato a causa di un kernel panic.

La guida che andremo ad illustrare può essere utilizzata da qualsiasi tipologia di utente. Non servono infatti conoscenze pregresse del mondo Linux o di Raspberry Pi per utilizzare correttamente Watchdog nella nostra configurazione.

Eseguire Watchdog su Raspberry Pi OS tramite systemd

In questa guida daremo per scontato che la prima configurazione di Raspberry Pi sia completata. Procediamo quindi con la configurazione di Watchdog sfruttando il gestore dei demoni systemd. Tale componente è ormai uno standard nel mondo Linux e quasi tutte le distribuzioni lo usano come sistema di init.

systemd supporta nativamente Watchdog, quindi impostarlo risulta semplicissimo e non è necessario installare pacchetti aggiuntivi o tool di terze parti. Apriamo la shell e andiamo a modificare il file system.conf tramite l'editor di testo nano:

sudo nano /etc/systemd/system.conf

Nella parte finale di tale file dovremo aggiungere queste due stringe di testo:

RuntimeWatchdogSec=15
RebootWatchdogSec=3min

L'opzione chiamata RuntimeWatchdogSec è il valore che Watchdog usa per capire quanto tempo deve attendere prima di eseguire il reboot in caso di problemi. Se l'hardware del device dovesse malfunzionare per più di 15 secondi Watchdog, non ricevendo più segnali dal sistema, provvederà al riavvio. Il valore indicato non può essere incrementato per via di alcuni limiti della board ARM

RebootWatchdogSec indica invece a Watchdog il tempo che deve attendere prima di avviare il reboot vero e proprio. In questo esempio abbiamo inserito un valore pari a 3 minuti. Salviamo le modifiche con un CTRL+O e chiudiamo nano con CTRL+X. Per rendere effettive le modifiche dobbiamo riavviare il demone di systemd:

sudo systemctl daemon-reload

o in alternativa il sistema operativo nel suo insieme:

sudo reboot

La configurazione è ora completa. Come si può notare, l'uso di Watchdog tramite systemd è davvero semplicissimo ma per alcuni utenti potrebbe non essere sufficiente. Ecco perché ora illustreremo un altro metodo per implementare Watchdog.

Installare e configurare Watchdog su Raspberry Pi OS

Il vantaggio di sfruttare direttamente l'applicativo di Watchdog, senza quindi affidarci al setting su systemd, permette di adottare configurazioni più variegate e magari tarate su specifiche esigenze dell'utente.

Si può impostare ad esempio Watchdog in modo tale che esegua un riavvio quando si raggiungere un certo grado di consumo di risorse hardware. Oppure indicargli di riavviare il device se il network adapter smette di funzionare.

Procediamo quindi tramite la CLI (Command Line Interface) del gestore di pacchetti APT (Advanced Packaging Tool) e verifichiamo innanzitutto la disponibilità di update:

sudo apt update && sudo apt upgrade -y

Il pacchetto di Watchdog si trova nei repository ufficiali quindi non serve aggiungere un PPA (Personal Package Archive) extra:

sudo apt install watchdog

Ora, sempre tramite nano, spostiamoci nel file di configurazione del programma:

sudo nano /etc/watchdog.conf

A questo punto avremo a disposizione una pletora di impostazioni come ad esempio quella del timeout per il reboot:

watchdog-timeout = 15

oppure il reboot automatizzato con un determinato carico di sistema:

max-load-1 = 24

o il reset nel caso in cui una determinata interfaccia di rete smetta di funzionare:

interface = eth0

Una volta eseguite le modifiche desiderate salviamo il tutto come indicato in precedenza. Per rendere operative le nostre impostazioni dovremo avviare l'applicativo con systemd:

sudo systemctl enable watchdog && sudo systemctl start watchdog

Conclusioni

Watchdog è un applicativo utile non solo per i sysadmin, che spesso hanno a disposizione altri strumenti per eseguire il reboot dei sistemi da remoto, ma anche per utenti casalinghi che desiderano assicurare il buon funzionamento di un device anche in caso di imprevisti o situazioni particolari, come appunto l'eccessivo consumo di risorse causato da bug software o il malfunzionamento temporaneo dell'interfaccia di rete a cui è connesso Raspberry Pi.

Watchdog è dunque una soluzione consigliata soprattutto per chi si affida a soluzioni self-hosted di varia natura. Se infatti il nostro NAS dovesse bloccarsi rischieremmo di perdere dati non salvati nei backup o potremmo non ritrovare le registrazioni delle nostre telecamere di sicurezza.

Ti consigliamo anche