Die Architektur von Prometheus besteht aus mehreren
Schlüsselkomponenten, die zusammen eine flexible und skalierbare Lösung
für die Systemüberwachung und Alarmierung bieten. Hier sind die
Hauptkomponenten im Überblick:
5.1.1 Prometheus Server
Der Prometheus Server ist das zentrale Element des Systems. Er ist
verantwortlich für das Scraping von Metriken, das Speichern der
gesammelten Daten und das Ausführen von Abfragen darauf.
Scraping: Der Prometheus Server ruft in
regelmäßigen Abständen Metriken von definierten Endpunkten ab.
Speicherung: Die gesammelten Daten werden in einer
Zeitreihendatenbank (TSDB) gespeichert.
Abfragen: Benutzer können Abfragen über die
PromQL-Abfragesprache stellen, um die gespeicherten Daten zu
analysieren.
5.1.2 Exporter
Exporter sind Tools, die Metriken von nicht nativ unterstützten
Systemen erfassen und in einem Format bereitstellen, das von Prometheus
gelesen werden kann.
Node Exporter: Erfasst Metriken von
Betriebssystemen wie CPU- und Speicherauslastung.
Anwendungsspezifische Exporter: Exporter für
verschiedene Anwendungen und Dienste wie Datenbanken, Webserver und
mehr.
5.1.3 Alertmanager
Der Alertmanager ist für die Verwaltung von Alarmen zuständig. Er
nimmt Alarme vom Prometheus Server entgegen, verarbeitet sie und leitet
sie an verschiedene Empfänger weiter.
Alarmregeln: Definieren die Bedingungen, unter
denen Alarme ausgelöst werden.
Empfänger: Konfiguration von Empfängern wie E-Mail,
Slack, PagerDuty und mehr.
Gruppierung und Stummschaltung: Funktionen zur
Gruppierung ähnlicher Alarme und zur zeitweisen Deaktivierung von
Alarmen.
5.1.4 Push Gateway
Das Push Gateway dient als Zwischenpuffer für kurzlebige Jobs, die
ihre Metriken nicht direkt an den Prometheus Server senden können.
Stattdessen pushen diese Jobs ihre Metriken an das Gateway, von wo aus
der Prometheus Server sie abruft.
Kurzlebige Jobs: Jobs, die nur kurz laufen und
daher ihre Metriken nicht direkt vom Prometheus Server abgefragt werden
können.
Pufferung: Das Gateway speichert die Metriken
zwischen, bis sie vom Prometheus Server abgerufen werden.
5.1.5 Client-Bibliotheken
Client-Bibliotheken ermöglichen es Entwicklern, ihre Anwendungen mit
Prometheus zu instrumentieren, um benutzerdefinierte Metriken zu
erfassen und bereitzustellen.
Bibliotheken für verschiedene Sprachen: Es gibt
Bibliotheken für verschiedene Programmiersprachen wie Go, Java, Python
und mehr.
Benutzerdefinierte Metriken: Entwickler können
eigene Metriken definieren und in ihren Anwendungen erfassen.
5.1.6 Service Discovery
Prometheus unterstützt verschiedene Mechanismen zur automatischen
Erkennung von Zielen, die überwacht werden sollen. Dies ist besonders
nützlich in dynamischen Umgebungen wie Kubernetes.
Statische Konfiguration: Manuelle Definition von
Zielen in der Konfigurationsdatei.
Dynamische Erkennung: Automatische Erkennung von
Zielen über Integrationen mit Diensten wie Kubernetes, Consul und
DNS.
5.1.7 Support-Tools
Zusätzlich zu den Hauptkomponenten gibt es eine Vielzahl von
unterstützenden Tools, die die Verwaltung und Nutzung von Prometheus
erleichtern.
Prometheus Console: Eine Web-Oberfläche zur Abfrage
und Visualisierung der gesammelten Metriken.
Grafana: Ein beliebtes Dashboarding-Tool, das
häufig in Kombination mit Prometheus verwendet wird, um umfangreiche
Visualisierungen und Dashboards zu erstellen.
Diese Komponenten arbeiten zusammen, um ein leistungsstarkes und
flexibles Überwachungssystem zu schaffen, das in einer Vielzahl von
Anwendungsfällen und Umgebungen eingesetzt werden kann.