Uptime Kuma : monitoring de services auto-hébergé avec alertes

Savoir qu’un service est tombé avant vos utilisateurs, c’est la différence entre un incident géré et une découverte embarrassante. Uptime Kuma surveille vos endpoints — sites web, APIs, bases de données, services DNS — et vous alerte immédiatement via une trentaine de canaux de notification.

Ce que fait Uptime Kuma

Uptime Kuma est un outil de monitoring de disponibilité auto-hébergé. Il effectue des vérifications périodiques (HTTP, TCP, ping, DNS, bases de données…), calcule le taux de disponibilité, affiche un historique visuel, et envoie des alertes quand un service répond hors des paramètres attendus.

Il propose aussi des pages de statut publiques — une URL à partager avec vos clients ou utilisateurs pour afficher l’état de vos services en temps réel.

Installation avec Docker

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

volumes:
  uptime-kuma-data:
docker compose up -d
# Interface disponible sur http://localhost:3001

Première connexion : créez un compte administrateur. Aucune base de données externe requise — SQLite embarqué.

Types de moniteurs

HTTP / HTTPS

Le plus courant : vérifie qu’une URL répond avec un code HTTP attendu.

URL       : https://api.mon-service.com/health
Méthode   : GET
Code HTTP : 200
Intervalle: 60 secondes
Timeout   : 10 secondes

Options avancées :

  • Corps de réponse — vérifier que la réponse contient une chaîne spécifique ("status":"ok")
  • Headers — ajouter des headers d’authentification (Bearer token, API key)
  • Certificat SSL — alerte si le certificat expire dans moins de N jours
  • Redirections — suivre ou ignorer les redirections

TCP Port

Vérifie qu’un port est ouvert et accepte les connexions :

Hôte : db.mon-serveur.internal
Port : 5432

Utile pour surveiller PostgreSQL, MySQL, Redis, ou tout service TCP sans endpoint HTTP.

Ping (ICMP)

Simple vérification de disponibilité réseau :

Hôte : 192.168.1.1

DNS

Vérifie qu’un enregistrement DNS résout correctement :

Hôte      : mon-site.com
Type      : A
Valeur    : 185.199.108.153

Détecte les hijackings DNS ou les propagations en cours.

Bases de données

Uptime Kuma supporte des connexions directes aux bases de données :

Type     : PostgreSQL
Hôte     : localhost
Port     : 5432
Database : production
User     : monitor_user
Password : ****
Query    : SELECT 1

Utile pour vérifier que la base répond, pas seulement que le port est ouvert.

Docker Container

Si Uptime Kuma tourne sur le même hôte Docker :

Socket Docker : /var/run/docker.sock
Container     : mon-api

Surveille l’état du container (running/stopped) directement.

Notifications

Uptime Kuma intègre plus de 30 canaux de notification.

Telegram

Bot Token : 123456789:AAF...
Chat ID   : -1001234567890

Format du message reçu :

🔴 [DOWN] api.mon-service.com
Raison : Connection timeout
Durée  : 3 minutes

Slack / Discord

Webhook URL : https://hooks.slack.com/services/T.../B.../...

Email (SMTP)

Serveur SMTP : smtp.gmail.com
Port         : 587
TLS          : STARTTLS
Utilisateur  : alerts@mon-domaine.com
Mot de passe : ****
Destinataire : equipe@mon-domaine.com

Webhook générique

Pour intégrer avec n’importe quel système :

POST https://mon-api.com/webhook/monitoring
{
  "monitor": "api.mon-service.com",
  "status": "down",
  "msg": "Connection timeout",
  "heartbeat": {
    "time": "2026-04-24T08:32:00Z",
    "duration": 180
  }
}

Page de statut publique

Uptime Kuma génère des pages de statut partageables :

Paramètres → Pages de statut → Nouvelle page
Slug : statut-mon-service
URL  : http://localhost:3001/status/statut-mon-service

Choisissez quels moniteurs afficher. La page montre :

  • L’état actuel (opérationnel / dégradé / en panne)
  • L’historique des 90 derniers jours (barres vertes/rouges)
  • Le taux de disponibilité

Vous pouvez mettre cette page derrière un domaine personnalisé via un reverse proxy.

Maintenance programmée

Pour planifier des maintenances sans déclencher d’alertes :

Maintenance → Ajouter
Titre       : Déploiement v2.1
Début       : 2026-04-24 02:00
Fin         : 2026-04-24 03:00
Moniteurs   : [API Production, Base de données]

Les alertes sont suspendues pendant la fenêtre de maintenance.

Reverse proxy avec Caddy

Pour exposer Uptime Kuma sur un domaine :

# Caddyfile
statut.mon-domaine.com {
    reverse_proxy uptime-kuma:3001
}

Avec Nginx :

server {
    listen 443 ssl;
    server_name statut.mon-domaine.com;

    location / {
        proxy_pass         http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
        proxy_set_header   Host $host;
    }
}

Le support des WebSockets (Upgrade) est requis pour l’interface temps réel.

Alertes SSL

Uptime Kuma vérifie automatiquement les certificats SSL des moniteurs HTTPS et alerte N jours avant expiration :

Paramètres du moniteur → Expiration du certificat
Alerte si expiration dans moins de : 14 jours

Reçevez une alerte avant que Let’s Encrypt ne renouvelle (ou échoue à renouveler) votre certificat.

+ Les points forts

  • Installation en 2 minutes — Docker Compose, une image, aucune dépendance externe
  • Interface claire — historique visuel immédiatement lisible, graphiques de temps de réponse
  • 30+ canaux de notification — Telegram, Slack, Discord, email, Ntfy, Gotify, PagerDuty…
  • Pages de statut publiques — communicationfacile avec les utilisateurs lors d’incidents
  • Certificats SSL surveillés — alertes d’expiration intégrées
  • Gratuit et open source — pas de limite de moniteurs, pas d’abonnement

- Les points faibles

  • Pas de monitoring multi-région — toutes les vérifications partent d’un seul hôte. Un site accessible depuis Paris mais pas depuis New York ne sera pas détecté
  • Pas d’alertes conditionnelles complexes — les règles d’alerte sont simples (down/up). Pas de seuils sur le temps de réponse, pas d’alertes sur anomalies statistiques
  • SQLite uniquement — pas de support PostgreSQL pour les grandes installations avec des milliers de moniteurs
  • Pas d’API complète — la configuration via API REST est limitée par rapport aux concurrents enterprise

Comparaison

Uptime KumaGrafana+PrometheusUptimeRobot
Auto-hébergement
InstallationSimpleComplexeN/A
Moniteurs gratuitsIllimitéIllimité50
Multi-région✅ (avec agents)
Pages de statutPartiel
Alertes avancéesBasiqueAvancéBasique
PrixGratuitGratuitFreemium

En résumé

Uptime Kuma est la solution de monitoring à déployer en premier sur tout serveur. Cinq minutes d’installation, et vous êtes alerté immédiatement quand un service tombe — avant vos utilisateurs. Pour les besoins avancés (multi-région, alertes sur percentiles de latence), une stack Prometheus/Grafana prend le relais, mais Uptime Kuma couvre 90% des cas d’usage avec 1% de la complexité.


Voir aussi :

  • Coolify — déployer les services que vous souhaitez surveiller
  • Headscale — accéder à votre Uptime Kuma depuis n’importe où en VPN mesh