Monitorare il Suo server
Modulo 8: Backup e monitoraggio · Tempo di lettura: 10 minuti
Obiettivo della lezione: Al termine di questa lezione saprà decidere che cosa monitorare del Suo server (dall'esterno e dall'interno), quali soglie hanno senso e come fare in modo che una notifica La raggiunga davvero senza che Lei venga sommerso dalle notifiche.
Concetti chiave: monitoraggio dall'esterno, monitoraggio dall'interno, uptime, controllo http, controllo delle porte, scadenza del certificato, spazio su disco, memoria, load, heartbeat (dead man's switch), soglia, canale di notifica, affaticamento da allarmi, grafici del provider
Perché monitorare?
Senza monitoraggio Lei viene a sapere dei problemi dai Suoi clienti, oppure non ne viene a sapere affatto. Un sito web fermo da sabato, un certificato scaduto, un disco pieno, un backup che fallisce in silenzio da tre settimane: tutte cose che avrebbe potuto vedere in tempo. Monitorare significa che un programma controlla di continuo e La avvisa quando qualcosa non va.
Un buon monitoraggio risponde a due domande:
- Funziona per l'utente? Questo si misura dall'esterno.
- Qualcosa sta per andare storto? Questo si misura dall'interno: disco, memoria, aggiornamenti, backup.
Dall'esterno: ciò che vede l'utente
Il monitoraggio dall'esterno gira su una macchina diversa dal Suo server, preferibilmente presso un altro provider. È logico: se il Suo server è fermo, non può più avvisare da solo.
| Controllo | Che cosa | Perché |
|---|---|---|
| http(s) | recupera una pagina ogni minuto e verifica il codice di stato (200) ed eventualmente una parola nella pagina | il sito web funziona davvero, non solo il server |
| porta | si connette per esempio alla porta 22 o 443 | il servizio è in ascolto e raggiungibile |
| ping | invia un pacchetto ICMP | il server è vivo (ma non dice nulla sul Suo sito web) |
| certificato | legge il certificato e la data di scadenza | avvisa con largo anticipo prima che scada |
| DNS | interroga il record A | il nome punta ancora al server giusto |
Il certificato merita un'attenzione particolare. I certificati Let's Encrypt hanno una validità breve e vengono rinnovati automaticamente (lezione 7.3), ma se il rinnovo fallisce in silenzio, Lei se ne accorge solo quando i visitatori ricevono un avviso. Da giugno 2025 Let's Encrypt non invia più email di promemoria sui certificati in scadenza e consiglia esso stesso di usare un monitoraggio. Un controllo del certificato che avvisa quando la validità residua è inferiore a 14 giorni non è quindi un lusso.
Un programma diffuso per farlo in autonomia è Uptime Kuma, che installerà in un container nella lezione 9.4. Preferibilmente non lo installi sullo stesso server che deve monitorare, oppure lo combini con un secondo controllo esterno. Esistono anche servizi di terze parti che fanno la stessa cosa; ne scelga uno adatto a Lei e verifichi dove ha sede se nelle notifiche possono comparire dati dei Suoi clienti.
Dall'interno: ciò che sta per andare storto
Alcuni problemi, visti dall'esterno, emergono solo quando è troppo tardi. Questi li misura sul server stesso:
| Che cosa | Come lo vede | Una soglia ragionevole |
|---|---|---|
| Spazio su disco | df -h | avviso oltre l'80%, allarme oltre il 90% |
| Inode (numero di file) | df -i | idem; un disco può essere "pieno" a causa di milioni di piccoli file |
| Memoria | free -h, messaggi "Out of memory" in journalctl -k | ogni messaggio OOM è un segnale |
| Load | uptime, top | a lungo superiore al numero di vCPU |
| Servizi falliti | systemctl --failed (lezione 6.1) | ogni servizio fallito |
| Aggiornamenti e riavvio | /var/run/reboot-required, apt list --upgradable (lezione 4.2) | aggiornamento di sicurezza più vecchio di due giorni |
| Backup | la fine del Suo script di backup (lezione 8.2) | ogni esecuzione fallita o mancata |
Può farlo con un semplice script e un timer (lezione 6.3) che invia una notifica quando una soglia viene superata, oppure con un programma di monitoraggio con un agent sul server (esempi open-source noti sono Netdata e la combinazione Prometheus con node_exporter). Cominci in piccolo: disco, servizi falliti e backup intercettano la maggior parte dei problemi.
I grafici nel pannello del Suo provider (processore, memoria, rete, disco nell'arco di un giorno fino a un anno) sono un ottimo complemento per vedere le tendenze: se il Suo disco cresce di qualche punto percentuale ogni mese, sa quando sarà pieno. In WebOké si trovano nella schermata del VPS; presso altri provider in modo simile. Di solito non inviano notifiche, quindi non sostituiscono il monitoraggio.
L'heartbeat: segnalare quando non succede nulla
Alcune cose vanno monitorate proprio sulla mancanza di un segnale. Il backup della notte è l'esempio migliore: se lo script non parte nemmeno (timer disattivato, server spento, script rotto), non arriva neanche un messaggio di errore.
La soluzione si chiama heartbeat o dead man's switch: il Suo monitoraggio si aspetta un segnale ogni giorno. Alla fine, e solo se tutto è andato a buon fine, lo script di backup invia una piccola richiesta http a un URL fisso e segreto del Suo monitoraggio:
restic backup ... && restic check && curl -fsS -m 10 https://status.example.com/api/push/Xyz123abc?status=up >/dev/nullSe per un giorno il segnale non arriva, Lei riceve una notifica. Uptime Kuma prevede a questo scopo il tipo di monitor Push; esistono anche programmi da ospitare in proprio come Healthchecks. Così, con una sola riga, verifica se il Suo backup è stato davvero eseguito.
Notifiche che arrivano, e non troppe
Una notifica che nessuno legge non è monitoraggio. Sistemi tre cose:
- Un canale di notifica che vede davvero: una notifica push sul telefono, un canale di chat, un sms. L'email va bene, ma solo se il Suo server è in grado di inviare email in modo affidabile, e le email sfuggono facilmente. Per le notifiche più importanti usi due canali.
- Indipendente da ciò che monitora. Se è il Suo server stesso a inviare l'email su un disco pieno, quell'email non arriva quando il disco è pieno. Il monitoraggio dall'esterno e un heartbeat coprono questo caso.
- Poche, ma giustificate. Se ogni giorno riceve dieci notifiche di cui non fa nulla, finirà per ignorarle, compresa quella che conta. Questo si chiama affaticamento da allarmi. Imposti le soglie in modo che una notifica significhi: deve intervenire. Faccia scattare una notifica solo dopo alcuni controlli falliti di seguito (per esempio tre), così un singolo pacchetto perso non La sveglia.
Metta alla prova le Sue notifiche: spenga per un momento un servizio e verifichi se la notifica arriva, e quanto tempo ci ha messo.
Che cosa non fare
- Pagine di monitoraggio aperte a tutti con nomi e indirizzi interni. Una pagina di stato pubblica va bene, ma mostri solo ciò che i visitatori possono sapere.
- Un account amministratore del monitoraggio senza password robusta e 2FA. Chi entra nel Suo monitoraggio può disattivare le notifiche.
- Agent con più permessi del necessario. Un agent di monitoraggio di solito non deve essere root.
Riepilogo
- Monitori dall'esterno se funziona (http, porta, certificato, DNS), da un'altra macchina, e dall'interno se qualcosa sta per andare storto (disco, memoria, servizi, aggiornamenti, backup).
- I certificati meritano un controllo dedicato: da giugno 2025 Let's Encrypt non invia più email di promemoria.
- Un heartbeat segnala la mancanza di un segnale; ideale per backup e attività pianificate.
- Scelga un canale di notifica che vede davvero, indipendente dal server stesso, e imposti le soglie in modo che ogni notifica richieda un'azione.
- I grafici del Suo provider mostrano le tendenze, ma di solito non inviano notifiche.
Quiz
Esercizio
Esercizio O8.3: Il Suo elenco di monitoraggio. Prepari per il Suo server un elenco di monitoraggio: quali controlli dall'esterno (con quale intervallo e da dove), quali dall'interno (con le soglie), quali heartbeat e tramite quale canale arrivano le notifiche. Configuri almeno un controllo esterno http o del certificato e un heartbeat (per esempio per il Suo backup) e verifichi la notifica spegnendo per un momento un servizio. Annoti quanto tempo è passato prima che arrivasse la notifica.
Esercizio O8.3: Il Suo elenco di monitoraggio
Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.
Controllo dall'esterno su un'altra macchina (preferibilmente di un altro fornitore), ogni 1-5 minuti con alcune ripetizioni. Certificato 14 giorni, disco 80/90%, systemctl --failed, heartbeat solo a backup riuscito. Notifiche che non richiedono alcuna azione: eliminarle o alzare la soglia.
Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.
Per approfondire
- Nessun accesso alla sua VPS: cosa fare?
- Let's Encrypt, Expiration Notification Service Has Ended: https://letsencrypt.org/2025/06/26/expiration-notification-service-has-ended
- Uptime Kuma (GitHub): https://github.com/louislam/uptime-kuma
