Installer Uptime-kuma sur GandiCloud VPS
Uptime-kuma est un outil de surveillance de vos différents services et sites, à héberger vous-même. Il est distribué sous licence MIT. Vous pouvez retrouver son code source sur le dépôt GitHub correspondant, et le site web du développeur principal est ici : https://louislam.net/.
Uptime-kuma se pose donc en alternative libre à des outils de monitoring payants tels que Uptime Bot ou Status Page.
Le principal avantage d’Uptime-kuma est de proposer de nombreux protocoles pour la surveillance de votre infrastructure, et de supporter de nombreux systèmes d’alertes. En bonus, il vous permet de tenir une page de status de vos différents services, accessible publiquement ou non, selon votre choix et besoin.
Comment installer Uptime-kuma sur GandiCloud VPS ? Voici un tuto pas à pas.
Merci à Benjamin, agent support Hébergement, pour la rédaction de ce tuto.
Tutoriel installation Uptime-kuma
Pré-requis à l’installation d’Uptime-kuma
Ce tutoriel a été réalisé en utilisant Debian bullseye comme système d’exploitation et la version 1.17.1 d’Uptime-Kuma. Nous supposerons également ici que l’utilisateur dispose déjà d’un VPS Gandi, et a déjà suivi les premières étapes de configuration (utilisateurs, mots de passe, pare-feu avec les ports 22, 80 et 443 ouverts, …).
En savoir plus sur les étapes de configuration
Dans cet exemple, Uptime-kuma est basé sur Node.JS, exécuté avec un service systemd et npm, et sera servi à travers nginx. La récupération du code source se fait à l’aide de Git.
Nous devons donc au préalable installer ces quatre outils.
- Ajout du dépôt de Node.JS
$ curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
- Installation de Node.JS, Giy et NGINX
$ sudo apt install -y nodejs git nginx
- Assurons-nous maintenant que npm est à jour
$ sudo npm install npm -g
Tous les pré-requis sont maintenant satisfaits et nous pouvons passer à l’installation d’Uptime-kuma.
Etapes d’installation d’Uptime-kuma
Pour limiter les risques de sécurité, créez un utilisateur standard qui sera dédié à l’exécution d’Uptime-kuma :
$ sudo adduser --disabled-password uptimekuma
À partir de maintenant, exécutez les prochaines commandes en tant qu’uptimekuma :
$ sudo -i -u uptimekuma
Pour récupérer le code source de l’outil, utilisez git, installé précédemment :
$ git clone
https://github.com/louislam/uptime-kuma.git
Lancez maintenant l’installation depuis le répertoire uptime-kuma :
$ cd uptime-kuma$ npm run setup
Et vérifiez les dépendances des paquets npm :
$ npm fund
Uptime-kuma est maintenant prêt à être exécuté. Il vous suffit pour cela de mettre en place le service systemd correspondant, à l’aide de sudo.
Quittez donc l’utilisateur uptimekuma :
$ exit
Et mettez en place le service :
$ sudo vim /etc/systemd/system/uptimekuma.service
Ajoutez le contenu suivant :
[Unit]
Description=Uptime-Kuma - A free and open source uptime monitoring solution
Documentation=https://github.com/louislam/uptime-kuma
After=network.target
[Service]
Type=simple
User=uptimekuma
WorkingDirectory=/home/uptimekuma/uptime-kuma
ExecStart=/usr/bin/npm run start-server
Restart=on-failure
[Install]
WantedBy=multi-user.target
Démarrez le service :
$ sudo systemctl enable uptimekuma.service --now
Uptime-kuma est maintenant en cours d’exécution et vous pouvez le rendre accessible via le Web avec nginx. Nous supposons que vous avez déjà généré les certificats nécessaires, via l’offre Gandi certificat TLS-SSL gratuit, par exemple.
Créez donc le fichier sub.domain.conf dans /etc/nginx/sites-available afin d’y placer le contenu suivant :
server {
listen 80;
listen [::]:80;
server_name sud.domain.tld;
location / { return 301 https://$host$request_uri; }
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name sub.domain.tld;
ssl_certificate /path/to/ssl/cert/crt;
ssl_certificate_key /path/to/ssl/key/key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:3001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; }
}
Vous devrez, bien entendu, adapter les valeurs de server_name, ssl_certificate et ssl_certificate_key à votre configuration.
Créez un lien symbolique afin d’activer le site :
$ sudo ln -s /etc/nginx/sites-available/sub.domain.conf /etc/nginx/sites-enabled/sub.domain.conf
Validez la configuration :
$ sudo nginx -t
Démarrez nginx :
$ sudo systemctl enable nginx --now
Ou redémarrez-le s’il était déjà en cours d’exécution :
$ sudo systemctl restart nginx
Votre site sera maintenant accessible à l’adresse que vous aurez choisi pour celui-ci. Rendez-vous à cette adresse : https://sub.domain.tld
Vous devrez alors configurer votre compte Administrateur d’Uptime-kuma, comme sur la capture ci-dessous.
Que faire avec Uptime-kuma ?
Une fois votre compte créé, vous arrivez sur un tableau de bord Uptime-kuma, vide pour l’instant.
Vous pourrez alors ajouter de nouvelles sondes HTTP(s), Ping, TCP et bien d’autres afin de surveiller vos différents services et équipements, et obtenir un écran comme ceci :
Comme vous le voyez, vous avez en un coup d’oeil un historique des derniers événements.
Il ne s’agit là que de l’installation de base, nous n’avons pas optimisé la sécurité de l’outil ni du serveur web.
Vous pourrez également créer une page Statut indiquant l’état de vos services :
Avec la possibilité d’afficher un incident lorsque celui-ci survient :
Enfin, vous pourrez bien évidemment définir vos paramètres d’envois d’alertes via email, Telegram, Matrix, Push, Mattermost et de nombreux autres.
Pour tous ces réglages, nous ne pouvons que vous inviter à visiter le wiki Uptime-kuma.
Tagged in Cloud