Realtime-Attack-Map
SURICATA / LIVE FEED

Monitoring mit Gatus

Monitoring mit Gatus. Umfangreicher als Uptime-Kuma. Einfacher als Zabbix ๐Ÿ˜‰

Monitoring mit Gatus

In der heutigen digitalen Landschaft ist das Monitoring von IT-Systemen und -Diensten unerlรคsslich, um eine hohe Verfรผgbarkeit und Zuverlรคssigkeit zu gewรคhrleisten. Gatus ist ein modernes Monitoring-Tool, das speziell entwickelt wurde, um die Verfรผgbarkeit von Webdiensten und Netzwerkdiensten zu รผberwachen. Mit seiner flexiblen Architektur und einer Vielzahl von Prรผfmethoden bietet Gatus eine umfassende Lรถsung fรผr DevOps-Teams, die kritische Anwendungen und Infrastrukturen betreuen. Die Bedeutung von Monitoring kann nicht genug betont werden: Es ermรถglicht nicht nur die frรผhzeitige Erkennung von Problemen, sondern unterstรผtzt auch eine proaktive Wartung der Systeme. In diesem Artikel werde ich die Vorteile von Gatus im Vergleich zu Uptime Kuma beleuchten.

รœberblick รผber Gatus

Gatus bietet eine Vielzahl von Funktionen, die es zu einer leistungsstarken Wahl fรผr das Monitoring machen. Dazu gehรถren:

  • Flexible Gesundheitschecks: Gatus ermรถglicht es Benutzern, benutzerdefinierte Bedingungen fรผr Gesundheitschecks festzulegen, was eine prรคzise รœberwachung der Dienste gewรคhrleistet.
  • Umfangreiche Alerting-Mรถglichkeiten: Die integrierte Alerting-Funktionalitรคt informiert Administratoren sofort รผber Probleme und ermรถglicht eine schnelle Reaktion.
  • Einfache Integration: Gatus lรคsst sich nahtlos in bestehende DevOps-Workflows integrieren.

Die Architektur von Gatus basiert auf einem leichtgewichtigen Ansatz, der es ermรถglicht, sowohl lokal als auch in der Cloud betrieben zu werden. Die Konfiguration erfolgt รผber einfache YAML-Dateien, was die Implementierung und Wartung erheblich vereinfacht.

Das Dashboard von Gatus sieht dem von Uptime-Kuma sehr รคhnlich:

Dieser Check wurde entsprechend der Doku eingerichtet:

endpoints:
  - name: Awtrix
    group: LED Devices
    url: http://awtrix1
    interval: 1m
    conditions:
      - "[STATUS] == 200"
      - "[CONNECTED] == true"

Alerting

Da ich mir einen ntfy-Server aufgebaut habe, kann ich die Alarme darรผber signalisieren lassen. In der config.yml von Gatus trage ich einfach meinen Server ein:

alerting:
  ntfy:
    url: "https://push.meine-domain.de"
    token: "tk_n36gysc9kjjggzhiizgcjo64dgjoi53ui2w"
    topic: "selfhosted"
    priority: 3
    tags:
      - warning
      - gatus

So kann ich den einzelnen Endpoints mitgeben, wann ein Alarm erfolgen soll:

alerts:
  - type: ntfy
    enabled: true
    failure-threshold: 3
    success-threshold: 2
    send-on-resolved: true

Was ist der Vorteil gegenรผber Uptime-Kuma?

Uptime-Kuma sieht schon recht schick aus und lรครŸt sich sehr leicht konfigurieren:

Ich hatte jedoch das Bedรผrfnis, meinen Mailserver genauer zu รผberwachen, insbesondere hinsichtlich der SSL-Zertifikate. Es kam in der Vergangenheit immer wieder vor, dass die Zertifikate nicht rechtzeitig erneuert wurden, was zu mรถglichen Sicherheitslรผcken fรผhren kรถnnte. Um solche Probleme frรผhzeitig zu erkennen und rechtzeitig handeln zu kรถnnen, war es mir wichtig, eine zuverlรคssige รœberwachung fรผr die SSL-Zertifikate einzurichten.

