Monitorare lo stato e le risorse di un server è un’attività fondamentale per garantire la continuità e l’affidabilità dei servizi che offre. Che si tratti di un server fisico o virtuale, il monitoraggio consente di rilevare tempestivamente eventuali problemi, come rallentamenti, guasti hardware o sovraccarichi delle risorse, prima che possano compromettere l’operatività del sistema.
Prima di procedere, si consiglia la lettura dell’articolo: Mettere in sicurezza un VPS.
Beszel
Beszel è un sistema di monitoraggio facile da installare, semplice e leggero.
È composto da due componenti principali: l’hub e l’agent. L’hub è un’applicazione web che permette di visualizzare e gestire i sistemi monitorati, mentre l’agent è un servizio che raccoglie i dati dai server e li invia all’hub per l’elaborazione e la visualizzazione.
Permette di monitorare anche le prestazioni e l’utilizzo delle risorse dei container Docker in esecuzione. Le statistiche possono includere informazioni su CPU, memoria, rete e utilizzo del disco.
Beszel tiene traccia dei dati storici: questo è utile per analizzare le tendenze, identificare problemi ricorrenti e prendere decisioni informate sulla gestione delle risorse.
Il sistema è inoltre dotato di funzionalità di avviso che notifica gli utenti quando si verificano determinate condizioni, come un utilizzo eccessivo delle risorse o un malfunzionamento.
Metriche Supportate
- Utilizzo della CPU: sistema host e container Docker/Podman
- Utilizzo della RAM: sistema host e container. Include swap e ZFS ARC
- Utilizzo e I/O del disco: sistema host. Supporta più partizioni e dispositivi
- Utilizzo della rete: sistema host e container.
- Temperatura
- GPU
Installazione dell’hub
- Collegarsi al server remoto
- Creare la cartella
beszele spostarsi al suo interno - Creare il file
docker-compose.yml:
- Avviare il container col comando
docker compose up -d - Configurare Caddy:
- Riavviare il servizio:
systemctl restart caddy.service - Assicurarsi che il servizio non abbia errori
Creazione della chiave condivisa
- Effettuare l’accesso a https://my.domain.it, quindi creare l’utente admin
- Aggiungere un nuovo sistema, selezionando
Binario - Impostare la porta, lasciando anche quella di default
- Copiare il comando da eseguire
Installazione dell’agent
- Eseguire il comando copiato sul VPS
|
|
- Abilitare l’aggiornamento automatico dell’agent
Lo script si occupa di
- Creare la directory
/opt/beszel-agent/, contenente i seguenti file
- Creare i seguenti servizi e timer
|
|
- Avviare i servizi e controllarne lo status:
- Fatto questo, tornare sulla dashboard e aggiungere il sistema
- Sul VPS, stoppare e riavviare il container coi comandi
cd /path/to/beszel && docker compose down && docker compose up -d - Collegandosi alla dashboard, il server dovrebbe essere visibile in verde. Questo significa che viene correttamente monitorato
IMPORTANTE: la porta 45876 deve essere libera e il traffico deve essere consentito dal firewall:
ufw allow 45876
Limitazione delle risorse
Grazie a Beszel, ora possiamo avere una visione chiara e dettagliata dell’utilizzo delle risorse da parte del sistema host e dei container in esecuzione. Questo ci aiuta a prendere delle decisioni, anche osservando le tendenze e i dati storici.
Risulta utile, ad esempio, impostare dei limiti alla memoria RAM e alla CPU che un container può utilizzare. Bisogna modificare il file docker-compose.yml nel modo seguente:
Per verificare, in real-time, le risorse utilizzate dai vari container, basta eseguire il comando docker stats
Monitee
Un’alternativa a Beszel, altrettanto facile da installare, potrebbe essere Monitee. Anche questa soluzione è composta da due parti: il client (un’app) e il server, sys-API.