Synology et supervision 12 min de lecture

Installer Uptime Kuma sur Synology et surveiller ses services

Déployer Uptime Kuma avec Container Manager, configurer le pare-feu et le proxy inverse de DSM, puis créer les premiers moniteurs et notifications.

Uptime Kuma transforme un NAS Synology en poste de supervision autonome. Tant que le NAS et son réseau fonctionnent, il vérifie en continu les sites Web, serveurs, bases de données et autres services que vous lui confiez, conserve leur historique et vous prévient rapidement lorsqu’un contrôle échoue.

Pourquoi utiliser Uptime Kuma

Uptime Kuma est une application open source de surveillance de disponibilité. Elle joue le rôle d’une alarme personnelle : elle contrôle qu’un site, un serveur ou un service réseau répond encore et déclenche une notification dès que son état change.

Détail d’un moniteur DNS dans Uptime Kuma avec disponibilité et courbe de latence
Chaque moniteur rassemble son dernier résultat, sa disponibilité, la latence et l’historique des contrôles.
Historique Uptime Kuma alternant les états disponible et indisponible d’un contrôle DNS
L’historique permet de dater précisément les interruptions et les retours à la normale.

Le besoin est simple : savoir à quel moment un site ne répond plus, surveiller la qualité d’une connexion Internet ou mesurer la disponibilité d’un équipement chez un opérateur. Au lieu de découvrir la panne par hasard, vous recevez immédiatement une alerte par messagerie, courrier électronique ou l’un des nombreux services compatibles.

Uptime Kuma réunit notamment les fonctions suivantes :

  • contrôle des domaines HTTP et HTTPS, avec recherche facultative d’un mot-clé dans la page ;
  • surveillance des enregistrements DNS, des conteneurs Docker et de bases de données telles que MySQL, MariaDB ou Microsoft SQL Server ;
  • interface réactive, claire et rapide à parcourir ;
  • mode sombre manuel ou synchronisé avec le thème du système ;
  • graphiques de latence et statistiques de disponibilité dans le temps ;
  • alertes vers de nombreux services, par exemple Telegram, Slack, Discord, Microsoft Teams, Signal, Gotify, Ntfy, Opsgenie ou PagerDuty ;
  • prise en charge d’un proxy pour les contrôles qui doivent sortir par un intermédiaire ;
  • intervalle de contrôle descendant à 20 secondes lorsque le type de moniteur le permet ;
  • interface traduite dans de nombreuses langues, dont le français ;
  • pages de statut publiques pour informer des utilisateurs ou annoncer une maintenance ;
  • suivi de l’expiration des certificats TLS et protection du compte par authentification à deux facteurs.

Je cherchais depuis longtemps une solution de ce type. Les services hébergés étaient soit payants, soit trop limités pour mon usage. Ici, le nombre de moniteurs dépend surtout des ressources du NAS et de la fréquence choisie, tandis que les modes de contrôle et de notification couvrent la plupart des besoins d’un petit réseau ou d’un laboratoire domestique.

Préparer les dossiers persistants

Dans le partage docker, créez un dossier uptime-kuma, puis un sous-dossier data. La base de données, les réglages, les certificats suivis et la configuration de l’instance y seront conservés hors du conteneur.

Dossiers uptime-kuma et data créés dans File Station sur un NAS Synology
Le dossier data conserve la base, les réglages et les autres données persistantes de l’application.

Créer le projet dans Container Manager

Ouvrez Container Manager → Projet → Créer. Nommez le projet kuma, sélectionnez le chemin /docker/uptime-kuma, choisissez la création d’un fichier docker-compose.yml, puis saisissez la configuration suivante :

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      # <Port du NAS>:<Port du conteneur>
      - "3005:3001"
    environment:
      TZ: Europe/Brussels

Le tag majeur :2 suit la branche stable d’Uptime Kuma 2. Lors de cette vérification, la version stable publiée est la 2.5.3. Si vous préférez valider manuellement chaque mise à jour, remplacez le tag majeur par une version précise, puis revenez au tag :2 lorsque votre procédure de test est prête.

Création du projet kuma et saisie du fichier Compose dans Synology Container Manager
Le projet utilise le dossier /docker/uptime-kuma et publie le port 3001 du conteneur sur le port 3005 du NAS.
Terminal de Container Manager confirmant la création du conteneur Uptime Kuma avec le code de sortie 0
Exit Code: 0 confirme que l’image a été extraite et que le conteneur a démarré correctement.

Validez le projet. Container Manager télécharge l’image, crée le réseau Docker et démarre le service. Le message Exit Code: 0 signifie que la création s’est achevée sans erreur. Contrôlez ensuite que le conteneur apparaît bien à l’état actif.

Configurer le pare-feu DSM

Si le pare-feu DSM est activé, le conteneur doit pouvoir joindre les cibles à surveiller. Dans Container Manager → Réseau, développez kuma_default et relevez son sous-réseau. La capture montre 172.18.0.0/16 ; le masque /16 correspond à 255.255.0.0.

Réseau Docker kuma_default et sous-réseau 172.18.0.0/16 dans Container Manager
Dans cet exemple, Container Manager a attribué 172.18.0.0/16 au projet kuma ; cette valeur peut différer sur un autre NAS.

Ajoutez une règle DSM adaptée à ce sous-réseau et aux destinations nécessaires, puis placez-la avant les règles de refus. Ne recopiez pas aveuglément 172.18.0.0/16 : Docker peut choisir une autre plage si elle est déjà occupée. Évitez aussi d’autoriser tous les ports vers tout le réseau lorsque Kuma n’a besoin que de quelques services internes.

Publier Kuma avec le proxy inverse

Pour accéder à Uptime Kuma par un nom de domaine, ouvrez Panneau de configuration → Portail de connexion → Avancé → Proxy inversé, puis créez une règle. L’article d’origine mentionnait ici Joplin par erreur : la destination est bien le serveur Uptime Kuma.

  • Source : protocole HTTPS, nom d’hôte tel que kuma.exemple.be, port 443.
  • Destination : protocole HTTP, nom d’hôte localhost, port 3005.
  • En-tête personnalisé : choisissez Créer → WebSocket pour ajouter automatiquement Upgrade et Connection.
Règle de proxy inverse DSM envoyant le HTTPS vers localhost port 3005 avec les en-têtes WebSocket
Le proxy inverse reçoit le HTTPS sur le port 443, transmet vers localhost:3005 et ajoute les en-têtes WebSocket.

Créez au préalable l’enregistrement DNS de kuma.exemple.be et affectez au proxy un certificat TLS valide pour ce sous-domaine. Uptime Kuma utilise WebSocket : sans les deux en-têtes affichés dans la capture, l’interface peut charger tout en restant incapable de se connecter au serveur. Utilisez un sous-domaine dédié plutôt qu’un chemin comme /uptime-kuma, qui n’est pas officiellement pris en charge.

Effectuer la configuration initiale

Ouvrez https://kuma.exemple.be. Tant que le port 3005 est accessible depuis votre réseau d’administration, vous pouvez aussi utiliser http://IP-DU-NAS:3005 pour le premier diagnostic. L’URL Joplin présente dans l’article source était une coquille et a été corrigée ici.

Au premier démarrage, choisissez la langue française puis le moteur de base de données. SQLite reste le choix le plus simple pour une petite installation et celui utilisé dans cette configuration. Uptime Kuma 2 propose également MariaDB embarquée ou un serveur MariaDB/MySQL externe. Choisissez dès le départ en connaissance de cause : la migration directe d’une base SQLite existante vers MariaDB n’est pas officiellement prise en charge.

Premier démarrage d’Uptime Kuma avec le choix entre MariaDB embarquée, MariaDB ou MySQL et SQLite
SQLite est le choix simple pour une petite installation ; Uptime Kuma 2 propose aussi MariaDB embarquée ou externe.
Formulaire Uptime Kuma en français pour créer le premier compte administrateur
Choisissez le français, puis créez un compte administrateur avec un mot de passe unique et robuste.

Créez ensuite le premier compte administrateur. Utilisez un identifiant qui ne soit pas évident, un mot de passe unique stocké dans un gestionnaire, puis activez l’authentification à deux facteurs dans les paramètres dès que l’accès est validé.

Tableau de bord Uptime Kuma vide juste après l’installation
L’installation est terminée : le tableau de bord attend maintenant son premier moniteur.

Ajouter des moniteurs et notifications

Cliquez sur Nouveau moniteur, choisissez le type de contrôle et renseignez la cible. Pour un site Web, commencez par HTTP(s), indiquez son URL, sélectionnez un intervalle et conservez des délais raisonnables. Le mode « mot-clé » est utile lorsqu’un simple code HTTP 200 ne suffit pas à prouver que la bonne page est servie.

Liste des types de moniteurs HTTP, DNS, Docker, MQTT, bases de données et autres dans Uptime Kuma
Uptime Kuma 2 sait contrôler des sites, des ports, du DNS, des conteneurs et plusieurs protocoles ou bases de données.

Vous pouvez ensuite créer des contrôles Ping, TCP, DNS, Docker, MQTT, gRPC, SNMP ou bases de données selon vos besoins. Organisez-les par groupes et tags, nommez-les clairement, puis créez une page de statut distincte si des utilisateurs doivent consulter la disponibilité sans accéder au tableau de bord d’administration.

Dans Paramètres → Notifications, ajoutez au moins un canal et envoyez une alerte de test. Telegram, Signal, Slack, Teams, Gotify, Ntfy, Pushover et de nombreux autres fournisseurs sont disponibles. Associez ensuite la notification aux moniteurs concernés ; créer le fournisseur ne l’active pas automatiquement partout.

Liste des fournisseurs de notifications Uptime Kuma avec Telegram sélectionné
Telegram n’est qu’un choix parmi de nombreux canaux de notification, dont Teams, Signal, Slack, Gotify, Ntfy et Pushover.

Testez enfin une vraie transition : arrêtez brièvement un service non critique, attendez l’alerte d’indisponibilité, redémarrez-le et vérifiez la notification de retour à la normale. Ce contrôle évite de découvrir, pendant une panne réelle, qu’un jeton ou une adresse de destination était incorrect.

Limites et maintenance

Cette installation fonctionne depuis longtemps avec plusieurs dizaines de services et consomme peu de ressources. La capture finale indique environ 180 Mo de mémoire et moins de 1 % de CPU à cet instant ; les besoins varient toutefois selon le nombre de contrôles, leur fréquence, les notifications et la durée de conservation.

Projet Uptime Kuma en cours d’exécution dans Container Manager avec 0,66 pour cent de CPU et 180 Mo de RAM
Sur l’installation observée, le conteneur fonctionne avec une charge légère : 0,66 % de CPU et environ 180 Mo de RAM au moment de la capture.

Sauvegardez le dossier data avant toute mise à jour. Dans Container Manager, récupérez la nouvelle image puis recréez le projet avec le même volume. Consultez les notes de version, vérifiez le tableau de bord et déclenchez une notification de test après chaque changement.

Conclusion

Uptime Kuma est maintenant installé sur le NAS Synology, accessible en HTTPS derrière le proxy inverse et prêt à surveiller vos services. Il reste à créer les contrôles utiles, à régler leur fréquence, à associer les alertes et à vérifier régulièrement que les sauvegardes et notifications fonctionnent réellement.

Références

À propos de l’auteur

Jeremy Kraft administre les infrastructures et les services auto-hébergés de l’IBCSC. Ces guides reprennent des configurations réellement déployées, revérifiées avant publication.

Discussion

Commentaires

0

Aucun commentaire pour le moment. Vous pouvez ouvrir la discussion avec une question ou un retour d’expérience.