
📖 Lecture : 7 min | 🔧 Réalisation : 30 à 40 minutes | 🎯 Niveau : Débutant
Un souci en cours de route ? Consultez la section Dépannage en fin d’article.
Uptime Kuma Raspberry Pi : voilà l’association qui va me permettre de savoir en un coup d’œil si mes services sont en ligne. Dans le premier article de cette série, on a posé la brique de collecte : Prometheus et Node Exporter récoltent en continu les métriques de tout mon réseau (CPU, RAM, disque, température…). Mais Prometheus répond à une question précise : « combien » ? Il ne répond pas vraiment, d’un coup d’œil, à la question la plus simple qu’on se pose en premier : « est-ce que tout est en ligne, là, maintenant ? »
C’est exactement le rôle d’Uptime Kuma : un outil de monitoring de disponibilité, avec une interface claire, colorée, et une vraie page de statut qu’on peut même rendre publique. C’est la deuxième brique de mon NOC (Network Operation Center) maison.
Ce que vous allez obtenir
Avant de passer à l’installation, voici à quoi ressemble le résultat chez moi avec Uptime Kuma Raspberry Pi : un tableau de bord centralisé qui liste tous mes services surveillés, avec leur état en temps réel (en ligne / hors ligne) et un historique des derniers événements.

