09 - Uptime Kuma : surveillance & alertes
Uptime Kuma surveille en continu tes services et te prévient dès que l'un tombe (email, Telegram, Discord…). Il stocke tout dans SQLite (un seul fichier dans son volume - facile à sauvegarder, voir §8).
- URL :
https://uptime-it.engwe-france.fr - Déployé via Coolify (projet ENGWE INFRA), image
louislam/uptime-kuma.
1. Vocabulaire : une « sonde » = un Monitor
Dans Uptime Kuma, chaque chose que tu surveilles s'appelle un Monitor (la « sonde »). Un monitor, c'est :
- une cible (une URL, une IP + port, un hôte à pinguer…) ;
- un type de vérification (HTTP, TCP, Ping, DNS, mot-clé…) ;
- une fréquence (toutes les 60 s par défaut) ;
- des conditions de succès (code HTTP attendu, mot-clé présent, temps de réponse…) ;
- des notifications rattachées (qui prévenir en cas de panne).
Kuma exécute la sonde en boucle et dessine une timeline verte (up) / rouge (down) + un temps de réponse.
2. Créer ta première sonde (pas à pas)
- Connecte-toi → bouton + Add New Monitor (en haut à gauche).
- Monitor Type : choisis
HTTP(s)(le plus courant). - Friendly Name : un nom lisible, ex.
n8n. - URL : l'adresse complète, ex.
https://n8n-it.engwe-france.fr. - Heartbeat Interval :
60secondes (bien pour démarrer). - Retries :
3→ il faut 3 échecs d'affilée avant de te déclarer « down » (évite les fausses alertes sur un micro-hoquet réseau). - Notifications : coche celle(s) que tu auras créée(s) au §6.
- Save.
C'est tout. La sonde démarre immédiatement et tu vois la courbe se remplir.
3. Est-ce que je peux surveiller n'importe quelle URL ?
Oui. Tu peux surveiller :
- N'importe quelle URL publique : tes services (
n8n-it…,data-it…), mais aussi des sites externes (https://google.com, une API tierce, ton Shopify, l'API OpenRouter…). Aucune restriction de domaine. - Des services internes joignables depuis le container Kuma. ⚠️ Rappel de
ton setup : Kuma est un Service Coolify, donc sur son propre réseau
Docker isolé. Pour surveiller un service par son nom interne (ex.
http://postgres:5432) plutôt que par son URL publique, il faudraitdocker network connect coolify <container-kuma>. Pas nécessaire si tu surveilles tout via les URLs HTTPS publiques (recommandé - plus simple, et ça teste aussi le reverse proxy + le SSL).
4. Types de sondes disponibles (ce que tu peux vérifier)
Uptime Kuma va bien au-delà du simple « le site répond-il ». Les types les plus utiles :
| Type | Ce qu'il vérifie | Exemple d'usage |
|---|---|---|
| HTTP(s) | Le site répond avec un code 2xx/3xx | Tous tes services web |
| HTTP(s) - Keyword | Un mot-clé est présent (ou absent) dans la page | Vérifier que la page affiche n8n et pas une page d'erreur blanche |
| HTTP(s) - Json Query | Interroge un champ JSON d'une API et le compare | API qui renvoie {"status":"ok"} → vérifier status == ok |
| TCP Port | Un port répond | Vérifier qu'un port applicatif écoute |
| Ping | L'hôte répond au ping ICMP | Vérifier que le VPS est vivant (187.55.227.148) |
| DNS | Une résolution DNS renvoie la bonne valeur | Vérifier que engwe-france.fr pointe au bon endroit |
| Docker | Un container est running/healthy | Surveiller un container précis |
| Push | C'est ton service qui appelle Kuma (heartbeat inversé) | Un cron/job qui doit tourner : s'il ne « ping » pas Kuma à temps → alerte |
| Steam / MQTT / gRPC / Radius… | Protocoles spécialisés | Rarement utile ici |
Vérifications fines que tu peux ajouter sur une sonde HTTP
- Code de statut accepté : par défaut
200-299. Tu peux exiger200strict, ou accepter401si un service protégé répond volontairement 401. - Mot-clé (type Keyword) : la sonde est « up » seulement si le texte attendu apparaît dans la réponse.
- Requête JSON (type Json Query) : extrait un champ d'une réponse API et le compare à une valeur attendue.
- Expiration du certificat SSL : Kuma affiche les jours restants avant expiration du certificat HTTPS et peut t'alerter avant qu'il périme.
- Temps de réponse : la courbe te montre la latence ; utile pour repérer un service qui rame avant qu'il tombe.
- En-têtes / auth / méthode : dans les options avancées tu peux définir la
méthode (GET/POST), des headers (ex.
Authorization: Bearer …), un body, ignorer un certificat auto-signé, etc.
5. Les sondes à créer pour ta stack (recommandé)
| Nom | Type | Cible |
|---|---|---|
| Coolify | HTTP(s) | https://coolify-it.engwe-france.fr |
| n8n | HTTP(s) - Keyword | https://n8n-it.engwe-france.fr (mot-clé n8n) |
| NocoDB | HTTP(s) | https://data-it.engwe-france.fr |
| Mongo Express | HTTP(s) | https://mongo-it.engwe-france.fr (accepte 401 si basic-auth) |
| VPS (ping) | Ping | 187.55.227.148 |
Quand tu déploieras Open WebUI (
chat-it) et ton API (api-it), ajoute-leur une sonde de la même façon.
6. Notifications (être prévenu quand ça tombe)
- Settings → Notifications → Setup Notification.
- Choisis le canal :
- Email (SMTP) : simple, mais demande un serveur SMTP (ex. un compte Gmail avec mot de passe d'application, ou un service type Brevo/Mailgun).
- Telegram : le plus rapide à mettre en place - crée un bot via
@BotFather, récupère le token et ton chat id, colle-les. Gratuit, fiable, notif instantanée sur ton téléphone. Recommandé. - Discord : colle simplement l'URL d'un webhook de salon.
- Test pour vérifier que le message arrive, puis Save.
- Retourne sur chaque sonde et coche la notification (elle n'est pas rattachée automatiquement aux sondes déjà créées).
7. Fonctions utiles en plus
- Status Page (
Settings → Status Pages) : une page publique (ou privée) facultative type « statut des services », avec ton logo, que tu peux partager. - Maintenance : planifie une fenêtre de maintenance → Kuma n'alerte pas pendant que tu mets à jour un service (évite le spam d'alertes).
- Tags : range tes sondes (ex.
infra,perso). - Groupes de moniteurs : regroupe visuellement (ex. « Bases », « Web »).
- 2FA : active-la sur ton compte admin (
Settings → Security).
8. Sauvegarde (important)
Toute la config + l'historique tiennent dans un seul fichier SQLite
(kuma.db) à l'intérieur du volume Kuma. Deux façons de le sauvegarder :
- Dans l'app :
Settings → Backup → Export→ télécharge un JSON de tes sondes/notifications (config uniquement, pas l'historique). - Le volume Docker (config et historique) : inclure le volume de Kuma dans le script de sauvegarde des volumes de docs/05-maintenance-sauvegardes.md.
Pense à faire l'export/backup avant toute mise à jour majeure de l'image.
Voilà : tu peux surveiller n'importe quelle URL, vérifier bien plus que « c'est en ligne » (mot-clé, JSON, SSL, latence, ping, port…), et te faire alerter automatiquement. Reviens au README pour la vue d'ensemble.
