Créer une page de statut avec Uptime Kuma

A travers ce tutoriel, je vais vous expliquer comment mettre en place une page de statut en déployant Uptime Kuma à l’aide de Docker.

Présentation

Les pages de statut, vous les avez forcement déjà vue voir même utiliser au quotidien pour vérifier le bon fonctionnement des services que vous utilisez chez des fournisseurs comme Azure, Cloudflare …. Elles permettent d’informer les utilisateurs des incidents et des maintenances sur les différents services que proposent le fournisseur.

Uptime Kuma va nous permettre de mettre en place, une page de statut à d’une surveillance (monitoring) des services. Uptime Kuma ne va pas remplacer un outil de supervision comme Zabbix ou PRTG, car celui-ci ne va pas remonter les métriques des serveurs.

Pour superviser un service avec Uptime Kuma, nous avons à disposition :

  • Ping
  • Requête HTTP afin de récupérer le code HTML de retour
  • Vérification de port, similaire à l’utilisation de Telnet
  • Docker
  • Push : url qui peut être appelée depuis un outil de supervision tier pour déclencher une alerte

Uptime Kuma peut être installé directement sur un serveur (vm) dédié ou à l’aide de Docker, ce que nous allons faire dans ce tutoriel.

Prérequis

Pour déployer Uptime Kuma en conteneur, nous avez besoin d’un serveur Linux avec Docker d’installé.

Si vous avez un outil de supervision tier comme Zabbix qui fonctionne en conteneur, il est possible d’utiliser le même serveur pour Uptime Kuma.

Je vous conseille également l’utilisation d’un reverse proxy comme Nginx afin de publier Uptime Kuma en utilisant une adresse Internet et l’utilisation du protocole HTTPS, cela fait plus pro 😉

Déploiement de Uptime Kuma avec Docker

Au moment de la rédaction de ce tutoriel, la version 2.0 de Uptime Kuma est encore en beta, mais nous allons déployer celle-ci car elle permet l’utilisation d’une base de données MariaDB et donc d’avoir de meilleur performance par rapport à la version 1 qui utilise une base SQLite.

Sur votre serveur, commencer par créer un dossier où vous allez stocker les fichiers et dossier du conteneur, pour ma part, je vais me placer dans /containers/uptime-kuma.

Folder for Uptime Kuma

Afin de vous facilitez le déploiement, j’ai créé un dépôt (https://git.rdr-it.com/docker/uptime-kuma) avec le fichier docker-compose.yml et le fichier .env.

Cloner le dépôt :

sudo git clone https://git.rdr-it.com/docker/uptime-kuma.git .

Il faut éditer le fichier .env

sudo nano .env

A minima, modifier les mots de passe pour les comptes MariaDB.

Télécharger les images des conteneurs :

sudo docker compose pull

Démarrer les conteneurs :

sudo docker compose up -d

Vérifier le bon démarrage des conteneurs en affichant les logs :

sudo docker compose logs -f

Si les conteneurs sont bien démarrés, on va passer à la configuration de la base de données de Uptime Kuma.

Lancer un navigateur Internet et aller à l’adresse suivante : http://ip:3001, on arrive sur la configuration de la base de données

Sélectionner MariaDB/MySQL 1, indiquer les informations de connexion 2 et cliquer sur Continuer 3.

Uptime Kuma : database config

Patienter pendant la création de la base de données …

Créer le compte administrateur, en indiquant son identifiant 1 puis son mot de passe 2 et cliquer sur Créer 3.

A la connexion, on arrive sur le Tableau de bord, où l’on peut voir les sondes, qui est vide pour le moment.

Ajouter une sonde sur Uptime Kuma

Pour continuer ce tutoriel, nous allons ajouter notre premier sonde sur Uptime Kuma. Cliquer sur le bouton Ajouter une nouvelle sonde 1.

Je vais ajouter une sonde HTTP(s) qui va permettre de surveiller un service Web, ici je vais faire le choix de vérifier la disponibilité du site Google, ce qui permet aussi de vérifier la disponibilité du lien Internet. Choisir le type de sonde HTTP(s), entrer le nom 2 qui sera affiché, indiquer l’URL du service 3 et cliquer sur le bouton Sauvegarder 4 pour ajouter la sonde.

La sonde est ajoutée et disponible dans Uptime Kuma, en la sélectionnant sur la partie de droite on va les métriques liées à celle-ci.

Pour compléter ce tutoriel, je vais ajouter une seconde de type Ping qui va permettre de superviser l’ip publique du routeur internet.

Vous savez maintenant comment créer des sondes sur Uptime Kuma.

Grouper les sondes

Il est possible d’ajouter des groupes et de mettre les différentes sondes dedans afin d’améliorer la visibilité, mais aussi de pouvoir avoir un état de fonctionne par rapport un groupe.

Cela peut être utilise pour une application par exemple qui aurait un service Web et une base de données, si l’une des deux sondes a un problème, le groupe passe en mode dégradé.

Lors de la création d’une nouvelle sonde, choisir Groupe 1 et nommer le 2.

Le groupe est créé et disponible dans la liste des sondes.

Pour ajouter une sonde à un groupe, sélectionner la sonde 1 et cliquer sur Modifier 2.

Dans la section avancé de la configuration de la sonde, sélectionner le groupe 1 puis cliquer sur Sauvegarder 2.

La sonde est ajoutée au groupe.

Vous pouvez organiser vos sondes, à noter , qu’il est possible de créer le groupe avant la création des sondes et de sélectionner le groupe quand vous allez créer la sonde de supervision.

Configuration des notifications

Uptime Kuma prend un grand nombre de type de notification, avant de pouvoir être configurer sur un sonde, il est nécessaire de configurer les notifications dans l’administration.

Cliquer sur l’icone de l’utilisateur 1 puis sur Paramètres 2.

Dans les paramètres, aller sur Notifications 1 puis cliquer sur le bouton Créer une notification 2.

Dans un premier temps, vous allez devoir choisir le type de notification Webhook, SMS, Mattermost, SMTP …

Puis configurer les paramètres.

Une fois la notification configurée dans les paramètres, vous devez retourner sur la ou les sondes pour leur affecter la notification.

Comme pour les groupes, je vous conseille de configurer les notifications avant la création des sondes, comme cela vous pouvez configurer la notification dès la création.

Créer une page de statut

Maintenant que tout est en place, on peut créer une page de statut que les utilisateurs pourront consulter.

Cliquer sur Page de statut 1.

Depuis cette page, vous avez les différentes pages de statut disponible qui est vide pour le moment.

Uptime Kuma permet de créer plusieurs pages de statut, vous pouvez par exemple en créer pour différents applicatifs.

Commencer par cliquer sur le bouton Nouvelle page de statut 1.

Commencer par nommer 1 page, entrer son chemin 2 qui sera l’url puis cliquer sur Continuer 3.

On arrive sur un constructeur de page qui est « facile » à prendre en main.

Ici, j’ai ajouté différentes sondes pour afficher l’état de la connexion Internet, une fois les éléments ajoutés, cliquer sur Sauvegarder 1 pour enregistrer la page.

Voici ce que donne la page :

Les boutons Modifier la page de statut et Accéder au tableau de bord ne sont pas visible pour les utilisateurs, ils le sont sur la capture car je suis connecté avec le compte administrateur.

Sur la page de statut, on a que l’on peut aussi créer des incidents qui seront affichés, cela peut être pratique pour indiquer une maintenance ou un problème qui est en cours de traitement et afficher un état d’avancement au utilisateur.


Vous avez maintenant toutes les informations nécessaires pour créer une ou plusieurs pages de statut avec Uptime Kuma pour informer vos utilisateurs de l’état du système d’information.

Uptime Kuma offre de nombreuse possibilité que nous verrons dans d’autres tutoriels, je ne l’ai pas aborder ici, mais sachez qu’il est possible de créer également des fenêtres de maintenance durant lesquels les sondes sont mises en pause automatiquement, cela est particulièrement utile si vous avez des périodes de maintenance la nuit où les services sont arrêtes, cela permet d’avoir un taux de disponibilité correcte, sinon la sonde sera considère en erreur. Pour accéder aux plage de maintenance, cliquer sur l’utilisateur puis maintenance, configurer un ou plusieurs plages.

Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.