Pro

Uptime Kume (Sonde)

Uptime Kuma — Sonde de Surveillance Self-Hosted

🎯 Vue d'Ensemble

Uptime Kuma est une sonde de surveillance (monitoring) open-source self-hosted qui permet de monitorer l'uptime et la performance de tous tes services (sites web, APIs, VPS, bases de données, etc.). Une alternative complète à Pingdom ou UptimeRobot, hébergée sur ton propre VPS.

📊 Ce qu'Uptime Kuma Surveille

  • HTTP/HTTPS : temps de réponse, codes d'erreur
  • TCP/UDP : connectivité ports (SSH, MySQL, Redis, etc.)
  • DNS : résolution et lookups
  • Ping ICMP : latence réseau
  • Certificats SSL : expiration, alertes
  • Docker containers : statut, santé
  • Bases de données : MySQL, PostgreSQL, MongoDB
  • APIs heartbeat : POST personnalisés

🚀 Processus d'Intégration Complet

PHASE 1: PRÉPARATION VPS

Installation des prérequis et vérification de l'environnement :

  • Accès SSH au VPS
  • Vérification Node.js 14.17+ installé
  • Docker configuré (optionnel mais recommandé)
  • Ports 80, 443, 3001 disponibles
  • Création d'un utilisateur dédié uptimekuma pour la sécurité

PHASE 2: CLONAGE & INSTALLATION

  • Git Clone depuis repository officiel louislam/uptime-kuma
  • npm install : installation de 200+ dépendances (2-5 min)
  • npm run build : compilation React frontend + backend (3-10 min)
  • npm start : test en mode développement sur http://localhost:3001
  • Vérification de la base de données SQLite créée automatiquement

PHASE 3: CONFIGURATION PM2 (Démarrage Auto)

Mise en place du process manager pour garantir que Uptime Kuma redémarre automatiquement :

  • Installation globale : npm install -g pm2
  • Fichier ecosystem.config.js : configuration avancée (logs, memoire, env)
  • Démarrage : pm2 start ecosystem.config.js
  • Sauvegarde : pm2 save + pm2 startup pour boot automatique
  • Monitoring : pm2 logs pour suivre les événements en temps réel

PHASE 4: REVERSE PROXY APACHE

Configuration Apache pour exposer Uptime Kuma via un domaine sécurisé :

  • Activation modules : proxy, proxy_http, proxy_wstunnel, rewrite, ssl, headers
  • VirtualHost HTTPS : domaine uptime.amarsyll.pro
  • Redirection HTTP → HTTPS : sécurité forcée
  • ProxyPass : redirection de http://localhost:3001 vers le domaine public
  • WebSocket support : proxy_wstunnel pour logs temps réel
  • Headers de sécurité : HSTS, X-Frame-Options, X-Content-Type-Options

PHASE 5: CONFIGURATION UPTIME KUMA

