Introduzione
In questa breve guida vedremo come installare il noto software open-source e self-hosted Uptime Kuma. Questo tool ci permetterà di monitorare l'uptime delle nostre applicazioni, che siano container docker o siti internet. Inoltre è possibile ricevere delle notifiche sui nostri canali preferiti (mail, telegram, discord etc) nel caso in cui uno dei servizi monitorati non dovesse essere disponibile. Possiamo intuire che si tratta un tool tanto semplice quanto potente, specie per le nostre app critiche. La guida seguirà la procedura d'installazione in ambiente Linux (Debian based).Forniremo anche alcuni consigli su come proteggere al meglio l'accesso a kuma.
Installazione
Installare Uptime Kuma è davvero semplicissimo! Dalla repository ufficiale, notiamo che è altamente consigliata l'installazione tramite docker, ma forniremo anche un modo per installarlo direttamente nel sistema host.Docker
Se vogliamo installare l'app con docker, seguiamo le semplici istruzioni fornite ufficialmente
Accedi o Registrati per vedere questo link.
Quindi, limitiamoci a lanciare il comando
Bash:
Accedi o Registrati per vedere questo contenuto.
- il tipo di restart (consigliato fra always o unless-stopped)
- Una directory dove verranno salvati i file persistenti (/uptime-kuma come predefinita)
- Il nome da assegnare al container
- La porta usata per l'interfaccia web (predefinita 3001)
YAML:
Accedi o Registrati per vedere questo contenuto.
AVVISO: In questo modo, Uptime-Kuma sarà accessibile pubblicamente all'indirizzo del vostro server, o eventualmente in localhost su
Accedi o Registrati per vedere questo link.
. Vedremo più avanti come renderlo più sicuro e accessibile esclusivamente a chi vogliamo noi. Nel caso volessimo renderlo accessibile ESCLUSIVAMENTE in locale, possiamo modificare il parametro ports inserendo 127.0.0.1:3001:3001 ma è sconsigliato, in quanto limitiamo alcune delle funzioni del software.Installazione NON-Docker
Se vogliamo installare direttamente Uptime Kuma sul nostro OS (sconsigliato), dobbiamo prima installare il pacchetto Node.js. Quindi, importiamo intanto la giusta repository con
Bash:
Accedi o Registrati per vedere questo contenuto.
Bash:
Accedi o Registrati per vedere questo contenuto.
Ora possiamo seguire quanto scritto nella repository ufficiale per l'installazione non-docker, ovvero
Bash:
Accedi o Registrati per vedere questo contenuto.
Bash:
Accedi o Registrati per vedere questo contenuto.
Esattamente come per la versione Docker, Kuma sarà disponibile all'indirizzo
Accedi o Registrati per vedere questo link.
.Appena ci colleghiamo sul sito, dobbiamo creare un utente con password, possiamo ora inserire i nostri monitor
Come vedete le opzioni sono molte, per un semplice monitor di uptime per un sito web, possiamo limitarci ad inserire il sito da monitorare in URL, l'intervallo di controllo (predefinito di 1 minuto) e altri parametri, molto intuitivi, tra cui le risposte ritenute valide (ad esempio la risposta 200).
Il risultato sarà mostrato a schermo
Con la possibilità di essere avvisati anche in prossimità della scadenza di un eventuale certificato SSL, oltre che il tempo di risposta.
Notifiche
Ora, nel caso in cui uno dei nostri servizi dovesse risultare offline, possiamo scegliere come essere avvisati. Apriamo le impostazioni e apriamo la scheda NotificheDa qui, cliccando su Configura le notifiche troviamo un'ampia gamma di servizi che possiamo usare per ricevere, appunto, la nostra notifica di servizio down. Notiamo subito che il numero di servizi supportati è impressionante, per semplicità, scegliamo ad esempio di ricevere un messaggio su Telegram.
Selezionando dunque "Telegram", comparirà la schermata di configurazione della notifica
L'interfaccia è estremamente semplice, dobbiamo limitarci a creare un bot su Telegram con il noto BotFather e segnarci (conservando in modo sicuro) il token del bot che ci è stato assegnato.
Ora, se vogliamo ricevere le notifiche in chat privata direttamente dal bot appena creato, apriamo intanto il nostro bot su Telegram e inviamogli un messaggio, con scritto semplicemente Ciao. Ora rechiamoci alla URL indicata nellìimmagine sopra
https://api.telegram.org/bot<QUI IL TOKEN DEL BOT>/getUpdates
e, fra le informazioni che vediamo a schermo, recuperiamo il chat_id. Inseriamo token e chat_id nelle impostazioni e testiamo la ricezione della notifica con il tasto apposito.
Possiamo ora assegnare la notifica appena creata a tutti o alcuni dei nostri monitor creati precedentemente.
Monitorare i container
Normalmente un container non ha accesso al sistema host, in un'installazione default Uptime Kuma non ha la visibilità degli altri container. La stessa guida ufficiale ci viene in aiuto, possiamo ovviare semplicemente al problema condividendo il docker.sock.Per farlo, aggiungiamo la directory nel container
Docker:
Bash:
Accedi o Registrati per vedere questo contenuto.
Docker-compose:
YAML:
Accedi o Registrati per vedere questo contenuto.
Le impostazioni fornite da Uptime Kuma sono molte, possiamo personalizzare in modo discretamente approfondito il tipo di ping, andando a modificare la richiesta HTTP, monitorare un database e molto altro.
Un'interessante funzione è la notifica push, ovvero non sarà Uptime-Kuma a "interrogare" un servizio per verificarne la disponibilità, ma sarà lo stesso servizio a notificare Kuma della sua operatività.
Selezionando come nuovo monitor "Push", notiamo che comparirà sotto un URL, quell'url dovrà essere visitato dal servizio da monitorare per accertarne il funzionamento.
IMPORTANTE: Esattamente per questo motivo abbiamo consigliato, durante l'installazione, di non limitare Kuma al solo ip locale, in quanto le notifiche passive necessitano che l'URL fornito sia visibile alla macchina che invia il ping. Nel caso Kuma fosse installato all'interno di una macchina connessa ad una VPS pubblica tramite network privato, possiamo usare anche l'indirizzo privato per inviare il ping, mantenendo alta la sicurezza della connessione.
Sicurezza
Sebbene l'interfaccia WEB di Kuma sia sufficientemente protetta, in quanto permette di inserire un'autenticazione a 2 fattori come metodo di login, NON avere l'interfaccia pubblicamente accessibile è sicuramente una preoccupazione in meno. Per questo il consiglio è quello di raggiungere Kuma tramite un tunnel SSH o eventualmente utilizzare il noto Cloudflare Zero Trust. Di seguito i link ad 2 nostre guide dove vengono forniti esempi su come realizzare entrambe le soluzioni:Guida Verificata - Installare Docker e Portainer su Linux
Introduzione In questa guida, vediamo come installare Docker e Portainer nel modo più semplice possibile, riuscendo ad ottenere anche un discreto livello di sicurezza nel caso si installasse su una VPS con ip pubblico. Il sistema operativo di...
italianerd.com
Mentre qui, troviamo una guida su come usare Zero Trust
Guida Verificata - Creare un Tunnel con Cloudflare Zero Trust
Introduzione In questa guida vedremo come creare un tunnel tramite Cloudflare Zero Trust per accedere in modo sicuro alle nostre app (come ad esempio Portainer, OMV, un server web etc...) dall'esterno, senza il bisogno di essere connessi alla...
italianerd.com
Questa guida finisce qui, come sempre mettete un like se vi è servita e fateci sapere eventuali feedback