Colinfo.fr

Supervision externe avec Uptime Kuma sur un VPS gratuit Oracle Cloud

Introduction

Superviser ses services depuis l’extérieur est devenu indispensable : un site ou service peut être parfaitement accessible en interne tout en étant indisponible pour les utilisateurs externes. C’est précisément là qu’un outil comme Uptime Kuma prend tout son sens.

Avec une supervision uniquement interne, une panne Internet ou d’infrastructure peut empêcher toute alerte. Une supervision externe chez un hébergeur permet au contraire de vérifier l’accessibilité réelle de vos services et d’être notifié même en cas de coupure globale.

Uptime Kuma est une solution de supervision open source, légère et moderne, qui permet de surveiller très simplement des services HTTP(S), DNS, TCP, ping, docker, base de données, etc.

Dans cet article, nous allons voir comment déployer Uptime Kuma avec docker sur un VPS gratuit proposé par Oracle Cloud. L’objectif est de mettre en place une supervision externe fiable, capable de vérifier la disponibilité réelle de vos services qu’il s’agisse d’applications web, de serveurs DNS ou d’accès réseau.

Fonctionnalités

Supervision

Voici les types de services que Uptime Kuma peut monitorer :

  • HTTP(S)
  • TCP (ports / services réseau)
  • DNS
  • Ping (ICMP)
  • Expiration des certificats SSL/TLS
  • Expiration des noms de domaine
  • Vérification de mots-clés (contenu web)
  • SNMP
  • SMTP
  • WebSocket

Mais aussi des services plus spécifiques :

  • gRPC avec vérification de contenu
  • MQTT, Kafka, RabbitMQ
  • Radius
  • Bases de données
  • Conteneurs Docker

Alerting

Uptime Kuma propose de nombreuses méthodes de notification pour être alerté rapidement en cas d’incident.

Les méthodes les plus populaires sont :

  • Email (SMTP)
  • Discord
  • Telegram
  • Slack
  • Microsoft Teams
  • Webhook (intégration personnalisée)
  • SMS (via services tiers)
  • Push notifications (Pushover, Ntfy, Gotify…)

Schema

Voici un schéma simple de l’infrastructure qui sera mise en place

Ce schéma présente l’architecture qui sera mise en place dans ce tutoriel : un VPS Oracle gratuit hébergeant Uptime Kuma dans Docker pour superviser des services externes. Nous configurerons des sondes HTTP(s) pour vérifier la disponibilité d’un site web ainsi que des checks DNS afin de valider la résolution du domaine. Enfin, un système d’alertes par email sera configuré pour être notifié automatiquement en cas de panne ou d’anomalie.

VPS Oracle

Oracle Cloud, dans son offre Free Tier, permet de disposer de deux petites instances x86 (1 OCPU, 1 Go de RAM chacune) ainsi que de ressources ARM (Ampere A1) allant jusqu’à 4 OCPU et 24 Go de RAM au total, répartissables sur une ou plusieurs machines virtuelles.

Source : https://docs.oracle.com/fr-fr/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm

Une fois votre compte créé sur Oracle, accédez à la section Compute, puis sélectionnez Instances.

Sélectionner « Create Instance » pour créer notre VPS

Choisissez le nom que vous souhaitez lui accorder, dans mon cas, il s’agira de ce nom : « uptime kuma »

Ensuite, sélectionnez l’image qui sera associée à votre VPS ; dans cet exemple, nous avons opté pour Ubuntu 24.04.

Pour la suite, conservez les paramètres par défaut, sauf si vous souhaitez opter pour le serveur ARM.

Choisissez votre Virtual cloud network.

Générez des clés SSH, qui vous permettront d’établir une connexion sécurisée à votre serveur via le protocole du même nom.

L’instance est en cours de création. Il est possible que la création de l’instance échoue, dans ce cas il faudra réessayer plus tard !

Récupérer l’IP publique de votre vps

Déplacez vos clés dans le répertoire .ssh de votre dossier utilisateur (par exemple : C:/Users/Thomas/.ssh).

Ouvrez ensuite un terminal (ou l’invite de commandes), puis positionnez-vous dans le répertoire .ssh.

Connectez-vous ensuite à votre serveur à l’aide de la commande suivante :

ssh -i ssh-key-uptime-kuma.key ubuntu@X.X.X.X

ssh-key-uptime-kuma.key correspond à la clé privée

ubuntu est le nom d’utilisateur

X.X.X.X à votre adresse IP publique

Ensuite, configuration des règles de filtrage (port 22, 80 et 443) dans la partie Networking

Configuration DNS

Vous devez disposer d’un nom de domaine pour ce tutoriel, car votre appliance uptime kuma sera joignable depuis votre nom de domaine. Il est possible d’utiliser des noms de domaine gratuit avec des extensions peu populaire. Je vous laisse effectuer vos recherches de votre côté si vous n’en possédez pas.

L’objectif est de lié notre nom de domaine à l’IP du VPS qui vient d’être créé, et que la résolution DNS fonctionne.

Dans ce cas, rendez-vous sur votre hébergeur DNS pour modifier vos enregistrement DNS.

Créez ensuite un enregistrement de type A.

Dans le champ de préfixe, j’ai choisi de définir « monitor » ; cela générera le nom de domaine suivant : monitor.colinfo.fr.

Une fois crée et après quelques minutes d’attente, ma résolution DNS doit fonctionner avec la commande nslookup :

Installation Uptime Kuma

Installation docker