Initialisation et configuration de la plateforme :

  • Setup initial : création compte admin avec mot de passe fort
  • Ajout moniteurs : HTTP/HTTPS, TCP ports, DNS, Ping
  • Exemples configurés :
    • Main Portfolio (https://amarsyll.pro) - interval 60s
    • HDR Admin Dashboard - interval 60s
    • MySQL Database (TCP:3306) - interval 120s
    • SSH Server (TCP:22) - interval 300s
    • TrackOS Analytics - interval 60s
  • Seuils : 2 retries avant alerte, down duration 5 min

PHASE 6: NOTIFICATIONS & ALERTES

Configuration des canaux d'alerte en cas de downtime :

  • Email SMTP : Gmail ou serveur mail custom (STARTTLS port 587)
  • Slack webhooks : notifications directes dans Slack
  • SMS/Discord : autres canaux supportés
  • Attachment aux moniteurs : configuration par service
  • Test notifications : validation avant production

PHASE 7: PAGE DE STATUT PUBLIQUE

  • Status Page publique : accessible via https://uptime.amarsyll.pro/status/[slug]
  • Affichage temps réel : état ✅/❌ de chaque service
  • Historique 90 jours : graphiques de l'uptime
  • Sans authentification : visible par tous les utilisateurs
  • Branding custom : titre, description, couleurs personnalisables

PHASE 8: SÉCURITÉ & HARDENING

  • Certificat SSL : Let's Encrypt avec renouvellement auto
  • 2FA/TOTP : authentification à deux facteurs (optionnel mais recommandé)
  • Firewall UFW : limitation des ports ouverts
  • Headers de sécurité : HSTS, CSP, X-Frame-Options
  • Rate limiting : protection contre brute-force

PHASE 9: SAUVEGARDE & MAINTENANCE

  • Auto-backup : quotidien à 02:00 UTC (SQLite)
  • Backup manuel : tar.gz sur stockage externe
  • Mises à jour : git pull + npm install + rebuild
  • Monitoring logs : pm2 logs, Apache logs, système
  • Maintenance planifiée : restarts hebdomadaires (optionnel)

📊 Fonctionnalités Dashboard

Vue d'Ensemble Centralisée

  • Overall Status : uptime global en % (ex: 98.5%)
  • Today's Stats : requêtes totales, événements down, temps moyen réponse
  • All Monitors : liste complète avec statut en temps réel
  • Recent Events Timeline : historique chronologique des changements
  • Graphs : courbes de temps réponse sur 24h/7j/30j

Statistiques Détaillées par Service

  • Uptime percentage : 24h, 7j, 30j, all time
  • Response times : average, min, max
  • Status codes : distribution 200, 301, 404, 5xx, etc.
  • Downtime events : dates, durées, raisons (timeout, DNS, etc.)
  • Incidents : timeline détaillée avec contexte

Alertes & Notifications

  • Email immédiat en cas de downtime détecté
  • Notification de recovery quand le service revient
  • Alertes certificats SSL 30j avant expiration
  • Escalade si downtime > seuil défini
  • Historique complet de toutes les alertes

💻 Stack Technique

  • Frontend : Vue.js + Material Design (responsive)
  • Backend : Node.js + Express.js
  • Database : SQLite (simple) ou MySQL/PostgreSQL (scalable)
  • Real-time : Socket.IO pour WebSocket
  • Server : Apache 2.4 + PM2 + Ubuntu 20.04 LTS
  • Security : Let's Encrypt SSL, JWT, 2FA TOTP
  • Monitoring : Logs JSON, métriques Prometheus-ready

🎯 Cas d'Usage

Pour Développeurs Indépendants

  • ✅ Monitorer tous tes projets depuis un seul dashboard
  • ✅ Être alerté immédiatement en cas de downtime
  • ✅ Afficher une page de statut publique à tes clients
  • ✅ Tracker l'uptime de tes services perso (baccalaureat.sn, etc.)

Pour Agences Web & Boutiques en Ligne

  • ✅ Monitorer la santé de sites clients
  • ✅ Alertes SLA (Service Level Agreement) à respecter
  • ✅ Status page à partager avec clients/utilisateurs
  • ✅ Historique pour prouver la disponibilité

Pour Startups & SaaS

  • ✅ Monitorer API, base de données, workers background jobs
  • ✅ Alerts en cascade : email → Slack → SMS selon sévérité
  • ✅ Dashboard client pour transparency
  • ✅ Compliance SLA (99.9% uptime)

🌟 Avantages Clés

  • Souveraineté : 100% self-hosted sur ton VPS, pas de tiers
  • Coût zéro : open-source, pas d'abonnement mensuel
  • Transparence : code source visible sur GitHub
  • Scalabilité : support de 1000+ moniteurs
  • Flexibilité : customizable pour tes besoins spécifiques
  • Temps réel : WebSocket, latence < 100ms
  • RGPD-compliant : données hébergées localement
  • Enterprise-ready : 2FA, SSL, backups, haute disponibilité

📈 Exemples de Services Monitorés

Dashboard Uptime Kuma — amarsyll.pro Services

Overall Uptime: 99.87% (30 days)
Total Monitors: 5 active

1. Main Portfolio (HTTP)
   ├─ URL: https://amarsyll.pro
   ├─ Status: ✅ UP (243ms avg)
   ├─ Last Check: 2 minutes ago
   └─ Uptime: 99.98% (30j)

2. HDR Admin (HTTP)
   ├─ URL: https://admin.amarsyll.pro
   ├─ Status: ✅ UP (318ms avg)
   ├─ Last Check: 1 minute ago
   └─ Uptime: 100% (30j)

3. MySQL Database (TCP:3306)
   ├─ Host: localhost:3306
   ├─ Status: ✅ UP (12ms)
   ├─ Last Check: Just now
   └─ Uptime: 100% (30j)

4. TrackOS Analytics (HTTP)
   ├─ URL: https://trackos.amarsyll.pro
   ├─ Status: ✅ UP (289ms avg)
   ├─ Last Check: 1 minute ago
   └─ Uptime: 99.5% (30j)

5. SSH Server (TCP:22)
   ├─ Host: [IP]:22
   ├─ Status: ✅ UP (8ms)
   ├─ Last Check: Just now
   └─ Uptime: 100% (30j)

Recent Downtime Events (Last 30 days):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[2025-05-03 14:22] TrackOS: 2 min 14s (Socket timeout)
[2025-04-28 08:45] Main Portfolio: 47s (Network timeout)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🔧 Commandes Utiles

# PM2 Management
pm2 status                  # État des processus
pm2 logs uptime-kuma       # Logs en temps réel
pm2 restart uptime-kuma    # Redémarrer
pm2 stop uptime-kuma       # Arrêter
pm2 delete uptime-kuma     # Supprimer

# Vérification Système
netstat -tuln | grep 3001  # Port 3001 utilisé?
lsof -i :3001              # Processus sur port 3001
sudo apache2ctl configtest # Syntax Apache OK?
sudo certbot certificates  # Certificats SSL

# Logs
pm2 logs uptime-kuma                           # Logs app
sudo tail -f /var/log/apache2/uptime-kuma-*   # Logs Apache
journalctl -u apache2 -f                       # Logs système

✅ Checklist Finale

  • [ ] Node.js 14.17+ installé
  • [ ] Repository cloné depuis GitHub
  • [ ] npm install & npm run build réussis
  • [ ] PM2 configuré avec ecosystem.config.js
  • [ ] Apache reverse proxy configuré
  • [ ] Certificat SSL Let's Encrypt actif
  • [ ] Interface accessible via https://uptime.amarsyll.pro
  • [ ] Compte admin créé avec mot de passe fort
  • [ ] 5+ moniteurs configurés et testés
  • [ ] Notifications email fonctionnelles
  • [ ] Status page publique créée
  • [ ] Backups configurés (quotidien)
  • [ ] 2FA/TOTP activé (optionnel)
  • [ ] Logs et monitoring vérifiés
  • [ ] Firewall UFW configuré

🎯 Résultats Attendus

Après intégration complète, tu disposes de :

  • Monitoring 24/7 de tous tes services en temps réel
  • Alertes instantanées via email/Slack en cas de downtime
  • Page de statut publique à partager avec clients/utilisateurs
  • Historique d'uptime détaillé (30-90 jours)
  • Performance tracking avec métriques temps réel
  • Alertes certificats SSL (expiration 30j avant)
  • Dashboard centralisé pour administrer tous les services
  • Conformité SLA : preuves d'uptime pour clients
  • Solution enterprise 100% propriétaire et sécurisée

Uptime Kuma est maintenant entièrement intégré et opérationnel sur ton VPS. Tu disposes d'une solution enterprise-grade de monitoring et d'alertes pour tous tes services, avec souveraineté complète des données et zéro dépendance à des services tiers.

Status Page : https://uptime.amarsyll.pro

Admin Dashboard : https://uptime.amarsyll.pro (connexion requise)