Container, Microservices und Zeitreihen Prometheus: Open Source für das Monitoring

Autor / Redakteur: Thomas Joos / Ulrike Ostler

Mit der Open Source-Software „Prometheus“ lassen sich in Echtzeit Netzwerke effektiv überwachen Die Anwendung gehört zudem zu den bekanntesten Überwachungs-Tools für „Kubernetes“ und „Red Hat Openshift“.

Firmen zum Thema

Der Titan Prometheus stiehlt nach Bestrafung durch Zeus den Göttern das Feuer. Zur Strafe wird er von dem Gott an das Kaukasusgebirge geschmiedet. Unfähig sich zu wehren, frisst ein Adler seine Leber, die sich allerdings täglich erneuert. Die Qual endet, als Held Herakles den Vogel per Pfeil tötet, und Zeus Prometheus letztlich begnadigt – soweit die griechische Mythologie.
Der Titan Prometheus stiehlt nach Bestrafung durch Zeus den Göttern das Feuer. Zur Strafe wird er von dem Gott an das Kaukasusgebirge geschmiedet. Unfähig sich zu wehren, frisst ein Adler seine Leber, die sich allerdings täglich erneuert. Die Qual endet, als Held Herakles den Vogel per Pfeil tötet, und Zeus Prometheus letztlich begnadigt – soweit die griechische Mythologie.
(Bild: Gordon Johnson auf Pixabay)

Prometheus ist ein Projekt der Cloud Native Computing Foundation (CNCF) das ursprünglich von Soundcloud entwickelt wurde. Das System hat die Überwachung von IT-Infrastruktur in Echtzeit im Fokus. Vor allem in Container-Umgebungen gehört Prometheus zu den bekanntesten Überwachungswerkzeugen. Kubernetes, ebenfalls ein Projekt der CNCF, und Openshift von Red Hat lassen sich mit Prometheus geradezu optimal im Blick behalten.

Prometheus speichert die Daten in seiner Zeitreihendatenbank. Daher ist das System ideal für das Monitoring von Systemen in großer Anzahl. Zu den Parametern gehören neben der CPU- und Speicherauslastung, Anzahl der Anfragen an ein System sowie die Fehleranzahl von Fehlern und viele andere Werte, die als Zeitreihe ideal gespeichert werden können. Zusammen mit „Grafana“ können die Daten anschließend visualisiert und Administratoren benachrichtigt werden.

Prometheus hat seinen Schwerpunkt in der Überwachung von Microservice-Umgebungen. Auch Prometheus selbst ist nicht monolithisch aufgebaut, sondern sehr granular. Das ermöglicht eine flexible Skalierung und eine optimale Integration der Überwachungslösung in bestehende Netzwerke.

Grundlagen zu Prometheus

Das Tool wurde vom Tool „Google Borg Monitor“ inspiriert und ist in „Go“ entwickelt. Da Prometheus Open Source ist, werden aber auch die meisten anderen, relevanten Programmiersprachen unterstützt. Wie bei den CNCF-Projekten üblich, stellen auch die Projektentwickler eine umfassende Prometheus-Dokumentation zur Verfügung. Ein weitere Vorteil: Es gibt eine sehr große Community, die das Projekt aktiv weiterentwickelt.

CNCF-Projekte sind allgemein beliebt und werden nach einer Umfrage vom CNCF in vielen Umgebungen tatsächlich auch produktiv eingesetzt. Das liegt vor allem an der Adaption von Kubernetes.

Ein Vorteil von Prometheus ist die Art der Datenspeicherung. Alle Knoten sind unabhängig voneinander und arbeiten autonom. Dienste zur Überwachung können statisch konfiguriert werden, Prometheus kann Dienste aber auch dynamisch erkennen.

Im Zusammenhang mit Openshift kann Prometheus fast schon als Standard-Tool zur Überwachung bezeichnet werden. Prometheus steht aber auch als Docker-Image zur Verfügung und kann auf diesem Weg sehr schnell zum Einsatz kommen.

Wie in Cloud-nativ-Umgebungen üblich, eignet sich die Software für on-premises-Einsätze aber auch für das Monitoring von Infrastrukturen im Public-Cloud-Betrieb. So lässt sich das Tools etwa in „Microsoft Azure“ nutzen, um dort einen Openshift-Cluster zu überwachen.

Pull und push

Prometheus überwacht nicht nur die Prozesse in den Containern oder Servern auf Funktion, sondern kann auch die internen Abläufe von Prozessen umfassend überwachen und dadurch proaktiv arbeiten. Wenn bereits innerhalb eines Prozesses das Verhalten nicht so ist, wie es sein soll, kann Prometheus bereits Aktionen durchführen, bevor ein Ausfall droht.

Prometheus fragt Daten aktiv bei den angebundenen Knoten ab (pull) und wartet nicht auf Informationen der angefragten Geräte (push). Zum Einsatz kommt vor allem das HTTP-Protokoll. Natürlich unterstützt Prometheus auch Push-Abfragen, zum Beispiel über Gateways. Sinnvoll ist der Einsatz, wenn in IoT-Szenarien Informationen an Prometheus übertragen werden sollen. In diesem Fall führt der Prometheus-Server die Pull-Abfragen vom entsprechenden Gateway aus durch.

Multidimensionales Datenmodell und PromQL

Prometheus nutzt multidimensionale Datenmodell und kann zeitliche Abläufe von Daten nutzen. Dieses Modell steht seit Beginn der Entwicklung im Fokus: Die Daten werden als Zeitsequenz gespeichert. Die Daten können als Bericht hinterlegt werden oder zusammen mit Grafana aufbereitet werden.

Die Datenabfrage wird über die interne Abfrage-Sprache „PromQL“ möglich. Diese funktioniert zwar ähnlich wie SQL ist aber keine SQL-Abfragesprache. So lassen sich die Daten mit PromQL nur lesen.

„Grafana“ und „Prometheus“ ergänzen sich: Grafana kann die Prometheus-Daten als Quelle zur Visualisierung nutzen.
„Grafana“ und „Prometheus“ ergänzen sich: Grafana kann die Prometheus-Daten als Quelle zur Visualisierung nutzen.
(Bild: Thomas Joos)

So kommen in vielen Fällen Prometheus und Grafana gemeinsam zum Einsatz. Denn Prometheus hat seine Stärken in der Überwachung, aber nicht im Bereich der grafischen Oberfläche, oder der Darstellung von Berichten. Zwar bietet auch Prometheus eine Web-UI an und kann Daten über Alarme verwalten, wer aber weitergehende Analysen durchführen will, sollte die API nutzen und ein externes System wie Grafana anbinden. Mithilfe dieser Open-Source-Software lassen sich die Daten grafisch aufbereiten und in einem Dashboard übersichtlich anzeigen.

Somit sollte sich der Admin, welcher auf Prometheus zur Überwachung seiner Container- oder Cloud-Umgebung setzen will, auch die Möglichkeiten von Grafana ansehen.

* Thomas Joos ist freier Autor und Berater, Auf DataCenter-Insider füllt er seinen eigenen Blog mit Tipps und Tricks für Administratoren: „Toms Admin-Blog.

(ID:47084038)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist