18/10/2024

Supervision

Uptime Kuma : une application simple et efficace pour le monitoring de sites web

I. Présentation

Dans cet article, nous allons découvrir Uptime Kuma, une solution de supervision de sites web (et de containers Docker), très facile d'utilisation et que vous pouvez auto-héberger en quelques minutes.

Sur le marché des solutions de supervision, il existe de nombreuses solutions diverses et variées, dont certaines sont ultra-complètes. Nous pouvons notamment citer Zabbix et Centreon, qui sont des références dans ce domaine. En complément, il y a des solutions plus légères, mais tout aussi pertinente pour des besoins spécifiques : Uptime Kuma, en est une, lorsqu'il s'agit d'effectuer le monitoring d'un site web.

Son objectif principal : s'assurer qu'un service est en ligne. Ce qui peut s'avérer très utile pour un site web, que ce soit un blog, une application métiers, un service SaaS que vous utilisez, etc....

Uptime Kuma se configure à partir d'une interface web moderne et ergonomique, et l'application se veut simple à configurer. Voici une liste de ses fonctionnalités principales :

  • Surveillance des services via différents protocoles et méthodes : HTTP, HTTPS, TCP, Ping, enregistrement DNS.
  • Surveillance des serveurs de jeux Steam et de conteneurs Docker.
  • Prise en charge de requêtes avancées pour la vérification du bon fonctionnement d'un service : mot clé HTTP, en-tête HTTP, code de retour HTTP, etc.
  • Notifications en cas de dysfonctionnement, via la prise en charge de plus de 90 services : Telegram, Discord, E-mail, Gotify, Slack, Home Assistant, AlertNow, etc.
  • Information sur le certificat TLS utilisé par le service web, avec possibilité de recevoir une alerte quand il expire.
  • Personnalisation de l'intervalle de vérification d'un service : toutes les 20 secondes, 60 secondes, 5 minutes, etc.... au choix.
  • Historisation des vérifications, avec la génération de graphique afin de voir le temps de réponse.
  • Sécurisation de l'accès à la solution avec un utilisateur (mot de passe + 2FA).

Avant de commencer, voici deux liens utiles :

II. Prérequis

Vous pouvez installer Uptime Kuma avec Docker, que ce soit un hôte Linux, Windows ou un NAS. Il est également possible de l'installer directement sur un serveur, sans passer par Docker. Ce tutoriel explique comment installer Uptime Kuma sur Debian à l'aide de Docker.

Si vous avez besoin d'aide pour installer Docker, suivez ce tutoriel :

Uptime Kuma n'utilise pas d'agent et il ne s'appuie pas sur le protocole SNMP, de ce fait, elle ne permettra pas de surveiller la charge CPU, l'espace disque ou encore la consommation en RAM. Donc, vous n'aurez rien à installer sur les hôtes qui hébergent les services à surveiller.

III. Installation d'Uptime Kuma avec Docker

Nous allons créer un fichier Docker Compose pour déployer l'application. Avant cela, nous allons créer un répertoire pour ce projet avec la commande mkdir :

mkdir /opt/docker-compose/uptimekuma

Puis, nous allons créer le fichier "docker-compose.yml" dans ce répertoire :

nano /opt/docker-compose/uptimekuma/docker-compose.yml

Ensuite, indiquez le contenu suivant dans le fichier :

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - data:/app/data               # Répertoire pour stocker les données de l'application
    ports:
      - 3001:3001                    # Port sur l'hôte Docker : Port interne au conteneur
    restart: always
volumes:                             # Créer automatiquement le volume
  data:

Ce déploiement repose sur l'image Docker officielle de ce projet et l'application sera disponible sur le port 3001 de l'hôte.

Enregistrez ce fichier, positionnez-vous dans le répertoire du projet et exécutez la commande suivante :

cd /opt/docker-compose/uptimekuma/
docker compose up -d

Quelques minutes plus tard, votre conteneur doit être en cours d'exécution.

docker ps