D’un coup d’œil, je vois l’état de chaque sonde (mon serveur LIO-WEB.com, mes NAS, mes Raspberry Pi, mes serveurs de jeu…), avec pour chaque bascule l’heure exacte et, pour les pannes réseau, le détail technique du ping qui a échoué. C’est exactement ce que vous allez pouvoir mettre en place dans les étapes qui suivent, avec vos propres services à la place des miens.
Uptime Kuma, c’est quoi exactement ?
Uptime Kuma est un outil de « monitoring d’uptime » open source, auto-hébergé : il envoie régulièrement une requête vers chacun de vos services (un site web, un serveur, une application, un port réseau…) et vérifie qu’il répond bien, dans un délai raisonnable. Si un service ne répond plus, Uptime Kuma le détecte immédiatement et peut vous prévenir (Discord, e-mail, notification push, etc.).
Contrairement à Prometheus qui collecte des métriques détaillées, Uptime Kuma se concentre sur une seule question binaire par service : en ligne ou hors ligne ? C’est complémentaire, pas redondant : Prometheus me dit que mon Raspberry Pi tourne à 80% de CPU, Uptime Kuma me dit si mon NAS, ma page web, ou mon serveur de jeu sont bien accessibles à l’instant T.
Dans mon projet NOC, Uptime Kuma tourne sur mon Raspberry Pi dédié à la supervision, en heartbeat « Push » pour certains services (le service lui-même prévient Uptime Kuma qu’il est vivant) et en vérification active pour d’autres (Uptime Kuma va lui-même interroger le service).
Prérequis
- Un Raspberry Pi (ou toute machine Linux) avec Docker installé. Si Docker n’est pas encore installé, je détaille l’installation ci-dessous.
- Un accès SSH ou un clavier/écran sur cette machine.
- Encore une fois : dans cet article, toutes les adresses IP sont généralisées en
192.168.1.X. Adaptez avec vos propres adresses.
Étape 1 : installer Docker
Uptime Kuma se déploie très simplement via Docker, ce qui évite d’avoir à gérer manuellement ses dépendances (Node.js, base de données, etc.). Si Docker n’est pas encore présent sur votre Raspberry Pi, on l’installe avec le script officiel :
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Une fois l’installation terminée, on ajoute son utilisateur au groupe docker pour ne plus avoir à taper sudo devant chaque commande Docker (déconnexion/reconnexion nécessaire après cette commande) :
sudo usermod -aG docker $USER
On vérifie que Docker fonctionne bien :
docker --version
Étape 2 : déployer Uptime Kuma Raspberry Pi
On crée un volume Docker dédié, qui conservera toutes les données d’Uptime Kuma (moniteurs, historique, notifications configurées) même si le conteneur est recréé :
docker volume create uptime-kuma
On lance ensuite le conteneur :
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Petite explication de cette commande, pour ceux qui découvrent Docker :
-d: lance le conteneur en arrière-plan (detached).--restart=always: redémarre automatiquement Uptime Kuma si le Raspberry Pi redémarre.-p 3001:3001: expose le port 3001 du conteneur vers le port 3001 de votre Raspberry Pi.-v uptime-kuma:/app/data: relie le volume créé juste avant au dossier de données de l’application.
On vérifie que le conteneur tourne bien :
docker ps
Vous devriez voir une ligne avec le nom uptime-kuma et un statut Up.
Étape 3 : premier lancement et création du compte admin
Rendez-vous dans un navigateur sur :
http://192.168.1.X:3001
(en remplaçant par l’adresse IP réelle de votre Raspberry Pi). Au premier lancement, Uptime Kuma vous demande de créer un compte administrateur (nom d’utilisateur + mot de passe). Choisissez un mot de passe robuste : cette interface donne accès à tout votre monitoring.
Étape 4 : ajouter votre premier moniteur
Une fois connecté, cliquez sur « Add New Monitor ». Uptime Kuma propose plusieurs types de vérification, les plus courants étant :
- HTTP(s) : vérifie qu’une page web répond (idéal pour un site, une interface d’administration comme Grafana ou Prometheus).
- TCP Port : vérifie qu’un port réseau précis est ouvert (utile pour un serveur de jeu, une base de données…).
- Ping : vérifie simplement qu’une machine répond au ping (utile pour un Raspberry Pi, un PC, un routeur).
- Push : à l’inverse des précédents, c’est le service surveillé qui envoie lui-même un signal (« je suis vivant ») à Uptime Kuma à intervalle régulier ; si le signal n’arrive plus, Uptime Kuma déclenche une alerte.
Exemple concret : pour surveiller que mon interface Prometheus (vue dans l’article précédent) est bien accessible, je choisis :
- Monitor Type :
HTTP(s) - Friendly Name :
Prometheus - URL :
http://192.168.1.X:9090 - Heartbeat Interval :
60secondes (vérification toutes les minutes)
Cliquez sur « Save ». Uptime Kuma commence immédiatement à vérifier le service, et vous voyez apparaître un historique en temps réel (des petites barres vertes pour chaque vérification réussie).
Étape 5 : configurer une notification (exemple avec Discord)
L’intérêt principal d’Uptime Kuma, c’est d’être prévenu automatiquement en cas de panne, sans avoir à surveiller l’interface en permanence. Direction Settings → Notifications → Setup Notification.
Choisissez le type Discord Webhook, collez l’URL de votre webhook Discord (créé depuis les paramètres d’un salon Discord : Intégrations → Webhooks → Créer un webhook), donnez un nom à cette notification, puis cliquez sur « Test » pour vérifier qu’un message de test arrive bien sur votre salon. Une fois validé, vous pouvez associer cette notification à un ou plusieurs moniteurs (case à cocher lors de la création/modification d’un moniteur).
Étape 6 : créer une page de statut publique (optionnel)
Uptime Kuma permet de créer une « Status Page » : une page publique, épurée, qui affiche l’état de vos services sans exposer le reste de votre interface d’administration. Pratique si vous voulez partager la disponibilité de vos services avec d’autres personnes (famille, amis, utilisateurs d’un serveur de jeu…).
Direction Status Pages → New Status Page, donnez-lui un nom, ajoutez les moniteurs que vous souhaitez rendre visibles (par glisser-déposer), puis publiez. Vous obtenez une URL dédiée, à partager comme vous le souhaitez.
Dépannage Uptime Kuma Raspberry Pi
Le conteneur ne démarre pas ou s’arrête aussitôt : consultez ses logs pour voir l’erreur exacte :
docker logs uptime-kuma
Impossible d’accéder à l’interface sur le port 3001 : vérifiez que le conteneur est bien « Up » (docker ps), et qu’aucun pare-feu ne bloque ce port sur votre réseau local.
Un moniteur reste « Pending » indéfiniment : c’est souvent une adresse mal renseignée (mauvais port, mauvais protocole http/https) ou un service qui n’est tout simplement pas encore démarré sur la machine cible.
Petit glossaire
- Uptime : le temps pendant lequel un service reste disponible et fonctionnel, généralement exprimé en pourcentage.
- Heartbeat : littéralement « battement de cœur » ; un signal régulier confirmant qu’un service est toujours actif.
- Webhook : une URL spéciale qui permet à une application d’envoyer automatiquement un message à une autre (ici, Uptime Kuma vers Discord).
- Status Page : une page web publique résumant l’état de disponibilité d’un ensemble de services.
Et maintenant ?
Avec Prometheus et Uptime Kuma Raspberry Pi, j’ai maintenant les deux piliers de mon NOC : la mesure fine (Prometheus) et la disponibilité en un coup d’œil (Uptime Kuma). Il est temps de rendre tout ça visuel : dans le prochain article, on s’attaque à Grafana, l’outil qui va transformer toutes ces données brutes en graphiques lisibles et personnalisables. Rendez-vous très vite !