Uptime Kuma : surveiller ses services sans payer d'abonnement mensuel
Un outil de monitoring auto-hébergé qui remplace UptimeRobot ou Pingdom — pings, notifications, pages de statut publiques, en un seul container.
UptimeRobot gratuit limite à 50 moniteurs avec un intervalle de check de 5 minutes. Pingdom facture dès le premier site sérieux. Pour surveiller trois VPS, quatre APIs et un site vitrine, ces limites arrivent vite. Uptime Kuma fait le même travail — vérifier qu'un service répond, alerter si non — sans limite de moniteurs ni d'intervalle, parce que c'est votre serveur qui fait le travail.
Uptime Kuma est un outil de monitoring de disponibilité. Il ping des URLs, des ports TCP, des requêtes DNS, des commandes shell custom, à intervalle configurable, et déclenche des alertes multi-canaux (email, Discord, Slack, Mattermost, Telegram, webhook générique — plus de 90 intégrations) dès qu'un check échoue. Une page de statut publique optionnelle affiche l'état en temps réel, façon status.stripe.com.
Installation
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma-data:/app/data \
louislam/uptime-kuma:latestPremier accès sur http://votre-serveur:3001 : création du compte admin, puis direction le dashboard vide. C'est tout — pas de base de données externe à configurer, Uptime Kuma embarque SQLite.
Créer un moniteur
Depuis + Add New Monitor, plusieurs types de check disponibles :
| Type | Vérifie |
|---|---|
| HTTP(s) | Code de statut, contenu de la réponse, certificat SSL |
| TCP Port | Le port répond-il (utile pour une base de données, un service interne) |
| Ping (ICMP) | Le serveur répond-il aux pings |
| DNS | Le enregistrement DNS résout correctement |
| Docker Container | Le container est-il en état running |
| Commande shell | Résultat d'un script custom |
Pour une API, le check HTTP peut valider bien plus qu'un simple code 200 :
Méthode : GET
URL : https://api.mondomaine.fr/health
Intervalle : 60 secondes
Retries avant alerte : 2
Attendu : code 200 ET corps contient "ok"Le paramètre Retries évite le faux positif classique : un timeout réseau isolé de deux secondes ne doit pas réveiller quelqu'un à 3h du matin. Deux échecs consécutifs avant alerte filtre l'essentiel du bruit.
Certificats SSL : alerte avant expiration
Un check HTTPS surveille aussi la date d'expiration du certificat et alerte automatiquement — par défaut 14 jours avant échéance. Sur un serveur où Let's Encrypt renouvelle en cron, ça détecte le jour où le renouvellement automatique a silencieusement cassé, avant que le certificat n'expire réellement et coupe l'accès au site.
Notifications
La configuration des notifications se fait une fois, dans Settings > Notifications, puis s'attache à n'importe quel moniteur.
Type : Webhook
URL : https://chat.mondomaine.fr/hooks/xxxxxxxxxxxxxxxxxxxxxxxxxxxxPour Mattermost ou Slack, Uptime Kuma formate automatiquement le payload JSON attendu — pas de template à écrire à la main. La même alerte peut partir simultanément sur plusieurs canaux : Discord pour l'équipe, SMS via Twilio pour l'astreinte critique.
Pages de statut publiques
Depuis Status Pages, on assemble un sous-ensemble de moniteurs en une page publique consultable par les utilisateurs, sans exposer le dashboard admin complet.
status.mondomaine.fr → affiche :
- API principale : Opérationnel
- Base de données : Opérationnel
- CDN : Dégradé (latence élevée)Utile pour un produit avec des utilisateurs externes — au lieu de répondre en boucle "c'est down chez vous ou chez nous", la page publique répond avant même la question.
Docker socket monitoring
Sur un serveur qui fait tourner plusieurs containers via Docker, le type de check Docker Container se branche directement sur le socket local pour vérifier qu'un container précis reste en vie — complémentaire de ce que fait déjà Portainer côté gestion, mais orienté alerte plutôt que dashboard.
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma-data:/app/data \
-v /var/run/docker.sock:/var/run/docker.sock \
louislam/uptime-kuma:latestLe montage du socket Docker est optionnel — nécessaire uniquement si des checks de type container sont utilisés.
Sauvegarde
Tout l'état vit dans le volume uptime-kuma-data — une base SQLite avec les moniteurs, l'historique, et la config des notifications.
tar czf uptime-kuma-backup-$(date +%F).tar.gz /var/lib/docker/volumes/uptime-kuma-dataUptime Kuma propose aussi un export/import JSON des moniteurs depuis Settings > Backup, plus rapide pour migrer la config vers une nouvelle instance sans transporter tout l'historique.
Uptime Kuma ne remplace pas un APM complet comme Datadog pour du profiling applicatif fin — pour ça, Grafana et Prometheus couvrent mieux les métriques détaillées. Mais pour la question la plus simple et la plus critique — "est-ce que mon service répond, là, maintenant" — c'est installé en cinq minutes et ça ne demande jamais de carte bancaire.