Comment j'ai adopté Uptime Kuma ?

Comment j'ai adopté Uptime Kuma pour surveiller mon homelab Proxmox : présentation, mon usage et tutoriel de déploiement avec Docker.

Introduction

Si toi aussi tu as un homelab et que tu héberges des services auxquels tu tiens, tu as sûrement déjà eu la boule au ventre en te demandant si le service X ou Y était toujours en ligne.

Chez moi, ça arrivait tout le temps. Deux nœuds de mon cluster Proxmox reposent sur un câble Ethernet un peu fatigué, et au moindre faux pas de l'un de mes chats, le blog se coupe !

C'est pour ça que j'ai voulu essayer Uptime Kuma, et que je l'ai adopté.

Uptime Kuma, c'est quoi en fait ?

C'est un petit service écrit en Node.js qui permet de déclarer des sondes de différents types (HTTP, TCP, ping, base de données…) pour surveiller tes services, ou des services publics.

La question à 100 patates : quelle plus-value ?

  • Léger : une centaine de Mo de RAM
  • Il tourne sur un grille-pain : un Raspberry Pi 3, c'est déjà le grand luxe
  • Zéro fichier de config : tout se fait depuis l'interface web, idéal pour débuter
  • Une communauté solide

Évidemment, les plus aguerris me demanderont pourquoi pas Prometheus + Alertmanager, ou n'importe quelle autre techno ?

Parce que je n'utilise pas (encore) vraiment Grafana, que c'est bien plus lourd à faire tourner sur un Raspberry, et parce que pourquoi pas ?

Kuma répond à une question simple : "est-ce que ça répond ?". Pour l'instant, c'est tout ce dont j'ai besoin.

Comment moi je m'en sers

Il tourne sur un Raspberry Pi dédié, qui ne fait que ça. Il surveille :

  • mes nœuds Proxmox
  • mes bases de données
  • mes instances pour Arles
  • mes instances pour le blog
  • etc

Ce qu'il m'a déjà permis de détecter :

  • Une migration ratée : une migration de la base de données d'Arles s'était mal passée. Je m'en suis rendu compte grâce à Uptime Kuma.
  • Mes nœuds débranchés : l'histoire du câble Ethernet n'était pas une blague. Kuma a bien détecté que mes nœuds étaient débranchés.

Comment le déployer ?

Il te faut :

  1. De quoi l'héberger (VM, LXC, Raspberry, le PC de mamie) sous Debian ou Ubuntu
  2. Un réseau local (c'est quand même mieux)
  3. Des choses à monitorer (c'est mieux aussi)

Je pars du principe que tu as une Debian/Ubuntu fraîchement installée, accessible en SSH.

1. Mettre à jour le système

sudo apt update && sudo apt upgrade -y

2. Installer Docker

Le plus rapide, c'est le script officiel :

curl -fsSL https://get.docker.com | sudo sh

Ajoute ensuite ton utilisateur au groupe docker pour ne plus avoir à taper sudo à chaque commande :

sudo usermod -aG docker $USER

Déconnecte-toi puis reconnecte-toi pour que ce soit pris en compte, et vérifie :

docker --version
docker compose version

3. Créer le dossier du projet

mkdir -p ~/uptime-kuma && cd ~/uptime-kuma

4. Écrire le docker-compose.yml

nano docker-compose.yml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data

Quelques explications :

  • restart: unless-stopped : Kuma redémarre tout seul après un reboot
  • 3001:3001 : le port de l'interface web
  • ./data:/app/data : toutes tes sondes et ton historique sont stockés ici, c'est le seul dossier à sauvegarder

Garde ce dossier sur un disque local (pas sur un partage NFS/SMB) : Kuma utilise SQLite, qui n'apprécie pas du tout les disques réseau.

5. Lancer le service

docker compose up -d

Vérifie que le conteneur tourne :

docker compose ps

6. Premier accès

Ouvre http://IP-DE-TA-MACHINE:3001 dans ton navigateur. Au premier lancement, Kuma te demande de créer ton compte administrateur. Choisis un vrai mot de passe, même sur un réseau local.

Tu peux ensuite cliquer sur Add New Monitor, choisir un type de sonde (HTTP, Ping, TCP, DNS…), renseigner l'adresse de ton service, et c'est parti.

7. Mettre à jour

cd ~/uptime-kuma
docker compose pull
docker compose up -d

Pense à faire une copie du dossier data avant une mise à jour majeure.

Conclusion

Ça fait maintenant 3 mois qu'Uptime Kuma tourne chez moi, et voici mon petit compte rendu :

  • Les sondes : je suis bluffé par la facilité avec laquelle on les met en place. Quelques clics et c'est surveillé.
  • Les notifications : elles partent nickel, et surtout dans les temps.
  • Le Raspberry : il tourne très bien, sans broncher.

Bref, Uptime Kuma est de ces outils qu'on installe en dix minutes et qu'on ne regrette jamais. Il ne demande presque rien, et il fait exactement ce qu'on attend de lui.

Pour la suite, je compte t'expliquer comment rajouter des services de notifications, ajouter une page de statut publique et peut-être (si tu es sage) te montrer comment l'intégrer dans Grafana.

Et toi, quel est le service de ton homelab que tu aimerais surveiller en premier ?

Commentaires

Chargement des commentaires…

Masquer ce commentaire ?

Il ne sera plus visible du public. Son texte est conservé et vous pourrez le rétablir. Ses réponses restent visibles.

Signaler ce commentaire

Pourquoi ?