Illustration : Gatus : créer une page de statut et surveiller la disponibilité de ses services

Gatus : créer une page de statut et surveiller la disponibilité de ses services

Le site de l’entreprise est-il en ligne ? Le certificat de la messagerie expire-t-il bientôt ? L’API du logiciel de caisse répond-elle en moins d’une seconde ? Trop souvent, c’est un client qui vous apprend qu’un service est tombé. Gatus, outil open source léger, vérifie vos services en continu, vous alerte dès qu’un contrôle échoue et publie une page de statut claire. Toute la configuration tient dans un fichier. Voici comment le mettre en place en quelques minutes.

L’essentiel en 30 secondes

  • Gatus teste des points de terminaison : HTTP(S), DNS, ping, TCP, SSH, et vérifie des conditions (code de réponse, temps de réponse, contenu, expiration du certificat ou du domaine).
  • Il envoie des alertes vers de nombreux canaux : e-mail, Teams, Slack, Telegram, ntfy, Discord…
  • Il affiche une page de statut avec l’historique de disponibilité.
  • Configuration en YAML, versionnable, déploiement en un conteneur Docker.

Installation avec Docker Compose

services:
  gatus:
    image: twinproduction/gatus:latest
    container_name: gatus
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./config:/config
      - ./data:/data

La configuration se place dans config/config.yaml. Comme pour tout outil, épinglez une version précise de l’image en production.

Une configuration type pour une PME

storage:
  type: sqlite
  path: /data/gatus.db

alerting:
  email:
    from: supervision@entreprise.fr
    host: smtp.entreprise.fr
    port: 587
    username: supervision@entreprise.fr
    password: "mot-de-passe-applicatif"
    to: "technique@entreprise.fr"
    default-alert:
      failure-threshold: 3
      success-threshold: 2
      send-on-resolved: true

endpoints:
  - name: Site web
    group: Public
    url: "https://www.entreprise.fr"
    interval: 2m
    conditions:
      - "[STATUS] == 200"
      - "[RESPONSE_TIME] < 1500"
      - "[CERTIFICATE_EXPIRATION] > 336h"
    alerts:
      - type: email

  - name: Webmail
    group: Public
    url: "https://webmail.entreprise.fr"
    interval: 5m
    conditions:
      - "[STATUS] == 200"
      - "[CERTIFICATE_EXPIRATION] > 336h"
    alerts:
      - type: email

  - name: Nom de domaine
    group: Public
    url: "https://www.entreprise.fr"
    interval: 12h
    conditions:
      - "[DOMAIN_EXPIRATION] > 720h"
    alerts:
      - type: email

  - name: Serveur de fichiers (SMB)
    group: Interne
    url: "tcp://192.168.1.20:445"
    interval: 1m
    conditions:
      - "[CONNECTED] == true"
    alerts:
      - type: email

  - name: DNS interne
    group: Interne
    url: "192.168.1.10"
    dns:
      query-name: "srv-fichiers.entreprise.local"
      query-type: "A"
    conditions:
      - "[DNS_RCODE] == NOERROR"
    alerts:
      - type: email

Le seuil failure-threshold: 3 évite d’être alerté pour un échec isolé ; send-on-resolved prévient du retour à la normale. La condition sur [CERTIFICATE_EXPIRATION] détecte un renouvellement en échec deux semaines avant la panne : voir automatiser la surveillance des certificats TLS.

Vérifier le contenu, pas seulement le code 200

Un site peut répondre « 200 » tout en affichant une page d’erreur de base de données. Gatus sait vérifier le corps de la réponse :

    conditions:
      - "[STATUS] == 200"
      - "[BODY] == pat(*Demandez un devis*)"

Pour une API qui renvoie du JSON, vérifiez directement un champ : "[BODY].status == UP".

Les tâches planifiées : surveillance par « battement de cœur »

Gatus peut aussi recevoir des signaux : vos scripts de sauvegarde appellent une URL de Gatus à la fin de chaque exécution réussie, et une alerte se déclenche si le signal n’arrive pas. C’est une façon simple de surveiller qu’une sauvegarde nocturne a bien tourné, en complément de vrais tests de restauration.

La page de statut

L’interface web affiche chaque service, son historique et ses temps de réponse, regroupés par catégorie. Vous pouvez la rendre publique pour vos clients (en n’y faisant figurer que les services publics), ou la réserver à l’équipe. Des badges intégrables indiquent la disponibilité sur un intranet ou un tableau de bord.

Bonnes pratiques

Règle Pourquoi
Héberger Gatus hors de l’infrastructure surveillée Si tout tombe, la supervision doit encore pouvoir alerter
Deux canaux d’alerte (e-mail + messagerie) Une panne de messagerie ne doit pas masquer les alertes
Mots de passe dans des variables d’environnement Ne pas versionner de secrets dans le YAML
Accès protégé (OIDC ou authentification basique) à l’interface interne Elle révèle la liste de vos services
Fenêtres de maintenance déclarées Éviter les fausses alertes pendant les mises à jour
Revue trimestrielle des contrôles Ajouter les nouveaux services, retirer les anciens

Gatus surveille la disponibilité vue de l’extérieur ; pour les ressources internes des serveurs (CPU, disque, mémoire), complétez avec Beszel, et pour le réseau complet avec NetXMS.

Questions fréquentes

Gatus ou Uptime Kuma ?

Uptime Kuma se configure entièrement à la souris, ce qui plaît à beaucoup. Gatus se configure par fichier, ce qui facilite le versionnage, la revue et le déploiement automatisé. Les deux conviennent à une PME.

Peut-on surveiller des services internes ?

Oui, à condition que Gatus puisse les joindre : installez une instance interne, ou reliez-la à votre réseau via un VPN.

Combien de ressources faut-il ?

Très peu : quelques dizaines de mégaoctets de mémoire suffisent pour des dizaines de contrôles.

Comment éviter les alertes pendant une maintenance ?

Déclarez une fenêtre de maintenance dans la configuration, ou suspendez temporairement les alertes de l’endpoint concerné.

Sources

Besoin d’un accompagnement ?

MPCÂBLE Solutions Informatiques (MPCSI) accompagne particuliers, entreprises, associations et collectivités depuis Gaudiès, en Ariège : sur site en Occitanie, principalement dans un rayon de 40 km (Pamiers, Foix, Mirepoix, Saverdun, Castelnaudary), et à distance partout en France. Nous mettons en place la surveillance de vos services dans le cadre de notre infogérance. Demandez un devis gratuit ou appelez le 05 32 42 99 98.

Laisser un commentaire

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