> ## Content Index
> Fetch the complete content index at: https://blog.firenetwork.it/llms.txt
> Use this file to discover other available public pages before exploring further.

# Come utilizzare UptimeKuma per monitorare server e servizi web
- URL: https://blog.firenetwork.it/come-utilizzare-uptimekuma-per-monitorare-server-e-servizi-web/
- Published: 2025-09-17T17:42:37.000Z
- Updated: 2025-09-17T17:42:37.000Z
- Description: UptimeKuma è senza dubbio un alleato prezioso se gestite servizi web. In questa guida vedremo insieme come installare, configurare ed utilizzare UptimeKuma per monitorare al meglio i nostri server, servizi e siti web.
- Author: Samuele Gabbrielli
- Tags: Guide, Monitoraggio, Prometheus, Grafana, #Import 2026-03-12 20:23

Che siate **gestori di un piccolo homelab** o professionisti in cerca di uno **strumento di monitoring** affidabile e gratuito, **UptimeKuma** è senza dubbio un alleato prezioso da aggiungere al vostro arsenale.

Dalla prima commit sul progetto GitHub a Maggio 2021, UptimeKuma ha visto una crescita esponenziale, diventando rapidamente una delle soluzioni open source più apprezzate per il monitoraggio dell'uptime, arrivando ad avere **70'000 stelle** su Github e **un milione e mezzo di Pull** dell'immagine Docker ufficiale.

Vediamo insieme come installare, configurare ed utilizzare **UptimeKuma** per monitorare al meglio i nostri servizi.

