Prometheus und Grafana bilden zusammen eine leistungsstarke Open-Source-Lösung für die zentrale Überwachung von Servern, Anwendungen und Netzwerken. Die Tools ermöglichen das Sammeln, Speichern und Visualisieren von Metriken in einer einheitlichen Oberfläche und sind sowohl für kleine Home-Labs als auch für große Produktionsumgebungen geeignet.
Prometheus und Grafana ermöglichen ein leistungsstarkes und flexibles Monitoring von Servern, Anwendungen und Netzwerken – von der Datenerfassung bis zur anschaulichen Visualisierung in Dashboards.
(Bild: Grafana)
Die Überwachung von Systemen mit Prometheus und Grafana erfolgt durch die Erfassung von Logs und Metriken, die unterschiedliche Zwecke erfüllen. Logs enthalten detaillierte Informationen zu Ereignissen, wie Webanfragen oder Fehlern, und dienen der Fehleranalyse. Metriken hingegen liefern numerische Daten wie CPU-Auslastung, Arbeitsspeichernutzung oder Disk-I/O-Operationen. Diese Werte helfen bei der Erkennung von Ressourcenengpässen und Leistungsproblemen. Ein zentralisiertes Monitoring reduziert den Aufwand, mehrere Systeme einzeln zu überprüfen, und erlaubt einen schnellen Überblick über die gesamte Infrastruktur.
Prometheus: Metriken sammeln und speichern
Prometheus ist ein Monitoring-System, das Zeitreihendaten sammelt und speichert. Es verwendet einen eigenen Server, der in festgelegten Intervallen Metriken von Targets abruft. Targets können physische Server, virtuelle Maschinen, Container oder Anwendungen sein. Diese werden in einer zentralen Konfigurationsdatei definiert, in der auch das Abfrageintervall und weitere Parameter festgelegt werden.
Die erfassten Daten werden in einer internen Datenbank gespeichert. Prometheus verwendet dafür standardmäßig eine Datenaufbewahrung von 15 Tagen. Diese kann angepasst werden, wenn längere Zeiträume für Analysen erforderlich sind. Zur Abfrage der Daten bietet Prometheus die Abfragesprache PromQL, mit der sich komplexe Analysen durchführen lassen.
Prometheus einrichten
Die Installation und Einrichtung von Prometheus erfolgt in mehreren Schritten. Zunächst wird die neueste Version von der offiziellen Prometheus-Webseite heruntergeladen und entpackt. Dies erfolgt über den Befehl:
tar xvfz prometheus-*.tar.gzcd prometheus-*
Die Prometheus-Binary, die als zentrale Komponente dient, befindet sich in diesem Verzeichnis und kann mit dem Befehl:
./prometheus --help
gestartet werden, um eine Übersicht aller verfügbaren Optionen anzuzeigen.
Bevor Prometheus gestartet wird, erfolgt die Konfiguration über die mitgelieferte Datei prometheus.yml. Diese Datei enthält drei Hauptblöcke:
Der Abschnitt "global" definiert globale Parameter wie das Standard-Abfrageintervall (scrape_interval), das hier auf 15 Sekunden eingestellt ist, und das Regelbewertungsintervall (evaluation_interval).
Der Block "rule_files" ermöglicht das Hinzufügen von Regeln zur Aggregation oder Erstellung neuer Zeitreihen, ist jedoch in der Standardkonfiguration leer.
Im Abschnitt "scrape_configs" werden die zu überwachenden Ziele definiert. Die Standardkonfiguration enthält ein Ziel mit dem Namen "prometheus", das die internen Metriken des Prometheus-Servers unter http://localhost:9090/metrics abruft.
Nach Abschluss der Konfiguration wird Prometheus über den Befehl:
./prometheus --config.file=prometheus.yml
gestartet. Sobald Prometheus läuft, ist die Benutzeroberfläche unter http://localhost:9090 zugänglich. Prometheus sammelt automatisch Metriken über den eigenen Zustand, die über die URL http://localhost:9090/metrics abrufbar sind.
In der grafischen Oberfläche können erste Abfragen über den integrierten Ausdrucksbrowser durchgeführt werden. Beispielsweise zeigt der Ausdruck promhttp_metric_handler_requests_total die Gesamtanzahl der HTTP-Anfragen an den /metrics-Endpoint des Servers.
Für die Visualisierung von Metriken bietet Prometheus auch eine einfache Graphenansicht, die über die Registerkarte "Graph" zugänglich ist. Hier können Abfragen wie rate(promhttp_metric_handler_requests_total{code="200"}[1m]) verwendet werden, um die Anfrageraten pro Sekunde grafisch darzustellen.
Um den vollen Nutzen von Prometheus zu entfalten, können zusätzliche Exporter installiert werden, die Metriken von weiteren Systemen oder Diensten bereitstellen. Der Node Exporter ist ein gutes Beispiel und ermöglicht die Überwachung von Host-Metriken wie CPU-Auslastung, Arbeitsspeicher und Festplatten-I/O.
Grafana: Flexible Visualisierung
Grafana ergänzt Prometheus als Visualisierungswerkzeug. Es greift über die PromQL-Schnittstelle auf die Metriken zu und stellt sie in Dashboards dar, die individuell angepasst werden können. Grafana unterstützt verschiedene Datenquellen und ermöglicht neben Prometheus auch die Integration mit InfluxDB, Elasticsearch und vielen weiteren Systemen. Ein Dashboard in Grafana zeigt die Daten in Form von Diagrammen, Tabellen oder Statistiken und lässt sich an die spezifischen Anforderungen einer Umgebung anpassen. Darüber hinaus bietet Grafana eine umfangreiche Bibliothek mit vorgefertigten Dashboards, die von der Community bereitgestellt werden und direkt importiert werden können.
Grafana ermöglicht es, auf Basis von Prometheus-Daten, aussagekräftige Dashboards zu erstellen, die individuell an die Anforderungen angepasst werden können. Dabei bietet die Plattform eine Vielzahl von Visualisierungstypen, wie Zeitreihendiagramme, Gauge-Panels oder Tabellen, um Metriken übersichtlich darzustellen. Die Einrichtung eines Dashboards beginnt mit der Definition der Prometheus-Datenquelle. Hierzu wird die URL des Prometheus-Servers in Grafana hinterlegt, was den Zugriff auf alle gesammelten Metriken ermöglicht. Anschließend können Panels hinzugefügt und mit Abfragen auf PromQL-Basis gefüllt werden. Grafana bietet dafür sowohl eine grafische Oberfläche als auch die Möglichkeit, Abfragen direkt im Code zu bearbeiten.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Bei der Panel-Erstellung können spezifische Konfigurationen vorgenommen werden, wie das Festlegen von Einheiten, die Anpassung von Legenden und die Definition von Schwellenwerten für Farbcodierungen. Beispielsweise lässt sich die CPU-Auslastung in einem Gauge-Panel visualisieren, wobei Werte über 80 % rot markiert werden können. In einem Zeitreihendiagramm können Zeitspannen wie die letzten 30 Minuten angezeigt und Metriken aggregiert werden, etwa der 95. Perzentilwert der Antwortlatenz.
Zusätzlich ermöglicht Grafana die Gruppierung von Panels in thematische Zeilen, um Dashboards übersichtlich zu organisieren. Dies ist besonders nützlich, wenn verschiedene Metriken wie Netzwerk- und CPU-Daten separat dargestellt werden sollen. Die Zeilen können durch Drag-and-Drop angeordnet und bei Bedarf eingeklappt werden. Das Ergebnis ist ein leistungsfähiges Dashboard, das komplexe Metriken klar visualisiert und die Überwachung von Systemen erheblich erleichtert. Grafana erlaubt es, Dashboards für wiederkehrende Anforderungen zu speichern und bei Bedarf durch weitere Panels oder Transformationen zu erweitern.
Grafana in Betrieb nehmen
Grafana lässt sich auch als Docker-Container in Betrieb nehmen. Dadurch ist die Integration mit Prometheus sehr schnell möglich. Die Installation kann zum Beispiel mit dem folgenden Befehl erfolgen:
docker run -d -p 3000:3000 –name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana
Der angegebene Befehl startet Grafana in einem Docker-Container und konfiguriert dabei einige grundlegende Parameter. Mit docker run wird ein neuer Container auf Basis des Images grafana/grafana gestartet. Der Parameter -d sorgt dafür, dass der Container im Hintergrund läuft, sodass das Terminal für weitere Eingaben verfügbar bleibt. Die Option -p 3000:3000 legt eine Portweiterleitung fest, bei der der Port 3000 des Host-Systems mit dem internen Port 3000 des Containers verknüpft wird, auf dem der Grafana-Server standardmäßig läuft. Mit --name=grafana wird dem Container der Name "grafana" zugewiesen.
Ein wichtiger Bestandteil des Befehls ist: der Parameter
-v grafana-storage:/var/lib/grafana.
Dieser sorgt dafür, dass ein Docker-Volume namens "grafana-storage" erstellt oder verwendet wird, um persistente Daten zu speichern. Das Volume wird mit dem Verzeichnis /var/lib/grafana innerhalb des Containers verknüpft, in dem Grafana alle wichtigen Daten wie Dashboards und Konfigurationen speichert. Dadurch bleiben diese Daten erhalten, auch wenn der Container gelöscht oder neu gestartet wird. Der Befehl stellt somit sicher, dass Grafana zuverlässig und mit dauerhaft gespeicherten Daten läuft. Mehr zur Installation und Einrichtung kann über die Dokumentation in Erfahrung gebracht werden. Die Grafana-Dokumentation zeigt darüber hinaus auch die ausführliche Einrichtung.
Exporters: Datenquellen erweitern
Prometheus sammelt Daten über Exporters, die Metriken aus verschiedenen Systemen bereitstellen. Zu den wichtigsten Exporters gehören:
Node Exporter: Erfasst Systemmetriken wie CPU- und Speicherverbrauch auf Linux-Servern.
cAdvisor: Bietet detaillierte Metriken zu Container-Ressourcen, wie CPU- und Speichernutzung, speziell für Docker-Umgebungen.
Datenbankspezifische Exporters: Exporters wie der MySQL Server Exporter erfassen Datenbankmetriken.
Die Konfiguration dieser Exporters erfolgt über zusätzliche Jobs in der Prometheus-Konfigurationsdatei.
Node Exporter: Tiefgehende Systemüberwachung mit Prometheus
Vor allem der Node Exporter erweitert Prometheus um die Fähigkeit, detaillierte Systemmetriken zu erfassen. Diese Daten umfassen CPU-, Speicher- und Netzwerkmetriken sowie spezifische Informationen wie Temperaturdaten oder Prozesse. Der Node Exporter kann auf nahezu jedem System installiert werden, sei es ein Linux-Server, ein Raspberry Pi oder ein Windows-Rechner. Alternativ lässt er sich auch als Docker-Container betreiben, wobei die Installation direkt auf dem Host-System oft bevorzugt wird, da der Exporter ressourcenschonend ist und keine zusätzlichen Containerverwaltungsprozesse benötigt.
Die Kommunikation zwischen Prometheus und dem Node Exporter erfolgt über das Pull-Prinzip: Der Prometheus-Server ruft die Metriken aktiv vom Exporter ab, der zum Beispiel auf Port 9100 lauscht. Die Konfiguration des Exporters erfolgt über eine Prometheus-Konfigurationsdatei, in der der Exporter als Ziel (Target) definiert wird. Die Metriken werden in regelmäßigen Intervallen abgefragt, die individuell eingestellt werden können, beispielsweise alle fünf Sekunden, um besonders engmaschige Analysen zu ermöglichen.
Für den dauerhaften Betrieb des Node Exporters auf einem Linux-System empfiehlt sich die Integration in das Systemd-Framework. Dies stellt sicher, dass der Exporter automatisch startet und auch nach einem Systemneustart aktiv bleibt. Ein entsprechendes Systemd-Service-Skript lässt sich mit wenigen Zeilen erstellen und ermöglicht so eine zuverlässige und konsistente Datenerfassung.
Durch den Einsatz des Node Exporters in Kombination mit Prometheus entsteht eine leistungsfähige Monitoring-Architektur, die tiefgehende Einblicke in den Zustand und die Performance von Systemen bietet. Diese Informationen können in Grafana visuell aufbereitet und analysiert werden, was eine intuitive Interpretation der Metriken ermöglicht und die Erkennung von Engpässen oder Fehlern vereinfacht.
Sichere Bereitstellung und Schutz der Umgebung
Weder Prometheus noch Grafana bieten standardmäßig Verschlüsselung oder Authentifizierung. Daher sollten diese Systeme nur in sicheren Netzwerken betrieben oder durch zusätzliche Schutzmaßnahmen wie Zugriffskontrollproxies (Teleport) oder Reverse-Proxies (Traefik oder Nginx) abgesichert werden. Grafana bietet ein Login-System, das zusätzliche Sicherheitsschichten wie SSL-Zertifikate sinnvoll ergänzt.