Houston we have a problem !

Houston we have a problem !

Je m'abonne
Temps de lecture: 5 mins

En tant que développeur, mais aussi en tant que blogueur et webmaster sur certains sites web, je suis toujours preneur de solutions me permettant de savoir si mes sites se portent bien et sont bien accessibles.

Et depuis quelque temps… le cloud est pour le moins instable (coucou AWS), c'est devenu un must-have pour la réactivité. Cet outil, c'est Uptime Kuma !

Aujourd'hui, partons dans l'espace avec Uptime Kuma !
Aujourd'hui, partons dans
l'espace avec Uptime Kuma !

Cet outil, c’est pour remplacer le mec énervé qui va faire des ping mon-super-site.com ou des curl https://mon-super-site.com et vérifier si ça répond bien en boucle.

Il y a déjà pléthore d'outils qui font ça, mais ce qui est cool, c'est que c'est self-hosted, et ça on aime !

On va pouvoir paramétrer des actions (sondes) qui vont nous permettre de savoir en temps réel si nos applications ou les services qu’on utilise sont toujours actifs et répondent correctement.

De mon côté, je l’ai installé directement via le repository, mais ça fonctionne aussi bien avec Docker.

 1. Installation

J'ai suivi l'installation décrite dans le repository, tout simplement :

git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

A partir d'ici on peut soit le lancer via pm2 comme préconisé dans la doc soit utiliser systemd natif. Personnellement j'adore systemd donc ce sera celui-ci.

Pour ça je crée un service dans /etc/system/systemd/kuma.service

[Unit]
Description=Uptime-Kuma
After=network.target

[Service]
WorkingDirectory=/ton/chemin/vers/l/app
User=tonUserQuiLanceLapp
ExecStart=/usr/bin/node server/server.js
Restart=always

[Install]
WantedBy=multi-user.target

On lance ensuite avec systemctl enable kuma.service et systemctl start kuma.service et c'est parti !

Un petit netstat -tulpn | grep 3001 pour vérifier que le port 3001 est actif :

netstat -tulpn | grep 3001

On est bon pour l'installation.

Ensuite 2 options s'offrent à toi :

  • Sur ta machine sans reverse proxy et tu te connecte en SSH avec du Port Forwarding : ssh -L 3001:localhost:3001 tonuser@tonserveur
  • Avec un Reverse Proxy et pour ça tu as juste à créer un sous-domaine avec nginx dans cette config minimale :
    location / {
        proxy_pass http://127.0.0.1:3001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

Bien évidement on oublie pas par la suite de s'occuper du SSL bien évidement !

On a ajouté "upgrade" car Kuma gère des websockets et il faut l’indiquer à Nginx.

Si tu décides de ne pas passer par SSH, alors je ne peux que trop te conseiller de bloquer l’accès sur ton ip avec un allow tonip deny all comme je l’explique dans mon article sur le Reverse Proxy.

 2. Configuration

Rends toi maintenant en 127.0.0.1:3001 ou sur ton nom de domaine pour démarrer la conf : 

Configuration de Uptime Kuma

Laisse toi guider pour la création de la DB et de ton user pour te connecter au dasboard. En plus le français est dispo !

Thomas Pesquet approved!
Thomas Pesquet approved ! 

Une fois que c’est fait, tu as auras accès à ton panel de contrôles et aux lancements de tes sondes :

Panel Uptime Kuma

Pour créer une sonde rien de plus simple, le gros bouton "Ajouter une nouvelle sonde" :

Ajout d'une nouvelle sondeAjout d'une nouvelle sonde

Tu peux paramétrer ton type de requête, le type de réponse que tu attends pour une réponse valide etc … Tu peux grouper tes sondes pour que ce soit plus visuel et paramétrer tes actions en conséquence en masse. Tu peux aussi lancer des alertes Slack, Whatsapp, Discord etc … (quand je te dis que je suis hypé ...) 

C’est vraiment user-friendly, amuse toi à tester des configurations. C’est super bien fait et ça te permet d’être un peu plus relax et d'être proactif sur la veille de tes sites.

Cet outil est avant tout un outil de monitoring et d'avertissement pour le développeur mais c'est aussi un outil de communication.

Quand tu gères des sites pour des clients, ça peut aussi être un avantage car Uptime Kuma fournit également un configuration de pages de statuts que tu peux partager avec des collaborateurs ou des amis, c'est une super plus value !

Il suffit de se rendre sur "Page de statut"  puis "nouvelle page de statut" :

Configurer une nouvelle page de statuts

Je veux par exemple rendre accessible le statut de mon blog : 

Nouvelle page de statutJe peux maintenant créer des incidents pour avertir les utilisateurs en cas de panne majeure ou de maintenance programmée : Page de statut

On peut aussi y créer des maintenances afin de désactiver ponctuellement les sondes qui donneront des résultats négatifs le temps des maintenances et pourraient affoler les capteurs.

 

J’espère t'avoir fait découvrir un outil qui te permettra d'être proactif dans ta veille.

C'était un article assez court, mais l’outil est tellement bien conçu qu'il n'y a finalement pas grand-chose à configurer !

La prochaine fois, plus d'excuses en cas de downtime !