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

Une photographie d'un bureau rempli d'ordinateurs.

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.

Une capture d'écran montrant une instance Uptime Kuma fonctionnelle.

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.gpg

Créez un nouveau fichier de dépôt pour Docker sous “/etc/apt/sources.list.d/”

sudonano/etc/apt/sources.list.d/docker.list

Collez 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 stable

Mettez à jour et améliorez le dépôt de paquets pour votre système Ubuntu :

sudo apt update &&sudo apt upgrade

Installez 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 git

Assurez-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 ramces

Obtenir 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-kuma

Une fois à l’intérieur, créez un nouveau “docker-compose.yml” en utilisant votre éditeur de texte préféré :

nano ./docker-compose.yml

Collez 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: null

Construisez les conteneurs Docker pour votre nouvelle instance Uptime Kuma :

sudodocker compose up -d

Cré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-enabled

Redémarrez le démon de votre serveur Nginx pour appliquer vos nouveaux paramètres :

sudo systemctl restart nginx

Installer 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 core

Installez 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 --classic

Testez 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.top

Configurer 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.

Une capture d'écran montrant la page d'accueil par défaut d'Uptime Kuma.

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.

Une capture d'écran montrant les détails de l'administrateur pour la nouvelle instance.

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

Une capture d'écran mettant en évidence le bouton

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.

Une capture d'écran montrant les différents types de moniteurs disponibles.

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.

Une capture d'écran montrant les détails complets d'un moniteur de vérification de port simple.

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.

Une capture d'écran mettant en évidence le badge de l'icône utilisateur dans le coin supérieur droit de l'écran.

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.

Une capture d'écran mettant en évidence la catégorie Notifications.

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”.

Une capture d'écran mettant en évidence le lien Telegram BotFather.

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

Une capture d'écran montrant l'invite initiale pour le 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.

Une capture d'écran mettant en évidence le token unique pour votre nouveau bot de notification.

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

Une capture d'écran montrant l'historique de la conversation initiale avec le nouveau bot.

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”.

Une capture d'écran mettant en évidence le bouton Obtenir automatiquement.

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.

Une capture d'écran montrant un bot Telegram Uptime Kuma fonctionnel.

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.