Community

Cluster- und Anwendungsmonitoring mit Prometheus

: Vortrag von Max Inden über die Verwendung des Prometheus Operators in Verbindung mit Kubernetes.

Die Softwareentwicklung durchläuft schon seit einigen Jahren einen stetigen und nachhaltigen Paradigmenwechsel: weg von großen monolithischen Softwareblöcken hin zu schlanken Softwarearchitekturen. Denn anders als noch zu Beginn des Jahrtausends muss Software heute um ein Vielfaches anpassungsfähiger sein: sie muss etwa dem steigenden Datenvolumen nicht nur standhalten, sondern mitskalieren können, und sie muss angesichts immer disruptiverer Märkte möglichst resilient und flexibel sein.

Um diesen Anforderungen gerecht zu werden, entstehen immer neue, nützliche Technologien, um die Softwareentwicklung und den Softwarebetrieb zu optimieren und Parameter wie Skalierbarkeit, Performanz und Effizienz an die veränderte Bedarfslage anzupassen. Oft lassen sich diese neuen Technologien ausgesprochen sinnvoll kombinieren und erzielen durch die Verbindung ihrer jeweiligen Vorteile eine für schlanke Architekturen willkommene Synergie.

Ein Beispiel dafür ist die Verbindung der Containerverwaltungssoftware Kubernetes mit dem Monitoring-Tool Prometheus. Beide Technologien sind Open-Source und damit in Sachen Verwendung und Weiterentwicklung gemeinfrei.

Kubernetes

Kubernetes ist ein mächtiges System zur Orchestrierung und Verwaltung von Software-Containern in der Cloud. Kubernetes bildet eine Abstraktionsebene auf der existierenden Hardwareebene, verwaltet die gegebenen Ressourcen und teilt diese deklarativ definierten Software-Containern zu. Kubernetes orchestriert so genannte Pods. Ein Pod besteht aus mehreren Containern mit dem gleichen Lebenszyklus, welche sich einen Netzwerk-Namespace, IP-Adresse, IPC, Hostname usw. teilen.

Wer sich eingehender mit Kubernetes befassen möchte, dem sei zusätzlich dieser JUGH-Talk ans Herz gelegt: Kubernetes für Java-Entwickler mit Dr. Roland Huß.

Prometheus Operator

Prometheus ist ein freies Tool, um das Monitoring und das Fehlermanagement von IT-Systemen sinnvoll zu organisieren. Anspruch der Technologie ist es, dabei ein Maximum an Zuverlässigkeit und Einfachheit zu erzielen. Für die Interaktion mit Kubernetes wurde der so genannte Prometheus Operator entwickelt. Dieser ermöglicht die Bildung hoch verfügbarer Prometheus-Cluster und erleichtert so die End-to-End-Überwachung dieser Cluster.

Dabei stellt der Operator zu jeder Zeit sicher, dass für jede Prometheus-Ressource im Cluster ein Set an Prometheus-Servern mit der nötigen Konfiguration läuft. Das beinhaltet Aspekte wie Datenspeicherzeit, persistentes Speichervolumen, Anzahl der Repliken, Instanzen zur Versendung von Fehlermeldungen und dergleichen.

Jede Prometheus-Instanz ist mit einer entsprechenden Konfiguration gekoppelt, die genau spezifiziert, welche Ziele mit welchen Parametern nach Metriken durchsucht werden sollen. Der Nutzer kann diese Konfiguration entweder selbst spezifizieren oder sich eine solche vom Operator generieren lassen.

Der Prometheus Operator kapselt einen Großteil der Prometheus-Fachlichkeit, zeigt dem Anwender aber nur den für seine Zwecke nützlichen Umfang an. Das versetzt Softwareentwickler und Softwareingenieure in die Lage, ihre Software über Team- und Organisationsgrenzen hinweg autonom und flexibel zu überwachen.

Wie genau all das funktioniert, erklärt Max in dieser JUGH-Session. Er erklärt darin die wichtigsten Prinzipien und Funktionalitäten des Prometheus Operators und beschreibt den End-to-End-Monitoring-Stack inklusive Dashboard-Generierung und Fehlermanagement.

Von allen derzeitigen Orchestrierungsplattformen hat sich Kubernetes heute quasi als Standard durchgesetzt“, so Sebastian Hardt, Softwareentwickler bei Micromata und Botschafter der JUGH. „Mit dem Prometheus Operator gewinnen wir jetzt ein nützliches Werkzeug dazu, um die Entwicklung und den Betrieb von Container-Software noch besser zu monitoren und weitgehend durch ein automatisiertes Deployment abzulösen. Sehr hilfreich.“

Die Java User Group Hessen trifft sich übrigens jeden letzten Donnerstag im Monat in Kassel und hat immer spannende Themen und Speaker am Start. Genaueres zur JUGH ist auf jugh.de zu erfahren.

(jw)

Sebastian Hardt