Surveiller vos sites Internet avec Uptime Kuma

Après avoir vu comment rendre vos services auto-hébergés accessibles depuis Internet grâce à Nginx Proxy Manager, il est nécessaire de surveiller ces services et d'être prévenu dans le cas d'un dysfonctionnement.

Ouvrir vos services vers Internet avec Nginx Proxy Manager ou Synology DSM
On vous montre sur ce blog tout un tas de services à héberger chez vous ou sur un serveur dans le cloud, et vous pouvez y accéder quand vous êtes sur votre réseau local. Mais comment faire pour les rendre disponibles quand vous êtes en déplacement ou n’y êtes simplement

Il existe plusieurs sites proposant ce genre de service, le plus connu et utilisé étant Uptime Robot, limité à 50 URL dans sa version gratuite.
Surveiller des URL et être alerté immédiatement si votre site web ne répond plus sont les 2 principales fonctionnalités de ce genre de service, qui offrent également souvent d'autres possibilités, comme la surveillance de l'expiration des certificats SSL.

Uptime Kuma propose ces mêmes fonctionnalités, gratuitement, tout en vous permettant d'héberger vous-même cet outil de surveillance. L'interface est moderne et le développeur semble réactif. De nombreuses améliorations ont été listées sur l'issue Github suivante, et elles sont en cours de réflexion ou d'implémentation. Les principales fonctionnalités attendues sont un portail public, la possibilité de personnaliser le statut attendu, permettre de gérer les moniteurs par groupes, ....


Pour mettre en place Uptime Kuma, le plus simple est de le lancer en tant que conteneur Docker à l'aide du fichier docker-compose.yml suivant :

version: '3'
services:
  uptime-kuma:
    restart: always
    ports:
      - 3001:3001
    volumes:
      - ./data:/app/data
    container_name: uptimekuma
    image: louislam/uptime-kuma

Pour rappel, la commande suivante vous permet de lancer le conteneur :

docker-compose up -d

Accédez à votre instance d'Uptime Kuma depuis votre navigateur sur l'adresse http://<IP.HOTE.DOCKER>:3001. Il vous sera demandé de créer votre compte en saisissant un nom d'utilisateur et son mot de passe.

Une fois le compte créé, vous serez redirigé sur la page de connexion. Saisissez vos identifiants et vous vous retrouverez sur la page d'accueil de votre instance Uptime Kuma, qui n'a aucun moniteur actif pour le moment.

Je vous conseille de configurer en premier lieu les notifications. Pour cela, rendez-vous dans les réglages en cliquant sur "Settings" puis cliquez sur "Setup Notifications". Comme vous pouvez le voir dans la liste déroulante, de nombreux fournisseurs de messagerie sont présents, dont Telegram, Discord, Slack ainsi que les mails. J'ai choisi pour ma part Telegram, on renseigne donc le token du bot créé pour cet usage (en suivant le lien vers BotFather) ainsi que l'ID du chat sur lequel on veut envoyer les messages. Enfin, cliquez sur "SAVE".

Vient ensuite le moment d'ajouter un moniteur pour surveiller un site Internet, en cliquant sur "Add New Monitor". Définissez le type de surveillance, donnez un nom au moniteur, indiquez l'URL du site à surveiller, et configurez l'intervalle de vérification ainsi que le nombre de tentatives avant de recevoir une notification. Enfin, activez les notifications à droite et cliquez sur "SAVE" en bas.

Vous vous retrouverez sur la page de votre moteur fraîchement défini, avec des statistiques comme le temps de réponse de l'URL, la disponibilité pour les 24 dernières heures et les 30 derniers jours, la validité et date d'expiration du certificat SSL, ainsi qu'un journal des événements observés. Il est possible de mettre en pause un moniteur, dans le cas où vous avez une maintenance prévue sur le site surveillé, ce qui vous évitera de recevoir des notifications de service non fonctionnel.

En retournant sur l'accueil d'Uptime Kuma (en cliquant sur le logo ou sur "Dashboard"), vous retrouverez un résumé de tous les moniteurs créés selon leur statut.

Voici un exemple de notification reçue sur Telegram dans le cas d'une indisponibilité puis d'un retour en ligne d'un site surveillé par Uptime Kuma.

Astuce !

Pour ceux qui ont une URL protégée derrière Cloudflare par exemple, et dont les pages sont mises en cache et pour lesquelles une version statique est affichée en cas d'indisponibilité, je vous conseille de mettre en place une page spécifique pour vérifier la disponibilité de l'URL et de l'exclure de la mise en cache sur Cloudflare.

Conclusion

Vous avez maintenant toutes les cartes en main pour surveiller vos différents services auto-hébergés, voire même d'autres services qui sont importants pour vous et pour lesquels vous souhaitez être notifiés lors d'une indisponibilité.
Cela peut permettre de réagir plus rapidement et de remettre en bon fonctionnement un site web sans avoir besoin de vérifier soi-même son état.

Je vous invite à laisser des commentaires ou à venir échanger avec nous sur notre groupe Telegram autour de cet article ou d'autres sujets !