Installazione e Configurazione Base di Gatus su Ubuntu Server 26.04 con l’utilizzo di Docker Compose

da | Ago 6, 2026 | 0 commenti

 

Nel panorama degli strumenti di monitoraggio self-hosted Gatus si sta ritagliando uno spazio sempre più importante grazie alla sua filosofia semplice ma efficace: un dashboard di health check “developer-oriented”, pensato per chi vuole sapere in tempo reale se i propri servizi siti web, API, database, dispositivi di rete sono realmente raggiungibili e funzionanti, senza dover configurare uno stack di monitoring complesso.

A differenza di soluzioni basate puramente su metriche di traffico, Gatus esegue controlli attivi e programmati verso gli endpoint configurati, permettendo di intercettare un’interruzione di servizio anche quando nessun utente sta effettivamente generando richieste in quel momento.

Il tutto restituito attraverso una status page pulita, leggera e completamente personalizzabile via file YAML.

In questa guida vedremo passo passo come installare Gatus su Ubuntu Server 26.04, utilizzando Docker Compose come metodo di deployment: partiremo dall’installazione di Docker Engine da zero, per poi arrivare a una configurazione base funzionante, con endpoint di esempio, storage persistente su SQLite e alcune indicazioni per l’esposizione sicura tramite reverse proxy.

Un punto di partenza solido per chi vuole integrare un sistema di status monitoring leggero nel proprio homelab o nella propria infrastruttura di produzione.

 

PREREQUISITI

  • Un server Ubuntu 26.04 con accesso sudo
  • Docker Engine (versione 19.03 o superiore, API 1.40+) e il plugin Docker Compose
  • Un container già in esecuzione, giusto per avere qualche log da guardare

 

AGGIORNAMENTO DEL SISTEMA

Aggiornare il sistema con i seguenti comandi:

 

 

INSTALLAZIONE DI DOCKER ENGINE + DOCKER COMPOSE PLUGIN

Creare la directory per le chiavi GPG con il comando:

Aggiungere la chiave GPG ufficiale di Docker con i comandi:

Aggiungere il repository Docker con il comando:

Aggiornare e installare Docker + Compose plugin con i comandi:

NOTA BENE: Ubuntu 26.04 è recentissima se il repository Docker non ha ancora una entry specifica per il suo codename, il comando sopra userà comunque il nome codename rilevato da os-release. Se apt update desse errore per il repo, verifica su https://download.docker.com/linux/ubuntu/dists/ quale codename è disponibile e sostituiscilo manualmente.

 

VERIFICARE L’INSTALLAZIONE DI DOCKER

Verificare l’installazione di Docker con i seguenti comandi:

Dovremmo visualizzare il seguente output:

 

 

UTILIZZO DI DOCKER SENZA SUDO (OPZIONALE MA CONSIGLIATO)

Per utilizzare Docker senza sudo eseguire i comandi di seguito:

Poi verificare con il seguente comando:

 

 

CREAZIONE DELLA STRUTTURA DI CARTELLE PER GATUS

Creare la struttura delle cartelle per Gatus con i seguenti comandi:

 

 

CREAZIONE DEL FILE DOCKER-COMPOSE.YML

Creare il file docker-compose.yml con il comando:

Quindi incollare all’interno il seguente output:

Salvare e chiudere il file di configurazione.

 

CREAZIONE DEL FILE DI CONFIGURAZIONE CONFIG/CONFIG.YAML

Creare il file di configurazione config/config.yaml con il comando:

Quindi incollare all’interno il seguente output:

Salvare e chiudere il file di configurazione.

Sostituire gli endpoint con i servizi reali da monitorare (siti, API, ESXi, vCenter, Portainer, ecc.).

 

AVVIO DEL CONTAINER

Avviare il Docker con il comando:

Dovremmo visualizzare il seguente output:

Verificare i log con il comando:

Dovremmo visualizzare il seguente output:

 

 

ACCESSO ALLA DASHBOARD DI GATUS

Per accedere alla Dashboard di Gatus da un qualsiasi browser richiamare il link:

http://<IP-del-server>:8080

Dovremmo visualizzare la Dashboard di Gatus con i due Host monitorati

 

ABILITARE L’AUTENTICAZIONE BASE (OPZIONALE)

Per abilitare l’autenticazione su Gatus eseguire il comando:

Nel file config.yaml aggiungere le seguenti righe:

Salvare e chiudere il file di configurazione

Riavviare Docker con il comando:

Fare un refresh della pagina web e se è tutto corretto dovrebbe chiedere la credenziali di accesso.

 

ABILITARE L’ALERT VIA EMAIL (OPZIONALE)

Per abilitare gli alert via mail inserire all’interno del file config.yaml le seguenti righe:

Salvare e chiudere il file di configurazione.

 

MANUTENZIONE

Per aggiornare Gatus alla nuova versione eseguire i comandi:

Per controllare la dimensione del database SQLite eseguire il comando:

 

 

FUNZIONALITA’ DI GATUS CON PRO E CONTRO

Ecco l’elenco completo delle funzionalità di Gatus, con pro e contro per ciascuna area.

Tipi di health check

Funzionalità: monitoraggio via HTTP, TCP, ICMP (ping), DNS, STARTTLS/TLS, e persino query GraphQL Gatus è una dashboard di health monitoring orientata agli sviluppatori che permette di monitorare i servizi tramite query HTTP, ICMP, TCP e DNS. TwiN

Pro: copre praticamente ogni tipo di servizio (web app, database, DNS interni, certificati, dispositivi di rete raggiungibili solo via ping).

Pro: supporta anche richieste GraphQL con verifica del body, utile per API moderne.