Mit Uptime Kuma ist es jedoch nicht mรถglich, SSL-Zertifikate auรŸerhalb von regulรคren Webseiten zu รผberwachen, was in meinem Fall, da es um einen Mailserver geht, leider eine Einschrรคnkung darstellt.

Wie setzt man Gatus auf?

Man kann auch diesen Container wieder in meine Umgebung einbauen, wenn man das Monitoring aus dem Internet betrachten mรถchte. In diesem Fall habe ich einfach meinem docker-compose.yml-File folgenden Abschnitt hinzugefรผgt:

  gatus:
    container_name: gatus
    image: twinproduction/gatus:latest
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    ports:
      - 3002:8080
    volumes:
      - ./gatus/config:/config
    restart: unless-stopped
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

Dabei bedeuten die Parameter folgendes:

  • Container-Name und Image
    • container_name: Der Container wird im Docker-Umfeld als gatus benannt. Dies ist hilfreich fรผr die Organisation und Verwaltung von Containern.
    • image: Gibt das Docker-Image an, das fรผr den Container verwendet werden soll. In diesem Fall wird das neueste Image von twinproduction/gatus verwendet.
  • Umgebungsvariablen
    • PUID und PGID: Diese Variablen definieren die Benutzer- und Gruppen-ID, unter der der Container ausgefรผhrt wird. Der Wert 1000 ist oft der Standardbenutzer-ID auf Unix-Systemen und wird hier genutzt, um Berechtigungsprobleme mit Volumes und Dateisystemen zu vermeiden.
    • TZ: Diese Variable setzt die Zeitzone des Containers auf Europe/Berlin.
  • Ports
    • Ports: Leitet den Port 8080 des Containers auf den Port 3002 des Hosts weiter. Damit ist die Gatus-Oberflรคche oder API auf Port 3002 des Host-Systems erreichbar.
  • Volumes
    • Volumes: Verbindet ein lokales Verzeichnis (./gatus/config) mit dem Verzeichnis /config im Container. Dadurch wird die Konfiguration des Gatus-Containers von auรŸerhalb gespeichert und bei Container-Neustarts beibehalten.
  • Neustart-Strategie
    • restart: Der Container wird automatisch neu gestartet, falls er unerwartet beendet wird, auรŸer er wurde manuell gestoppt (unless-stopped).
  • Labels
    • Labels: Mit diesem Label wird die Integration mit Watchtower aktiviert. Watchtower ist ein Docker-Dienst, der Container-Images automatisch auf Updates prรผft und aktualisiert.

Configfile vorbereiten

Das File ./gatus/config/config.yml muss existieren und einen minimalen Inhalt haben, da gatus sonst nicht starten kann. Ein einfacher Start wรคre:

# Global configuration
metrics: true  # Enable metrics endpoint
debug: false   # Disable debug mode for production

Checks werden dann, wie oben beschrieben, hinzugefรผgt.

Ein simples docker-compose up -d startet dann den Container und die Oberflรคche ist unter http://[Container-IP]:3002 zu erreichen.

Fazit

Mit Gatus habe ich schlieรŸlich ein Tool gefunden, das deutlich mehr Funktionen bietet und es mir ermรถglicht, meine Server umfassender zu รผberwachen. Im Vergleich zu anderen Lรถsungen erlaubt Gatus eine prรคzisere Kontrolle und bietet erweiterte Optionen, um verschiedene Aspekte meiner Serverinfrastruktur โ€“ einschlieรŸlich der SSL-Zertifikate โ€“ im Detail zu รผberwachen. So kann ich sicherstellen, dass potenzielle Probleme frรผhzeitig erkannt und rechtzeitig behoben werden, was die Sicherheit und Stabilitรคt meiner Systeme erheblich verbessert.