Comment configurer un outil de surveillance de disponibilité sous Linux avec Uptime Kuma

Uptime Kuma est un outil de surveillance de disponibilité simple mais puissant. Il vous permet de suivre chaque service que vous hébergez, que ce soit sur un réseau local ou sur Internet.
Cet article vous montrera comment installer et déployer Uptime Kuma sur un réseau local en utilisant Ubuntu et Docker. Nous vous montrerons également comment personnaliser l’instance Uptime Kuma pour envoyer des notifications de statut à Telegram.
Table des matières
- Pourquoi utiliser Uptime Kuma ?
- Installer Uptime Kuma
- Créer un proxy inverse pour Uptime Kuma en utilisant Nginx
- Configurer Uptime Kuma et ajouter des moniteurs
- Configurer des notifications externes pour Uptime Kuma
Pourquoi utiliser Uptime Kuma ?
Uptime Kuma peut suivre et pinger des serveurs web ainsi que vérifier la santé de vos conteneurs Docker. Cela fait d’Uptime Kuma le portail web tout-en-un idéal pour tous vos services réseau.
L’un des plus grands avantages d’Uptime Kuma est qu’il est livré avec un système de notification robuste par défaut. Cela signifie que vous pouvez configurer votre moniteur de disponibilité pour envoyer automatiquement un message par le biais de divers canaux chaque fois qu’il détecte une anomalie.

Installer Uptime Kuma
Obtenir Docker et Docker Compose
Tout d’abord, récupérez la clé de signature GPG pour les dépôts Docker et Docker Compose :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg
sudochmod a+r /etc/apt/keyrings/docker.gpgCréez un nouveau fichier de dépôt pour Docker sous “/etc/apt/sources.list.d/”
sudonano/etc/apt/sources.list.d/docker.listCollez la ligne de code suivante dans votre nouveau fichier de dépôt :
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stableMettez à jour et améliorez le dépôt de paquets pour votre système Ubuntu :
sudo apt update &&sudo apt upgradeInstallez le paquet Docker et Docker Compose ainsi que leurs dépendances :
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx gitAssurez-vous que l’utilisateur actuellement en cours d’exécution a les bons privilèges pour exécuter Docker et Docker Compose :
sudo usermod -aGdocker ramcesObtenir et construire Uptime Kuma
Créez un nouveau répertoire pour votre conteneur Docker Uptime Kuma. Cela contiendra le fichier de recette pour votre instance :
mkdir uptime-kuma &&cd ./uptime-kumaUne fois à l’intérieur, créez un nouveau “docker-compose.yml” en utilisant votre éditeur de texte préféré :
nano ./docker-compose.ymlCollez le bloc de code suivant dans votre nouveau fichier Compose :
---
version: "3.8"
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- uptime-kuma:/app/data
ports:
- 3001:3001
restart: always
volumes:
uptime-kuma: nullConstruisez les conteneurs Docker pour votre nouvelle instance Uptime Kuma :
sudodocker compose up -dCréer un proxy inverse pour Uptime Kuma en utilisant Nginx
Nous allons créer un proxy inverse dans Nginx afin que vous puissiez accéder à Uptime Kuma sur une URL accessible publiquement.
Créez un nouveau fichier de configuration de site Nginx en utilisant votre éditeur de texte préféré :
sudonano/etc/nginx/sites-available/uptimekumaÉcrivez le bloc de code suivant dans votre nouveau fichier de configuration de site :
server {
server_name uptime.myvpsserver.top;
location /{
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}Liez votre fichier de configuration de site depuis le dossier “sites-available” de Nginx à son répertoire “sites-enabled” :
sudoln-s/etc/nginx/sites-available/uptimekuma /etc/nginx/sites-enabledRedémarrez le démon de votre serveur Nginx pour appliquer vos nouveaux paramètres :
sudo systemctl restart nginxInstaller le certificat SSL
Pour commencer, vous devez vous assurer que votre système a le paquet snap core en cours d’exécution :
sudo snap install coreInstallez le snap pour le certbot de la Electronic Frontier Foundation. C’est un petit outil qui peut automatiquement demander et maintenir le certificat SSL de votre proxy inverse :
sudo snap install certbot --classicTestez si certbot fonctionne correctement en inscrivant votre nouvelle installation certbot auprès de l’EFF :
sudo certbot register --agree-tos-m [email protected]Demandez un nouveau certificat SSL pour votre nouveau proxy inverse :
sudo certbot --nginx-d uptime.myvpsserver.topConfigurer Uptime Kuma et ajouter des moniteurs
Vérifiez si votre installation Uptime Kuma fonctionne correctement sur son proxy inverse en naviguant vers son adresse dans un navigateur web.

Remplissez le formulaire avec les détails que vous souhaitez pour votre nouveau compte administrateur, puis cliquez sur “Créer” pour continuer vers votre instance.

Cliquez sur le bouton “Ajouter un nouveau moniteur” dans le coin supérieur gauche de la page.

Cela ouvrira une nouvelle sous-fenêtre sur la page actuelle où vous pourrez spécifier le type de service que vous souhaitez surveiller. Par exemple, changer la valeur “Type de moniteur” de “HTTP(S)” à “Port TCP” créera un moniteur qui vérifiera si un port particulier de la machine est actuellement ouvert.

Remplissez les détails de la machine que vous souhaitez surveiller.
Faites défiler jusqu’en bas de la page, puis cliquez sur “Enregistrer” pour démarrer votre nouveau moniteur.

Configurer des notifications externes pour Uptime Kuma
Allez à la page principale de votre instance Uptime Kuma et cliquez sur l’icône utilisateur dans le coin supérieur droit de la page.

Cliquez sur l’option “Paramètres” dans le menu déroulant de la page.
Sélectionnez la catégorie “Notifications” dans la nouvelle sous-fenêtre de la page.

Créer un service de notifications Telegram
Cliquez sur le bouton “Configurer la notification”. Par défaut, cela ouvrira une petite fenêtre où vous pourrez lier et créer un bot de notification en utilisant votre compte Telegram.
Fournissez un nom pour votre nouvelle alerte de notification, puis cliquez sur le lien BotFather sous la zone de texte “Token du bot”.

Cliquez sur le bouton “Envoyer un message” sur la page Telegram du BotFather.

Remarque : Le bouton “Envoyer un message” est un lien spécifique à Telegram qui ne fonctionnera que si Telegram est en cours d’exécution sur votre machine. Apprenez comment installer Telegram sur votre machine Linux.
Cela ouvrira une nouvelle fenêtre de chat où vous pourrez utiliser le BotFather pour créer votre bot de notification. Écrivez “/newbot” dans l’invite, puis appuyez sur Entrée.
Fournissez un nom pour le bot que vous liez à votre instance Uptime Kuma.
Écrivez un nom d’utilisateur approprié pour votre nouveau bot de notification. Notez que pour cela, le BotFather n’acceptera aucun caractère spécial à part le trait de soulignement (_).
Cliquez sur le texte que le BotFather a mis en surbrillance pour le copier dans votre presse-papiers.

Testez si votre nouveau bot fonctionne correctement en recherchant son nom d’utilisateur et en commençant une conversation avec lui.

Retournez à votre instance Uptime Kuma, puis collez le token privé du bot dans la zone de texte “Token du bot”.
Cliquez sur le bouton “Obtenir automatiquement” sous la zone de texte “ID de chat”.

Faites défiler jusqu’en bas de la fenêtre Uptime Kuma, puis cliquez sur “Tester” pour vérifier si Uptime Kuma peut communiquer avec votre nouveau bot.

Cliquez sur “Enregistrer” pour valider vos modifications dans Uptime Kuma.
Héberger un simple service de statut sur Docker n’est que la partie émergée de l’iceberg en ce qui concerne le déploiement de services web conteneurisés. Découvrez comment vous pouvez héberger votre propre bureau cloud avec ownCloud ainsi que faire fonctionner votre propre Pastebin avec Stikked.
Crédit photo : Boitulmelo via Unsplash (Fond) Github (Logo). Toutes les modifications et captures d’écran par Ramces Red.