Prometheus

23. Oktober 2022

Was ist Prometheus?

Prometheus wurde ursprünglich von Soundcloud entwickelt und ist seit 2016 ein Open Source Projekt der Cloud Native Computing Foundation (CNCF). Durch seine Kombination aus Abfragefunktionen und Cloud-nativer Architektur hat es schnell an Bedeutung gewonnen, da es damit zum idealen Überwachungsstack für moderne Anwendungen geworden ist.

Es bietet neben dem Monitoring von IT-Infrastrukturen auch ein Alarm- und Warnsystem, um auf Probleme aufmerksam zu machen. Dabei werden Echtzeitmetriken in einer Zeitreihendatenbank aufgezeichnet, die per HTTP von Anwendungen abgefragt werden. Es verwendet die leistungsstarke Abfragesprache PromQL für die Abfrage der Zeitreihendaten.

Was macht Prometheus?

Prometheus speichert Ereignisse in Echtzeit. Diese Ergebnisse beinhalten alles, was für Ihre Anwendung relevant ist, z. B. Speicherverbrauch, Netzwerkauslastung oder einzelne eingehende Anforderungen.

Die grundlegende Dateneinheit ist eine „Metrik“. Jeder Metrik wird ein Name zugewiesen, unter dem sie ebenfalls referenziert werden kann, sowie eine Reihe von Labels. Labels sind beliebige Schlüssel-Wert-Datenpaare, die zum Filtern der Metriken in Ihrer Datenbank verwendet werden können.

Prometheus bestimmt den aktuellen Wert Ihrer Metriken mithilfe eines Pull-basierten Datenabrufmechanismus. Es fragt regelmäßig die Datenquelle ab, die jede Metrik unterstützt, und speichert dann die Antwort als neues Ereignis in der Zeitreihendatenbank. Die überwachte Anwendung ist für die Implementierung des als Datenquelle verwendeten Endpunkts verantwortlich; solche Datenlieferanten werden als Exporteure bezeichnet.

Exporteure sind dafür verantwortlich, die Metriken Ihrer Anwendung offenzulegen, damit Prometheus sie sammeln kann. Viele Benutzer beginnen mit einer einfachen Bereitstellung des Node Exporter, der grundlegende System-Metriken von dem Linux-Host erfasst, auf dem er installiert ist.

Das Pull-basierte Modell vereinfacht die Integration von Prometheus in Ihre Anwendungen. Sie müssen lediglich einen kompatiblen Endpunkt bereitstellen, der den aktuellen Wert der zu erfassenden Metrik anzeigt. Prometheus kümmert sich um alles andere.

Darüber hinaus bietet das Tool offizielle Client-Bibliotheken für Go, Java/Scala, Python und Ruby, die die Instrumentierung Ihres Codes erleichtern.

Wie funktioniert der Alertmanager?

Das Scraping und Speichern von Metriken wird vom Prometheus-Server übernommen. Der Server ist für die Überwachung der Auftragsplanung zuständig, was das Abfragen von Datenquellen (Instanzen) mit einer vorbestimmten Abfragehäufigkeit beinhaltet. Überwachungsjobs werden mithilfe einer oder mehrerer „scrape config“-Anweisungen eingerichtet.

In der Praxis versendet der Prometheus-Server Alarme, wenn eine benutzerdefinierte Alarmierungsregel einen Alarmzustand auslöst. Alertmanager-Instanzen handhaben die Deduplizierung, Gruppierung, Sperrung, Stummschaltung und Weiterleitung von Warnungen an den entsprechenden Empfänger, sobald sie konfiguriert wurden.

Wann sollten Sie Prometheus verwenden?

Prometheus ist ein äußerst zuverlässiges Open-Source-Tool, mit dem Sie jeden Teil Ihrer Anwendung überwachen können, einschließlich Microservices. Es ist herstellerneutral und verfügt über eine reichhaltige Open-Source-Community von Entwicklern und Mitwirkenden. Das erlaubt die Überwachung von nahzu jeder Anwendung, einschließlich Frontend und Backend, Server und Hardware und sogar Infrastruktur wie ein Service Mesh.