Docker permet de lancer des applications dans des conteneurs, c’est-à-dire des environnements isolés.
Chaque conteneur contient tout ce dont l’application a besoin pour fonctionner.
C’est plus léger et plus rapide qu’une machine virtuelle.

Commencer par faire les mises à jour sur votre serveur ubuntu :

sudo apt update && sudo apt upgrade -y 

Voici la documentation officielle pour ubuntu qui est très bien expliqué : https://docs.docker.com/engine/install/ubuntu/

Voici la liste des commandes a exécuté :

Ajout des repository docker :

# Add Docker's official GPG key: 
  sudo apt update
  sudo apt install ca-certificates curl
  sudo install -m 0755 -d /etc/apt/keyrings
  sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  sudo chmod a+r /etc/apt/keyrings/docker.asc
  # Add the repository to Apt sources:
  sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
  Types: deb
  URIs: https://download.docker.com/linux/ubuntu
  Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
  Components: stable
  Architectures: $(dpkg --print-architecture)
  Signed-By: /etc/apt/keyrings/docker.asc
EOF

Installation des paquets docker :

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

Vérification du service docker :

sudo systemctl status docker 

Si le statut est indiqué comme actif, vous pouvez poursuivre le tutoriel.

Installation du reverse proxy SWAG et Uptime Kuma

SWAG est un reverse proxy basé sur Nginx. Il permet de rediriger les requêtes web vers votre conteneur Uptime Kuma.

Il offre :

  • Configuration et mise en place simples
  • Gestion automatique des certificats SSL
  • Compatibilité avec plusieurs fournisseurs cloud
  • Intégration de mécanismes de sécurité (Fail2Ban, blocage géographique, etc.)

Si vous n’êtes pas encore à l’aise avec vi, vous pouvez installer nano, qui n’est pas inclus par défaut dans l’image sélectionnée.

sudo apt install nano 

Créez un dossier nommé “supervision”

sudo mkdir supervision && cd supervision 

Création du fichier de configuration pour les conteneurs :

sudo nano docker-compose.yaml 

Insérez le contenu suivant (remplacez les variables d’environnement URL et SUBDOMAINS par celles correspondant à votre propre configuration) :

services:
  uptime-kuma:
    container_name: uptime-kuma
    image: louislam/uptime-kuma:2
    volumes:
      - ./data:/app/data
    ports:
      - 3001:3001
    restart: unless-stopped
  swag:
    image: lscr.io/linuxserver/swag
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - URL=colinfo.fr
      - SUBDOMAINS=monitor,
      - VALIDATION=http
      - ONLY_SUBDOMAINS=true
    volumes:
      - ./swag:/config
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped

Ensuite, procédez au démarrage des conteneurs :

sudo docker compose up -d 

Vérifiez que les conteneurs ont bien démarré :

sudo docker ps 

Si vous saisissez uniquement l’adresse IP publique dans votre URL, vous devriez normalement accéder à l’interface de SWAG.

Configuration de Uptime Kuma

Configuration DNS

Nous allons maintenant configurer SWAG afin de faire fonctionner le domaine monitor.colinfo.fr.

Déplacer vous dans cette arborescence :

cd /supervision/swag/nginx/proxy-confs 

Modifier ensuite le nom du fichier uptime-kuma.subdomain.conf.sample par uptime-kuma.subdomain.conf

mv uptime-kuma.subdomain.conf.sample uptime-kuma.subdomain.conf 

Nous allons éditer ce fichier :

nano uptime-kuma.subdomain.conf 

Remplacez uptime-kuma.* par la valeur définie dans votre configuration DNS.

Si avez choisi uptime-kuma dans votre enregistrement DNS, vous n’avez pas besoin de modifier ce fichier.

Avant :

Après :

Redémarrez le conteneur afin de prendre en compte les modifications.

sudo docker restart swag

Après quelques secondes, rendez-vous sur votre navigateur. Uptime Kuma est disponible par votre nom DNS.

Démarrage

Ensuite, choisissez SQLite comme base de données.

Définissez un nom d’utilisateur ainsi qu’un mot de passe.

Création des sondes

Nous allons créer notre première sonde qui sera une sonde Web. Cliquez sur « Ajouter une nouvelle sonde à gauche ».

Sonde web

Pour créer une sonde web, vous devez choisir HTTP(s) dans « Type de sonde ».

Renseignez les informations essentielles, telles que le type de sonde, l’URL, etc. Tous les champs peuvent être personnalisés.

Sonde DNS

Pour une sonde DNS, le type de sonde sera « DNS ».

Configuration des notifications

Dans Paramètres > Notifications, vous pourrez créer vos propres notifications.

Nous allons couvrir la création d’une notification par mail.

Pour configurer une notification par e-mail, sélectionnez le type « Courriel (SMTP) ».
Dans cet exemple, un compte Infomaniak est utilisé afin d’exploiter leur serveur SMTP de manière sécurisée.
Cette configuration peut également être réalisée avec un compte Google ou via d’autres plateformes similaires.

Il est possible de tester le bon fonctionnement de la notification sur le bouton « Tester ».

L’e-mail a bien été reçu.

Conclusion

En mettant en place Uptime Kuma sur un VPS, vous disposez d’une solution de supervision externe pour couvrir les faiblesses de la supervision interne.

Associé à Docker et à SWAG, cet environnement permet de surveiller vos services en conditions réelles et d’être alerté rapidement en cas d’incident.
Vous avez désormais une base solide, évolutive et adaptée pour garantir la disponibilité de vos applications et infrastructures.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut