Uptime Kuma!
Monitoriamo siti web, e non solo, con Uptime Kuma!
Volevo chiamare l’articolo monitorando il corpo umano perché da giorni avevo in mente Nabot 1 e volevo un suo cameo in questo articolo. Poi ho pensato che non c’entrava molto con il monitoring. Ci riproverò la prossima volta.
Il problema
Ti sei dato alla programmazione e dopo millemila ore sei riuscito a mettere online il tuo blog Wordpress con tema di default.
Non vedi l’ora di farlo vedere a tuo cuggino.
Ovviamente vuoi vedere la sua espressione piacevolmente stupita delle tue capacità informatiche.
Lo incontri al baretto, gli mandi il link su whatsapp, guardi il suo volto incuriosito mentre apre il link…
Quel “Che è sta mmerd…” rimarrà indelebile nella tua memoria.
Sei un nomade digitale a cui piace lavorare solo in luoghi all’aperto, dove il sole è allo zenit per 16 ore al giorno in modo da far risaltare il colore mezzanotte del tuo Macbook.
Dopo tante ore, i riflessi del sole sul monitor più vetroso e riflettente di sempre ti hanno generato un’emicrania tale da dimenticarti di verificare manualmente lo stato dei siti web dei tuoi clienti.
Nel cuore della notte il tuo telefono inizia a vibrare come un pazzo.
Hai un homelab, magari dei server remoti o dei siti web di clienti che hai bisogno di monitorare perché ti sei stufato di cadere dal pero quando sono gli altri a farti notare che qualcosa non sta funzionando come dovrebbe.
Ovviamente ti sei già guardato in giro e soluzioni come Nagios, Zabbix, checkmk, UptimeRobot, ToolDiMonitoringMagico&Complicatissimo, sono talmente overkill o costose che non puoi prenderle nemmeno in considerazione.
Ovviamente anche tu hai Macbook mezzanotte, ma hai capito che quel dannato schermo in vetro è più figo che efficiente.
La soluzione
È molto simile ad Uptime Robot.
L’usabilità è immediata.
Fa poche cose ma, quelle che fa, le fa discretamente bene.
È supportato e ha un sacco di stelline 2 su GitHub.
Non è paragonabile agli altri tool citati sopra, ma inutile usare un bazooka per uccidere una formichina3.
Quello che faremo è utilizzare Uptime Kuma per monitorare tutto il nostro ambaradan di servizi.
Per rendere le cose un po’ più reali e divertenti utilizzeremo anche:
- Docker Compose: per gestire il nostro container
- Un paio di servizi, tra sitarelli e VPS per testare la bontà del tool
Prerequisiti:
Iniziamo dal dire che bisognerebbe conoscere:
- qualcosina di Linux,
- qualcosina di Docker,
- qualcosina in più di Docker Compose.
Sarebbe utile avere anche:
- un server Linux esposto su internet, con il suo bell’indirizzo IP pubblico, in questo caso utilizzerò una VM su Azure.
- un meraviglioso dominio che dovrà puntare all’IP del nostro coccolato server Linux
- Docker e Docker Compose installati sul sopra citato meraviglioso server Linux.
Nel caso non abbiate un server Linux esposto su internet e il relativo dominio, è possibile seguire una parte della guida e utilizzare Uptime Kuma in locale. Uffa, però.
No VM no party
Se vi state chiedendo: Perché non hai utilizzato un servizio ggiovane come Azure App Service o il fratellino di AWS?
Perché non funziona. Semplice.
Iniziamo!
Personalmente preferisco utilizzare docker compose piuttosto che eseguire dei docker run perché mi permette di rendere il tutto più organizzato e manutenibile nel caso di modifiche e integrazioni.
Quindi iniziamo creando la folder che conterrà il nostro docker-compose.yml e i dati di Uptime Kuma:
mkdir uptimekumacd uptimekumatouch docker-compose.ymlA questo punto la nostra folder di progetto sarà completa.
Andiamo quindi a modificare il nostro file docker-compose.yml aggiungendo tutto il necessaire :
services: uptime-kuma: image: louislam/uptime-kuma:1 deploy: resources: limits: cpus: '0.15' memory: 100M container_name: uptime-kuma volumes: - ./uptime-kuma-data:/app/data ports: - 3001:3001 restart: alwaysNon è obiettivo di questa guida addentrarsi nel mondo di docker compose ma l’unico punto di attenzione è la parte volumes.
Per evitare di perdere tutti i dati e le configurazioni ad ogni restart del container, facciamo si che venga montata sul container la folder /uptime-kuma-data che verrà creata alla prima esecuzione nella nostra folder di partenza.
Quindi, nel caso ve lo stiate chiedendo, sì, è quella la folder da backuppare!
Eseguiamo il comando magico e aspettiamo la fine dell’esecuzione:
docker compose up -d
Ora non ci rimane che provare a raggiungere tramite browser il nostro serverino sulla porta 3001 che abbiamo impostato precedentemente e incrociare le dita.
Se tutto funziona come sperato ci troveremo davanti il form per inserire le credenziali che vogliamo utilizzare per accedere al tool.
Una volta impostate le credenziali ci troveremo nella dashboard di Uptime Kuma pronta per essere configurata.
L’usabilità è davvero molto semplice e lineare e in pochi click possiamo configurare tutti i monitoraggi di cui abbiamo bisogno.
Ora non vi rimane che spippolare un po’ tra le varie configurazioni e andare a impostare il sistema di notifica che preferite dalle impostazioni.
Io ho scelto Telegram ma il tool mette a disposizione una miriade di sistemi, troverete sicuramente quello che fa al caso vostro.
Extra Bonus
Un’altra funzionalità molto figa che mette a disposizione Uptime Kuma è la possibilità di avere più status page accessibili pubblicamente.
Funzionalità molto interessante se c’è bisogno di dare evidenza a terzi dello stato dei sistemi monitorati.
Epilogo
Con estrema facilità abbiamo messo in piedi un sistema di monitoraggio che, per la maggior parte dei casi, copre un buon numero di esigenze.
Ça va sans dire che la soluzione vista è solo l’inizio per un eventuale utilizzo in produzione, non abbiamo parlato né di DNS né di alta affidabilità.
Sipario!
Footnotes
-
A tutti piaceva quando la maestra dava le stelline. ↩
-
Tranne in questo caso. ↩