Viele Open-Source-Tools wie Istio (Service Mesh) und CoreDNS (Standard-DNS für Kubernetes) verfügen über native Prometheus-Endpunkte. Um Dienste zu überwachen, die keine HTTP-Endpunkte verwenden wie beispielsweise Hardware, können Sie Exporter verwenden.

Als Open-Source-Tool hat Prometheus weitere große Vorteile. Der Code ist kostenlos auf GitHub verfügbar und das Toolkit ist leicht anpassbar.

Prometheus enthält einen Alertmanager, der Warnungen gruppiert und dedupliziert, bevor Kategorien von Warnungen als eine einzige Benachrichtigung versendet werden. Das bedeutet weniger Alarmermüdung – und Sie werden während eines Ausfalls nicht mit ständigen Alarmen überschwemmt.

Es ist auch sehr zuverlässig, da seine Server unabhängig sind, was bedeutet, dass die Server auch dann funktionieren, wenn ein Teil Ihres Systems ausfällt. Dies ist besonders wichtig, da Ihr Überwachungssystem auch bei Ausfällen funktionsfähig bleiben muss.

Wenn Sie Kubernetes verwenden, dann empfiehlt sich auf jeden Fall der Einsatz von Prometheus, da sie nahtlos zusammenarbeiten.

Warum Prometheus für die Kubernetes-Überwachung verwenden?

Prometheus ist eine häufige Wahl für die Kubernetes-Überwachung, da es für eine Cloud-native Umgebung entwickelt wurde. Hier sind einige wichtige Vorteile zur Überwachung von Kubernetes-Workloads:

  • Mehrdimensionales Datenmodell

Die Verwendung von Schlüssel-Wert-Paaren ist ähnlich zu den Labels die Kubernetes verwendet, um Infrastrukturmetadaten zu organisieren. Diese Ähnlichkeit stellt sicher, dass Zeitreihendaten von Prometheus genau erfasst und analysiert werden können.

  • Zugängliches Format und Protokolle

Prometheus ermöglicht eine einfache und einfache Offenlegung von Metriken. Es stellt sicher, dass die Metriken für Menschen lesbar sind und über den Standard-HTTP-Transport veröffentlicht werden können.

  • Diensterkennung

Dienste und Anwendungen müssen nicht ständig Daten ausgeben. Metriken unterliegen dem Pull- statt Pushprinzip. Prometheus-Server können verschiedene Techniken anwenden, um Scrape-Ziele automatisch zu erkennen. Sie können beispielsweise die Server so konfigurieren, dass Container-Metadaten gefiltert und abgeglichen werden.

  • Modulare und hochverfügbare Komponenten

Composable Services sind für die Erfassung von Metriken, grafische Visualisierung, Warnmeldungen und mehr verantwortlich. Jeder dieser Dienste unterstützt Sharding und Redundanz.

Einsatz bei Wilde-IT

Wir nutzen Prometheus, um mit einem professionellen Monitoring sowie Alarm- und Warnsystem, einen umfassenden Support für Applikationen abzubilden. Aus den gewonnenen Informationen erstellen wir detaillierte Berichte, die sowohl einen Überblick zur Performance Ihrer Software sowie wichtige Handlungsempfehlungen enthalten. Auf Basis von Notifikationen sind wir darüber hinaus in der Lage, schnell zu reagieren und mit weiteren Tools, wie z.B. Grafana, Fehleranalysen durchzuführen, um möglichst schnell vorhandene Fehler zu beheben.

Sie haben ein spannendes Projekt?

SPRECHEN SIE NOCH HEUTE MIT UNSEREN EXPERTEN.
Kontakt zu Wilde-IT

INDIVIDUELLE SOFTWAREENTWICKLUNG IN DER REGION

Wilde IT Logo

Individuelle Softwarelösungen:
Planung, Design, Softwareentwicklung,
Support, Wartung und Betrieb
aus einer Hand.

Schnell. Agil. Zuverlässig.

WILDE IT VOR ORT

Wilde-IT GmbH
Stuttgarter Str. 2
71638 Ludwigsburg

Tel: 07141 69 628 – 0
Email: info@wilde-it.com

©2024 WILDE-IT GMBH | Impressum | Datenschutz

FOLLOW WILDE-IT