⚠️ Contro: nessun check “agent-based” (a differenza di Zabbix/Prometheus node_exporter) non misura CPU/RAM/disco dell’host, solo raggiungibilità/risposta del servizio.

Condizioni di valutazione (conditions)

Funzionalità: condizioni flessibili su status code, tempo di risposta, contenuto del body (JSON path), scadenza certificati, IP Gatus valuta il risultato delle query usando una lista di condizioni su valori come il codice di stato, il tempo di risposta, la scadenza del certificato e il body. TwiN

Pro: molto più granulare di un semplice “è su/giù” puoi verificare che l’API risponda con dati corretti, non solo con HTTP 200.

Pro: utilizzabile anche come test di accettazione automatizzati (UAT), non solo monitoring.

⚠️ Contro: la sintassi delle condizioni (JSON path custom, placeholder [STATUS], [BODY], ecc.) richiede una curva di apprendimento iniziale, specialmente per condizioni complesse su body annidati.

⚠️ Contro: l’operatore pat() (pattern matching) è molto più oneroso computazionalmente di un confronto diretto, quindi va usato con parsimonia.

Alerting multi-canale

Funzionalità: integrazioni native con Slack, Discord, Teams, PagerDuty, Twilio, Telegram, Email, Mattermost, Google Chat, Opsgenie, Gotify, ntfy, HomeAssistant, GitHub, GitLab, iLert e provider custom via webhook.

Pro: copertura estremamente ampia “out of the box”, incluse integrazioni home-lab friendly come ntfy e HomeAssistant.

Pro: soglie configurabili per failure/success (es. avvisa solo dopo 3 fallimenti consecutivi, chiudi l’alert dopo 2 successi).

Pro: provider custom per casi non coperti (es. rollback automatici, webhook interni).

⚠️ Contro: ogni provider ha una sintassi di configurazione leggermente diversa nello YAML, quindi bisogna consultare la doc per ciascuno.

⚠️ Contro: non tutti i provider gestiscono l’auto-risoluzione (send-on-resolved) allo stesso modo  per alcuni (es. PagerDuty, iLert) è fortemente raccomandato abilitarla per evitare incident “fantasma” aperti.

Storage dei dati storici

Funzionalità: storage in memoria, SQLite (default consigliato) o PostgreSQL Gatus supporta anche uno storage PostgreSQL configurabile tramite stringa di connessione. Libre Self-hosted

Pro: SQLite è zero-config e perfetto per homelab/singola istanza.

Pro: PostgreSQL disponibile per scenari multi-istanza o retention più lunga.

⚠️ Contro: lo storage in memoria (default se non configurato) perde tutto lo storico ad ogni riavvio del container.

⚠️ Contro: nessun supporto nativo per storage a lungo termine tipo time-series DB (InfluxDB/Prometheus) se ti servono dashboard analitiche avanzate, va integrato esternamente.

Dashboard e status page

Funzionalità: dashboard web con dark mode, badge di stato (anche integrabili in README GitHub), raggruppamento endpoint per categoria.

Pro: interfaccia pulita, leggera, pensata per essere pubblica (status page stile StatusPage.io).

Pro: badge integrabili ovunque (utile per un post sul blog o repo Gitea).

⚠️ Contro: la personalizzazione grafica è limitata rispetto a soluzioni più “enterprise” (Uptime Kuma ha temi più ricchi, Kener è pensato apposta per status page brandizzate).

Sicurezza e accesso

Funzionalità: autenticazione basic (bcrypt), OIDC (in alpha).

Pro: protezione semplice via basic auth per dashboard esposte pubblicamente.

⚠️ Contro: OIDC è ancora in stato alpha — non affidarti ad esso per ambienti di produzione critici, specialmente se hai già SSO aziendale da integrare stabilmente.

⚠️ Contro: nessun sistema di ruoli/permessi granulare (RBAC) è tutto o niente sull’accesso alla dashboard.

Metriche e osservabilità

Funzionalità: endpoint /metrics in formato Prometheus.

Pro: si integra facilmente col tuo stack Grafana/Prometheus esistente.

Pro: basso consumo di risorse, tipico delle applicazioni Go il consumo di risorse richiesto è trascurabile, come tipico delle applicazioni Go.

Deployment e automazione

Funzionalità: Docker, Helm Chart per Kubernetes, Terraform provider, auto-discovery Kubernetes (alpha), istanze remote (sperimentale).

Pro: ottimo fit sia per homelab Docker/Portainer sia per cluster K8s più strutturati.

Pro: configurazione dichiarativa in YAML → si presta benissimo a GitOps (perfetto per il tuo workflow con Gitea).

⚠️ Contro: auto-discovery K8s e istanze remote sono ancora sperimentali/alpha non stabili al 100% per produzione.

Filosofia generale: monitoraggio “esterno” vs metriche interne

Funzionalità: check attivi e sintetici, non dipendenti dal traffico reale a differenza delle metriche che dipendono dal traffico esistente, Gatus ti avvisa anche se nessun cliente sta attivamente chiamando l’endpoint in quel momento. Openaitx

Pro: rileva problemi anche prima che gli utenti reali li notino (es. load balancer giù senza traffico).

⚠️ Contro: essendo check sintetici a intervalli, non sostituisce un vero APM (Application Performance Monitoring) per diagnosticare cause profonde di degradazione è complementare, non alternativo, a strumenti come Prometheus/Grafana per metriche interne.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Servizi ICT
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore
  • Angelo Lauria  Autore
  • Edoardo Prot  Autore
  • Davide D’Urso  Autore
Raffaele Chiatto

Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi. Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare. Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
Categorie: Gatus | Ubuntu

Related Post

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione