J'ai mis en place un site de status de mes serveurs.

2 juil. 2022

Lors de la création de mon projet de serveurs BaseQ, j’ai toujours voulu être le plus transparent possible: c’est à dire que chacun est capable de savoir le status des serveurs, sites ou services que j’héberge pour la communauté, et de savoir quand un serveur est HS ou va être temporairement éteint. En fait, un peu comme ce que propose des sites comme Discord, Steam ou d’autres services accessibles grandement sur la toile.

Le problème, c’est que je ne savais pas comment le faire (je ne suis pas un développeur et encore moins d’applis), ni s’il existait un éventuel projet communautaire faisant exactement ce but et ce, de façon facile et intuitive: car oui, les programmes Open-Source sont gratuits et communautaires, mais une grande partie d’entre eux sont incroyablement mauvais ou trop difficile d’utilisation. Je veux dire, j’en ai fait moi-même les frais sur mon port TwitchDoom pour que les viewers puissent avoir une sorte d’overlay des différents mutators du streameur. … Et encore, je fais ce projet seul, imaginez si il y avait une équipe derrière…

C’est un peu ce que l’on ressent quand on est développeur, j’y repense. ;/

Après avoir recherché un peu sur le net, j’avais trouvé Uptime Robot qui faisait plus ou moins ce que je recherche: pinger mes serveurs, et me les reporter via un service externe si ils étaient joignables ou non.

Le problème, c’est que je suis limité à 50 entrées. Ce qui est problématique étant donné que je possède plusieurs services et serveurs, et qu’il y a bien plus que 50 entrées que je risque d’utiliser… Et surtout, il ne rentre pas dans mes critères, c’est à dire Open-Source (voire FOSS) et self-hostable quelque part.

Heureusement, j’ai pas eu besoin de longtemps pour découvrir une sorte de clone FOSS qui répond à mes attentes: Uptime Kuma. Il est codé en NodeJS et est relativement simple à installer. Il y a même une démo (limitée à 10 minutes) que l’on peut utiliser si on veut voir comment il fonctionne!


Installation

Comme toujours dans mes tests, je vais utiliser Docker pour voir ce qui est possible de faire de manière plus longue. Dans mon fichier docker-compose.yml que j’ai crée pour l’occasion, je vais insérer le code suivant:

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

Dans le docker, les données d’Uptime Kuma sont contenus dans /app/data; de ce fait on va lier ces données dans un dossier ./uptime-kuma. Une fois le conteneur lancé (rappel gratuit: docker-compose up) , on peut accéder au service via l’adresse suivante, port 3001:

http://<ip_du_serveur>:3001

Configuration

Désormais, on va initialiser notre service en créant son compte administrateur. On rentre le nom désiré, son mot de passe, et la langue qu’on veut utiliser parmi une multitude de langues. Par ailleurs, le mot de passe doit correspondre à des règles standard de sécurité: 6 caractères minimum, avec caractères et 1 chiffre minimum!

Désormais nous sommes dans notre panneau de contrôle. On peut ainsi créer une ou plusieurs entrées pour monitorer un serveur de son choix. L’avantage, c’est qu’on peut monitorer via plusieurs services ou protocoles tels que HTTP, TCP, DNS, voire même vos serveurs sur Steam!

Il y a aussi la possibilité de créer des notifications (avec près de 90 services!) afin d’être informé en temps réel si votre serveur à eu des soucis.

Pour tester, j’ai crée un système de monitoring de l’accès HTTP à mon blog. Après presque 24h de tests, j’ai pu avoir les éléments suivants:

J’ai su de la sorte qu’il y avait un petit souci à 18h28. Oops.

Mais ce n’est pas tout! On peut aussi créer des pages publiques permettant aux utilisateurs de savoir en temps réel le status des serveurs avec quelques éléments de personnalisation (tels que le CSS, l’ajout de tags et de catégories)!

Il y a aussi la possibilité d’informer les utilisateurs avec des reports d’incidents! Ainsi tout le monde sera informé, augmentant ainsi mon niveau de transparence. Mon objectif premier à pu être ainsi résolu avec joie.

Conclusion

Au final Update Kuma est très utile pour mes futures utilisations, et surtout pour continuer mon projet actuel. Non seulement ça va me permettre d’informer plus facilement ceux qui jouent sur mes serveurs si un serveur à un souci ou non, mais il permettra de résoudre plus facilement les conflits si un quelquonque souci sera détecté avec cet outil.

Par ailleurs, vous pouvez voir le status de mes serveurs en cliquant sur ce lien.

Utiliseriez-vous un outil comme Update Kuma? Ou utilisez-vous d’autres programmes Open-source pour obtenir le même but? N’hésitez pas à m’en informer dans les commentaires.


Si vous avez trouvé ce contenu intéressant, n’hésitez pas à me faire une petit donation sur mon Ko-Fi, je vous en serai plus que reconnaissant!

Mots clés

Ch0wW

🌍 Entrez dans mon monde! Je poste du contenu en rapport avec les jeux retro, l'informatique, le modding et la réparation d'appareils... N'hésitez pas à me contacter pour toute question ou demande!