![](https://blog.firenetwork.it/content/images/2025/06/Immagine-WhatsApp-2025-06-26-ore-19.35.25_07626ed9.jpg) 

## Prerequisiti

Per installare ed utilizzare **UptimeKuma** avrete bisogno di:

- **Una macchina Linux**, preferibilmente Ubuntu Server (per installazione da sorgente) **o un'istanza di Docker** (per installazione tramite Docker)
- Uno o più dispositivi, servizi o siti web da **monitorare**

![](https://blog.firenetwork.it/content/images/2025/06/luca-bravo-XJXWbfSo2f0-unsplash-1-.jpg) 

## Installazione

A seconda delle vostre esigenze, potete installare **UptimeKuma** tramite **Docker**, o come applicativo direttamente sul sistema operativo (in questa guida, useremo **Ubuntu Server**).

Al momento della scrittura di questo articolo, l'unico modo per installare la **versione 2.0** di **UptimeKuma** è quella **tramite Docker**, che è anche la modalità consigliata dallo sviluppatore.

## A. Installazione su Docker

- Create una cartella dedicata, che conterrà i file di configurazione di **UptimeKuma**. Per esempio, il comando seguente crea una cartella *uptime-kuma* nella root del filesystem.

```bash
mkdir /uptime-kuma

```

- Eseguite il seguente comando **docker run** per creare ed avviare il container

```bash
docker run -d \
  --restart=unless-stopped \
  -p 3001:3001 \
  -v /uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1

```

❓

****Come cambio porta e/o volume?**  
Per cambiare la porta, cambiate nel parametro ****\-p** o ****ports** la porta a sinistra.  
Per cambiare il mapping del volume, se per esempio avete creato la cartella uptime-kuma in un'altra posizione, vi basta cambiare al parametro ****\-v** o ****volumes** il volume a sinistra. Ricordatevi che ****non potete usare percorsi relativi**, ma solo assoluti.

💡

Per installare la ****versione 2.0** (al momento in beta), sostituite `louislam/uptime-kuma:1` con `louislam/uptime-kuma:2`.

## B. Installazione da sorgente

*(procedura testata su Ubuntu Server 24.04)*

- Installate le **dipendenze**

```bash
sudo apt install git unzip

```

- Installate **fnm**, che è un *gestore di versioni* di **Node.js**

```bash
curl -o- https://fnm.vercel.app/install | bash

```

- Riavviate la shell di **Ubuntu**

```bash
source /home/ubuntu/.bashrc

```

- Scaricate ed installate **Node.js** (il *runtime* richiesto da **UptimeKuma**)

```bash
fnm install 20

```

- Verificate che quella che avete appena installato sia la **versione 20** di **Node.js**

```bash
node -v # Dovrebbe restituire "v20.x.y".

```

- Verificate di avere installato la **versione 20** di **npm** (il *gestore di pacchetti* di Node.js)

```bash
npm -v # Dovrebbe restituire "10.x.y".

```

- Scaricate ed installate **UptimeKuma**

```bash
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

```

- Avviatelo manualmente la prima volta

```bash
node server/server.js

```

- Potrebbe essere necessario aprire la porta 3001 TCP sul firewall di Ubuntu (di default, viene utilizzato *iptables*). Per farlo, eseguire i seguenti comandi:

```bash
sudo iptables -I INPUT -p tcp --dport 3001 -j ACCEPT
sudo netfilter-persistent save

```

- Controllate che non risultino errori

```bash
pm2 monit

```

- **UptimeKuma** dovrebbe quindi essere raggiungibile su  
http://ip.della.macchina.ubuntu:3001

Provate ad accedere alla pagina web e, se tutto funziona, potete impostare UptimeKuma per l'**avvio automatico**.

- Impostate l'**avvio automatico** di **UptimeKuma** all'avvio della macchina

```bash
pm2 save && pm2 startup

```

![](https://blog.firenetwork.it/content/images/2025/06/luca-bravo-XJXWbfSo2f0-unsplash-1-.jpg) 

## Utilizzo

Monitorare un server, un servizio o un sito web con **UptimeKuma** è davvero semplice, vediamo insieme alcuni esempi:

## 1\. Monitorare un dispositivo (Client, Server, VM) tramite **Ping** (ICMP)

- Accedete ad **UptimeKuma**
- Premete su **Aggiungi nuovo monitor** in alto a sinistra

![](https://blog.firenetwork.it/content/images/2025/08/image.png)

- In **Modalità di monitoraggio** selezionate *Ping*
- In **Nome** indicate il nome che volete dare al monitor (verrà indicato nell'interfaccia web e nelle notifiche)
- In **Nome Host** specificate l'indirizzo IP o l'FQDN del dispositivo da monitorare
- Nella barra di destra, alla sezione **Notifiche**, abilitate tutti i canali di notifica a cui deve essere inviato un messaggio per i cambiamenti di stato del monitor

![](https://blog.firenetwork.it/content/images/2025/08/image-1.png)

❗

****L'host non risponde al ping?**  
Controllate che il protocollo ICMP non sia bloccato sul firewall della macchina che state cercando di pingare.

Opzionalmente, potete modificare alcuni valori relativi alla frequenza dei controlli ed al numero di tentativi prima di segnalare un "*Down*":

- In **Intervallo di controllo** indicate ogni quanti secondi **UptimeKuma** deve pingare l'host
- In **Tentativi**, indicate quante volte riprovare a pingare l'host prima di segnalarlo come Offline (se impostate *0*, alla prima mancata risposta verrà subito segnalato come Offline. Aumentate il numero di tentativi se ottenete troppi falsi positivi)
- In **Intervallo tra i tentativi di controllo**, indicate dopo quanti secondi effettuare un nuovo tentativo di ping quando il primo non è andato a buon fine

![](https://blog.firenetwork.it/content/images/2025/08/image-2.png)

Infine, se avete tanti monitor diversi, potete categorizzarli in **Gruppi** ed assegnargli una o più **Etichette**

💡

****Riguardo ai gruppi**  
****Anche i gruppi generano notifiche**, e vengono considerati **Down* se almeno uno dei monitor al suo interno risulta **Down*. Per modificare questo comportamento è possibile selezionare il gruppo e premere ****Modifica**.

## 2\. Monitorare un **servizio web** (HTTP e HTTPS)

Per monitorare un servizio web (una **pagina di stato**, una **webapp**, o anche un intero **sito**) è possibile selezionare **HTTP(s)**.

Per i parametri principali da configurare, fate riferimento al punto precedente.

Il protocollo che verrà utilizzato per controllare il monitor deve essere indicato nel campo **URL**, ad esempio `https://blog.firenetwork.it`.

Se vi basta che l'endpoint risponda, anche se con un codice di errore, potete aggiungere al campo **Codici di stato accettati** i codici di stato HTTP che ritenete validi (di default, solo i codici **da 200 a 299** vengono considerati validi).

![](https://blog.firenetwork.it/content/images/2025/08/image-3.png)

Infine, potete personalizzare il **Metodo** della chiamata, il **Body** e gli **Headers**, così come il **metodo di autenticazione**, se richiesto.

![](https://blog.firenetwork.it/content/images/2025/08/image-4.png)

## 3\. Monitorare la **risoluzione DNS**

Per monitorare la risoluzione DNS di un dominio, selezionate la modalità di monitoraggio **DNS**.

Tramite questo monitor potrete controllare che un nome DNS venga risolto con successo, e monitorare il risultato della query per tenere traccia, per esempio, dei cambiamenti di puntamento di un **DNS Dinamico** come quelli del dominio **duckdns.org** .

![](https://blog.firenetwork.it/content/images/2025/08/image-5.png)

I campi configurabili sono simili agli altri tipi di monitor, ma in questo caso dovrete specificare il **dominio da risolvere** nel campo **Nome Host**, ed il **Server DNS** da utilizzare per la risoluzione.

Inoltre potete specificare il **tipo di record** da cercare, come **A** (l'indirizzo IPv4), **AAAA** (l'indirizzo IPv6), **CNAME** (il nome canonico), **MX** (il mail exchanger), **NS** (il nameserver) o **TXT** (un record di testo associato all'FQDN).

![](https://blog.firenetwork.it/content/images/2025/06/thisisengineering-zBLtU0zbJcU-unsplash.jpg) 

## Configurazione

Vediamo insieme qualche configurazione che vi consiglio fortemente di impostare per utilizzare al meglio **UptimeKuma**.

- Accedete all'interfaccia web di **UptimeKuma**
- In alto a destra, premete sull'icona del vostro profilo ed andate su **Impostazioni**

![](https://blog.firenetwork.it/content/images/2025/08/image-6.png)

Nella sezione **Generale**:

- Configurate **Fuso orario del server** a *UTC+02:00* per il fuso orario italiano
- Selezionate *Automatico* alla voce **Mostra fuso orario**
- In **Visibilità ai motori di ricerca**, se avete pubblicato UptimeKuma su internet, indicate *Evita l'indicizzazione ai motori di ricerca*
- Disattivate l'opzione **Abilita la cache DNS per i monitor HTTP(s)** in modo da monitorare anche gli errori dati dalla risoluzione dei nomi

Nella sezione **Notifiche**:

- Censite i vostri canali di notifica preferiti, come **Email** e **Telegram**

Vuoi creare un bot **Telegram** da impostare qui? Segui la mia guida:

[Come creare un Bot TelegramIn questa guida vedremo insieme i passaggi per creare un bot Telegram personale, che potremo poi utilizzare per ricevere notifiche automatizzate da servizi come UptimeKuma o Apprise.![](https://blog.firenetwork.it/content/images/icon/fireblog-2.png)Firenetwork - BlogSamuele Gabbrielli![](https://blog.firenetwork.it/content/images/thumbnail/Copilot_20250821_184248-2.png)](https://blog.firenetwork.it/come-creare-un-bot-telegram/)

In **Storico monitor**:

- Indicate la retention dei dati storici. Più giorni di retention indicherete, più aumenteranno le dimensioni del DB di UptimeKuma col passare del tempo, perciò non esagerate.

In **Sicurezza**:

- Vi consiglio caldamente di abilitare l'**autenticazione a due fattori** (**2FA**)

## Configurare lo scraping tramite **Prometheus**

- Accedete all'interfaccia web di **UptimeKuma**
- In alto a destra, premete sull'icona del vostro profilo ed andate su **Impostazioni**

![](https://blog.firenetwork.it/content/images/2025/08/image-7.png)

- Andate alla sezione **API Keys** e premete su **Add API Key**

![](https://blog.firenetwork.it/content/images/2025/08/image-8.png)

- Date un nome all'API Key che state creando (ad esempio, "Prometheus") e spuntate l'opzione **Don't expire**, poi premete su **Generate** e salvatevi la API Key appena generata.

![](https://blog.firenetwork.it/content/images/2025/08/image-9.png)

‼️

****ATTENZIONE**: La API Key che avete generato ****sarà visualizzabile solamente in questo momento**. Nel caso in cui la perdiate, dovrete ****cancellare la API Key e crearne una nuova**.

Adesso possiamo andare a configurare il Job di Scraping su **Prometheus**

- Accedete tramite SSH alla vostra istanza di **Prometheus**
- Modificate il file **prometheus.yml**

```bash
sudo nano prometheus/prometheus.yml

```

- Aggiungete un nuovo job seguendo questo formato:

```yaml
  - job_name: 'UptimeKuma'
    scrape_interval: 30s
    scheme: http
    static_configs:
      - targets: ['indirizzo.ip.di.uptimekuma:3001']
    basic_auth:
      password: api_key_di_uptimekuma

```

- Salvate il file e riavviate **Prometheus**

```bash
sudo systemctl restart prometheus

```

Adesso potrete utilizzare le metriche di **UptimeKuma** per creare grafici e dashboard su **Grafana**. Per esempio, per ottenere lo status dei vostri monitor, potete usare la metrica **monitor\_status** e filtrare il monitor tramite il campo **monitor\_name**.

![](https://blog.firenetwork.it/content/images/2025/07/benjamin-davies-FiZTaNTj2Ak-unsplash.jpg) 

## Conclusioni

Adesso che avete installato e configurato **UptimeKuma**, potrete monitorare i vostri server, servizi e siti web in modo semplice ed efficace.

Come step successivo, potreste **integrare le notifiche** di **UptimeKuma** col vostro personale **Bot Telegram**, o esplorare la funzionalità *Dashboards* per creare una pagina di stato pubblica per far visualizzare a chiunque lo stato dei vostri servizi, come [questa](https://firesatellite.firenetwork.it/status/firenetwork-it?ref=blog.firenetwork.it).

---

![](https://blog.firenetwork.it/content/images/2025/06/Written-By-Human-Not-By-AI-Badge-white@2x-4.png)