Aktuelles

Prometheus mit Grafana Dashboard
Dienstag, 10. Dezember 2019

Application Performance Monitoring mit Prometheus

Was ist Prometheus?

Es ist ein Open Source Monitoring Tool, das von ehemaligen Google Engineers für das Monitoring von Cloud-Architekturen, abgestimmt auf den Container Orchestrator Kubernetes, entwickelt wurde. Es wird heute unter dem Dach der Linux-Foundation "Cloud Native Computing Foundation" (CNCF) entwickelt und bei führenden Unternehmen weltweit eingesetzt, z.B. bei Google und Red Hat.

Was unterscheidet Prometheus von herkömmlichen Monitoring Tools?

Microservices und containerbasierte Anwendungen in modernen Architekturen sind oft sehr dynamische Objekte. Das erschwert die manuelle Pflege der zu überwachenden Systeme bzw. macht sie unmöglich. Eine automatische Erkennung der IT Umgebung wird notwendig. Herkömmliche Monitoringtools, wie Nagios und Icinga sind dafür nicht ausgelegt. Sie verfolgen den Ansatz, Komponenten oder Anwendungen mittels vordefinierter Abfragen, sogenannter “Checks“, zu überwachen. Dieses Vorgehen wird auch „Blackbox-Monitoring“ genannt. Prometheus hingegen kann mittels der Funktion „Service Discovery“ einzelne oder zusammenhängende Kubernetes Container (Pods), AWS Instanzen sowie Objekte im Google Cloud Storage und in der Azur Cloud automatisch erkennen und damit dynamische Infrastrukturen überwachen. Daneben sind manuelle Konfigurationen jedoch auch sehr einfach möglich.

Wie arbeitet Prometheus?

Prometheus kennt keine vorab definierten Objekte, wie Server oder Netzwerkkomponenten. Es speichert ausschließlich Metriken verschiedener Quellen in einer eigenen „Time-Series-Database“ (TSDB). Diese Arbeitsweise von Prometheus nennt sich "Whitebox-Monitoring" und geht davon aus, dass zu überwachende Systeme alle relevanten Metriken mittels einer REST-API von sich aus bereitstellen. Diese werden dann von Prometheus lediglich gesammelt und gespeichert. Zusätzlich zu den gesammelten Metriken und ihren Namen werden weitere Informationen, so genannte Labels in der TSDB abgelegt. Labels erlauben es, die Metrik in einen Kontext zu setzen. Das können Informationen über die Funktion einer Komponente (z.B. Datenbank) oder den zugeordneten Service sein. Durch Festlegung von Schwellwerten auf die wichtigsten Metriken können Systeme und Anwendungen aktiv überwacht werden.

Welche Komponenten kann Prometheus überwachen?

Eine Reihe von Anwendungen stellt bereits Metriken im Prometheus-Format bereit, wie Docker und Kubernetes. Diese werden "instrumentierte" Anwendungen genannt und können direkt abgefragt werden. Auch nicht-instrumentierte Anwendungen können mittels so genannter „Exporter“ überwacht werden. Exporter sind eigenständige Programme, die vordefinierte Metriken aus den zu überwachenden Systemen extrahieren und per HTTP-Schnittstelle an Prometheus zur Verfügung stellen. Prometheus fragt diese Metriken dann in festgelegten Intervallen ab. Exporter sind für viele Technologien wie z.B. Betriebssysteme, Webserver, Datenbanken und SNMP verfügbar und lassen sich einfach in Betriebssysteme und Anwendungen (per Client Library) integrieren. Bei Netzwerkgeräten kommt der "SNMP-Exporter“ zum Einsatz, der Prometheus-Anfragen an die Geräte weiterleitet und die abgefragten Informationen dann an Prometheus zur Verfügung stellt. Dienste, die ihre Metriken per Push-Prinzip (z.B. SNMP-Trap, Webhook) verteilen, können über das sogenannte „Pushgateway“ angebunden werden. Dieses nimmt eingehende Daten an, speichert sie zwischen und stellt sie zur Abfrage durch den Prometheus-Server bereit.

Wie funktionieren Dashboarding und Reporting mit Prometheus?

Zur Visualisierung wird Grafana genutzt. Grafana beherrscht Out-of-the box die Prometheus-Abfragesprache PromQL und bietet eine Vielzahl bereits fertiger Dashboards. Das Auslesen von Daten aus Prometheus funktioniert mittels einer HTTP-basierten REST API und der Abfragesprache PromQL. Durch das kontinuierliche Speichern von Daten durch Prometheus ist auch das Verfolgen von Trends ohne weiteres möglich. In den Grafana Dashboards können neben den Prometheus Daten noch weitere Datenquellen angebunden und miteinander verknüpft werden.

Wie funktioniert die Alarmierung mit Prometheus?

Alarme werden von Prometheus an den sogenannten Alertmanager weitergegeben, dieser steuert die Alarmierung, z.B. per E-Mail, Slack oder SMS. Der Alertmanager kann Alarme nach bestimmten Vorgaben behandeln, also deduplizieren oder bei Wartungsarbeiten unterdrücken. Zur Benachrichtigung des Alertmanagers nutzt Prometheus Alarmierungsregeln, die in PromQL-Ausdrücken festgehalten werden. Beim Auslösen einer Alarmierungsregel sendet Prometheus per HTTP einen Alarm an den Alertmanager, dieser übernimmt die weitere Bearbeitung.

Warum setzt OpenAdvice auf Prometheus?

Prometheus ermöglicht die automatisierte Überwachung dynamischer Infrastrukturen. Durch seine leistungsfähige und moderne Architektur sind Monitoring, Trending, Alerting und Reporting möglich. Prometheus und die Visualisierung in Grafana werden durch eine aktive weltweite Community unterstützt.

Wie können wir Sie unterstützen?

Prometheus Kennenlernen: eine Online Demo unserer eigenen Prometheus-Umgebung
Prometheus Testen: ein PoC bei Ihnen auf Basis einer fertigen Dockerumgebung
Beim Projektstart: Basisinstallation und Konfiguration Ihres Systems
Erweiterungen: Wir bieten fertige Plug & Play-Module an, z.B. Self Monitoring für Netcool und die Zertifikatsüberwachung und übernehmen kundespezifische Anpassungen. Dazu gehören erprobte Alertingrules und Templates für Dashboards und deren Customizing in Grafana.
Betriebsunterstützung: Übergeben Sie auf Wunsch den kompletten Betrieb Ihrer Prometheus-Umgebung an das OpenAdvice Service Center.

Welche Anwendungsbeispiele gibt es für Monitoring mit Prometheus?

  • Self Monitoring für Netcool
  • Zertifikatsüberwachung
  • VMWare Monitoring (VMs, vSphere, Snapshots, Auslastung)
  • SNMP Monitoring (Switche und anderes Netzwerk Equipment)
  • Datenbank Monitoring (MySQL, Oracle, Auslastung, Cache Hitrates)
  • Host Monitoring (CPU, RAM, Disc)
  • Docker Container Überwachung

Bitte sprechen Sie uns an, wir unterstützen Sie gern bei der Inbetriebnahme Ihrer Prometheus Monitoringumgebung.