Désormais, vous pouvez accéder à Uptime Kuma via l'adresse IP de l'hôte Docker, en spécifiant le port 3001.

  • http://192.168.10.200:3001

Si vous souhaitez installer Uptime Kuma sur un NAS Synology, suivez notre tutoriel :

IV. Prise en main de la solution Uptime Kuma

La première étape consiste à créer un compte administrateur sur la plateforme. Vous devez définir un nom d'utilisateur et un mot de passe.

Ensuite, vous aurez accès à l'interface de gestion d'Uptime Kuma. Pour finaliser la création du compte administrateur, je vous invite à configurer le MFA pour sécuriser ce compte.

1 - Cliquez sur le menu en haut à droite, puis sur "Paramètres".

2 - Dans l'interface des paramètres, cliquez sur la section "Sécurité".

3 - Descendez dans la page et cliquez sur "Paramètres de la double authentification (2FA)".

Vous n'aurez plus qu'à effectuer la configuration en scannant le QR code avec une application telle que Microsoft Authenticator, Google Authenticator, FreeOTP, etc.

Voilà, désormais, vous êtes prêt à ajouter votre première sonde. Mais, pensez aussi à parcourir les autres paramètres disponibles en naviguant sur l'interface. Ce sera l'occasion de basculer sur le thème sombre, si vous préférez.

A. Ajouter une sonde

Cliquez sur le bouton "Ajouter une nouvelle sonde" présent en haut à gauche de l'interface. Un formulaire de configuration va s'afficher à l'écran.

Pour cet exemple, je vais monitorer la page web associée à l'URL suivante : "http://10.10.10.12". Il s'agit d'un simple serveur web avec une page statique. Utilisez l'URL de votre choix, que ce soit en HTTP ou HTTPS. Par ailleurs, j'ai également ajouté une sonde directement sur "https://www.it-connect.fr".

Comme le montre l'image ci-dessous, il y a différents types de sondes disponibles. Y compris des sondes comme "MQTT", "Serveur de jeu Steam", "Kafka Producer", "PostgreSQL", "MySQL", "MongoDB" ou encore "Radius", non visibles sur cette image.

Dans le cas présent, nous pouvons définir la configuration suivante :

  • Type de sonde : HTTP(s).
  • Nom d'affichage : Mon site Web, vous pouvez indiquer le nom de votre blog, de votre application, etc.
  • URL : http://10.10.10.12/, soit l'URL de la page à vérifier.
  • Intervalle de vérification : 60, pour que le service soit vérifié chaque minute.
  • Essais : 0, signifie qu'il y aura un e-mail envoyé dès que le service sera en échec (ajuste la sensibilité du monitoring).

Si vous surveillez une application disponible en HTTPS, il peut s'avérer judicieux de cocher l'option "Notification d'expiration du certificat" pour être averti quelques jours avant l'expiration de votre certificat SSL/TLS. Si vous êtes en HTTPS avec un certificat auto-signé, dans ce cas, cochez l'option "Ignorer les erreurs liées au certificat SSL/TLS".

Par défaut, Uptime Kuma considère qu'une application est dans un état normal s'il obtient un code de retour HTTP compris entre 200 et 299. En règle générale, le code de retour est 200 lorsque tout se passe bien. À l'inverse, le code de retour 403 indique un accès interdit, tandis que le code de retour 500 indique une erreur serveur : dans ce cas, Uptime Kuma considérera qu'il y a un problème et vous notifiera.

Vous pouvez bien entendu configurer les autres options : déclarer un proxy, utiliser une méthode HTTP spécifique ("GET" étant la méthode pour récupérer une ressource), etc. Il est aussi possible de créer des groupes et d'ajouter des tags à chaque sonde.

La dernière étape, et elle est essentielle, c'est la configuration d'une notification. La première fois, vous devez configurer un nouveau type de notification via le bouton "Créer une notification". La liste des services est très longue... Et la configuration dépendra du type de service.

Pour recevoir une notification par e-mail, choisissez "Courriel (SMTP)" puis indiquez le nom du serveur SMTP, le port, le protocole, le nom d'utilisateur, etc... Vous devez aussi indiquer l'adresse e-mail de l'expéditeur et celle du ou des destinataires.

Remarque : pour chaque sonde, vous pouvez configurer plusieurs types de notifications.

De plus, vous pouvez cocher l'option "Activé par défaut", si vous souhaitez utiliser ce modèle de notification pour toutes les sondes, par défaut. Je vous invite également à personnaliser l'objet de l'e-mail afin d'y inclure le nom de l'URL correspondante à la sonde et le statut.

Uptime Kuma - {{HOSTNAME_OR_URL}} : {{STATUS}}

Il ne vous reste plus qu'à tester l'envoi d'un e-mail avec cette configuration. Quand c'est fait, cliquez sur "Sauvegarder" et dès que vous avez terminé la configuration de la sonde, cliquez de nouveau sur l'autre bouton "Sauvegarder". Tout cela est modifiable par la suite....

À partir de maintenant, Uptime Kuma va commencer à surveiller votre application web. Pour chaque sonde, vous allez obtenir un tableau de bord similaire à celui-ci :

Dans le cas où il y a un changement de statut sur cette sonde, vous recevrez des notifications. Voici deux exemples :

B. Créer une page de statut

Si vous cliquez sur le bouton "Pages de statut" présent en haut à droite de l'interface, vous pourrez créer une nouvelle page de statut (vous pouvez en créer plusieurs). Il s'agit d'une page publique qui permet de publier un tableau de bord (en lecture seule) donnant une visibilité globale sur l'état de vos services. Chaque page de statut peut être associée à une ou plusieurs sondes.

Ceci peut être utile pour afficher des informations sur un écran de supervision ou pour mettre à disposition ces informations à des clients.

Voici un exemple :

V. Conclusion

Suite à la lecture de ce tutoriel, vous devez être en mesure d'installer Uptime Kuma sur votre serveur et d'effectuer la configuration d'une première sonde. L'application est réellement facile à prendre en main et à configurer, tout en proposant des options adaptées à la supervision de services Web. De plus, vous pouvez également effectuer le monitoring de vos containers Docker, même si cela n'a pas été présenté dans cet article.

Qu'en pensez-vous ? N'hésitez pas à commenter cet article !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Uptime Kuma : une application simple et efficace pour le monitoring de sites web

  • UptimeKuma est pas mal et bien fournis.

    Par contre, ça fait plus de 1 ou 2 ans que j’en ai un qui tourne avec une 40aine de sondes.
    Impossible de charger l’interface du premier coup…
    Obliger de restart le container puis laisser quelques minutes pour qu’il charge l’interface.
    J’ai l’impression qu’il n’aime pas trop avoir des sondes depuis longtemps…
    Je ne sais pas si je suis le seul 🙁

    Répondre
    • Perso oui j’ai le même soucis, obligé d’utiliser la suppression des statistiques, donc ça supprime les data des sondes.
      J’ai aujourd’hui paramétré l’historique des données à 15 jours car 170 sondes ça galère

      Répondre
      • Ha merci pour le retour ! Ca me rassure 😀
        Je suis à deux doigts de passer sous Blackbox Exporter… avec un petit Grafana et Prometheus…

        Répondre
  • Hello ! j’ai récemment mis en place des uptime kuma, et on aimerai bien y accéder depuis l’extérieur, on galère avec les certificats, un peu d’aide serait avec plaisir !

    Répondre
  • Bonjour, comme Esteban Ordonez, j’aimerai bien utiliser uptime kuma depuis l’extérieur. Faut il utiliser un reverse proxy?
    Merci pour votre aide

    Répondre
    • Bonjour,

      Il manque je pense cette partie dans le tuto mais oui effectivement pour rendre le site kuma disponible depuis l’extérieur il faut bien utiliser un reverse-proxy pour une écoute distante.

      Bonne journée.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.