7.1 Basics
Inhalt
Monitoring
Was ist ein Monitoring?
Monitoring bezeichnet die kontinuierliche Überwachung von IT-Systemen, Anwendungen, Geräten und Infrastrukturkomponenten. Ziel ist es, den aktuellen Zustand dieser Systeme zu erfassen, Probleme frühzeitig zu erkennen und proaktiv Massnahmen zur Fehlerbehebung einzuleiten. Ein Monitoringsystem besteht aus einer oder mehreren Komponenten, die Daten sammeln, analysieren und gegebenenfalls Alarme auslösen.
Ein effektives Monitoringsystem kann verschiedene Parameter überwachen:
Physische Grössen
Dazu gehören Temperatur, Luftfeuchtigkeit, Stromverbrauch und andere Umweltbedingungen, die den Betrieb von Rechenzentren oder Serverräumen beeinflussen können.
Virtuelle Grössen
Hierzu zählen Auslastung der Festplatte, CPU- und RAM-Nutzung, Netzwerktraffic oder die Anzahl aktiver Benutzer auf einem System.
Ein gutes Monitoring hilft Administratoren, Probleme zu diagnostizieren und Engpässe frühzeitig zu identifizieren, bevor sie zu ernsthaften Ausfällen oder Leistungseinbussen führen.
Wozu verwendet man Monitoring
Monitoring wird in IT-Infrastrukturen aus mehreren Gründen eingesetzt:
- Sicherstellen des ordnungsgemässen Betriebs
- Systeme und Dienste sollen zuverlässig funktionieren.
- Durch die kontinuierliche Überwachung kann frühzeitig auf Fehlfunktionen reagiert werden.
- Alarmierung bei kritischen Ereignissen
- Definierte Schwellwerte für verschiedene Metriken (z. B. CPU-Last über 90%) können festgelegt werden.
- Wird ein Schwellwert überschritten, löst das System eine Alarmierung aus (E-Mail, SMS, Push-Benachrichtigung etc.).
- Sicherheitsaspekte
- Ungewöhnliche Aktivitäten können erkannt werden (z. B. zahlreiche fehlgeschlagene Login-Versuche).
- Monitoring kann zur Erkennung von Angriffen oder unautorisierten Zugriffen verwendet werden.
- Visualisierung und Analyse
- Daten können in Dashboards aufbereitet werden, um einen schnellen Überblick über die Systemgesundheit zu erhalten.
- Langfristige Analysen helfen bei der Kapazitätsplanung und der Optimierung von IT-Ressourcen.
Checks vs. Metriken
Die Ansätze zur Überwachung lassen sich grob in zwei Hauptkategorien unterteilen: checkbasiertes Monitoring und metrikenbasiertes Monitoring.
Checkbasiertes Monitoring
Checkbasierte Monitoringsysteme wie Nagios oder Icinga arbeiten nach dem Prinzip des direkten Abfragens eines Systems. Hierbei fragt der Monitoringserver das zu überwachende System in regelmässigen Intervallen nach dem aktuellen Status des Systems oder der Anwendung. Der Check liefert entweder ein OK (alles in Ordnung) oder NOK (Fehlerzustand erkannt).
Beispiel: Ein Check prüft alle 5 Minuten, ob ein Webserver erreichbar ist. Ist dies nicht der Fall, wird ein Alarm ausgelöst.
Diese Methode ist einfach, aber limitiert, da sie meist nur den aktuellen Zustand betrachtet und wenig Kontext über längerfristige Trends liefert.
Metrikenbasiertes Monitoring
Metrikbasierte Systeme, sammeln kontinuierlich Daten über verschiedene Aspekte eines Systems. Statt nur “OK/NOK”-Ergebnisse zu liefern, werden detaillierte Metriken über einen längeren Zeitraum erfasst und analysiert.
Dieser Art der Überwachung bietet mehr Einblick, da Trends erkennbar sind (z.B. langsamer Anstieg der CPU-Last über Stunden hinweg). Die Entscheidung darüber, ob ein Fehlerfall eingetreten ist oder nicht, trifft in diesem Fall nicht das zu überwachende System selbst, sondern der Monitoringserver. Dies ermöglicht auch korrelierte Analysen über mehrere Systeme hinweg (beispielsweise das Auslösen eines Alerts, wenn bestimmte Aspekte wie CPU- oder Festplattenauslastung auf mehr als einem System einen Schwellwert überschreiten).
Prometheus
Prometheus ist ein Open-Source-Monitoring- und Alerting-System, das ursprünglich von SoundCloud entwickelt wurde und heute unter der Schirmherrschaft der Cloud Native Computing Foundation (CNCF) steht. Es wurde speziell für dynamische, containerisierte Umgebungen wie Kubernetes entwickelt, kann aber auch in traditionellen IT-Umgebungen eingesetzt werden.
Herkunft und Namensgebung
Der Name “Prometheus” stammt aus der griechischen Mythologie. Prometheus war der Titan, der das Feuer zu den Menschen brachte – eine Metapher für das Bereitstellen von Wissen und Transparenz, was genau dem Zweck eines Monitoring-Systems entspricht.
Funktionsweise von Prometheus
Prometheus arbeitet nach dem Pull-Prinzip:
Der Prometheus Server fragt in regelmässigen Abständen Daten von überwachten Systemen ab (im Gegensatz zu Push-basierten Systemen, bei denen die überwachten Systeme selbst die Daten an das Monitoring-System senden).
⚠️ Im Prometheus Umfeld wirst du früher oder später dem Pushgateway begegnen. Anhand des Namens könnte man vermuten, dass damit Prometheus in ein push-basiertes System “umgewandelt” werden kann. Dies ist aber nicht der Fall. Prometheus arbeitet immer pull-basiert.
Die Daten werden in einer Zeitreihendatenbank (Time series database / TSDB) gespeichert.
Mittels PromQL (Prometheus Query Language), der Prometheus-Abfragesprache, können komplexe Auswertungen und Alerts definiert werden. Um diese PromQL-Abfagen durchzuführen, verfügt Prometheus über ein Webinterface sowie eine API (Application Programming Interface).
Typische Architektur
Prometheus Server: Hauptkomponente, die Metriken abfragt und speichert.
Exporters: Kleine Programme, die Metriken von Systemen bereitstellen (z. B. Node Exporter für Systemmetriken, Blackbox Exporter für HTTP-Checks).
Alertmanager: Sendet Alarme basierend auf definierten Regeln.
Grafana: Visualisierungstool zur Darstellung der gesammelten Daten.
Fazit
Monitoring ist ein essenzieller Bestandteil jeder IT-Infrastruktur. Während klassische checkbasierte Systeme wie Nagios oder Icinga für viele einfache Monitoring-Zwecke ausreichen, ermöglichen moderne metrikbasierte Systeme wie Prometheus eine detailliertere Analyse und eine bessere Skalierbarkeit. In diesem Lab lernst du, wie du Monitoring in deiner Umgebung einrichtest und effektiv nutzen kannst.
Im nächsten Kapitel beschäftigen wir uns mit Zeitreihen. Diese sind die Basis für jedes metrikbasierte Monitoring System.