Gatus

Gatus

C'EST QUOI ?

Gatus est un dashboard de santé auto-hébergé, écrit en Go et piloté par un fichier YAML. Chaque endpoint surveillé est décrit avec sa cible, son intervalle et une liste de conditions à satisfaire pour être considéré comme sain. Le résultat est une page de statut lisible plus un moteur d'alertes, sans SaaS derrière ni agent à déployer sur les machines surveillées.

POURQUOI C'EST INTÉRESSANT ?

  • Des conditions plutôt qu'un simple ping : la validation s'écrit avec des placeholders, [STATUS] == 200, [RESPONSE_TIME] < 500, [BODY].user.name == john en JSONPath ou len([BODY].data) < 5. On teste le contenu de la réponse, pas seulement le fait qu'elle arrive.
  • Beaucoup de protocoles : HTTP, TCP, UDP, SCTP, ICMP, DNS, SSH, WebSocket et gRPC. Des conditions dédiées couvrent aussi l'expiration des certificats avec [CERTIFICATE_EXPIRATION] > 48h et celle des noms de domaine.
  • Tout en YAML : la config accepte l'interpolation de variables d'environnement et le chargement de plusieurs fichiers fusionnés depuis un dossier. Ça se versionne et se déploie comme du code.
  • Alertes partout : une quarantaine de providers intégrés, de Slack et Discord à PagerDuty, Opsgenie, ntfy, Gotify ou Home Assistant, plus les webhooks maison pour le reste.
  • Stockage au choix : mémoire par défaut, auquel cas rien ne survit au redémarrage, SQLite avec cache write-through, ou PostgreSQL pour une instance partagée.

CAS D'USAGE

  • Exposer une page de statut publique pour ses services
  • Vérifier qu'une API renvoie le bon JSON et pas seulement un code 200
  • Surveiller l'expiration des certificats TLS et des domaines avant qu'ils lâchent
  • Monitorer les services internes d'un cluster Kubernetes depuis l'intérieur
  • Router les alertes d'un homelab vers ntfy ou Gotify

SOURCES

DÉPÔThttps://github.com/TwiN/gatus
SITEhttps://gatus.io
LICENCEApache-2.0