Prometheus Installation

DockerBeginner
Jetzt üben

Einführung

Prometheus ist ein leistungsstarkes Open-Source-Monitoring- und Alerting-Toolkit, das ursprünglich bei SoundCloud entwickelt wurde. Es hat sich zu einem Standard für das Monitoring in Cloud-Native-Umgebungen entwickelt. Seine Hauptmerkmale umfassen ein multidimensionales Datenmodell, eine flexible Abfragesprache (PromQL) und eine Vielzahl von Visualisierungsoptionen.

In diesem Lab lernen Sie den einfachsten Weg kennen, eine Prometheus-Instanz mit Docker einzurichten und zu betreiben. Dieser Ansatz vermeidet komplexe Installationsschritte und ermöglicht es Ihnen, Prometheus schnell zu erkunden. Sie werden das offizielle Docker-Image herunterladen, es als Container ausführen und mit seiner Weboberfläche interagieren.

Prometheus Docker Image herunterladen

In diesem Schritt laden Sie das offizielle Prometheus Docker-Image von Docker Hub herunter. Docker Hub ist ein öffentliches Repository für Docker-Images, und prom/prometheus ist das offizielle Image, das vom Prometheus-Team gepflegt wird.

Der Befehl docker pull lädt das angegebene Image auf Ihren lokalen Rechner herunter und macht es verfügbar, um es als Container auszuführen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um die neueste Version des Prometheus-Images herunterzuladen:

docker pull prom/prometheus

Sie sehen eine Ausgabe, die anzeigt, dass die Image-Layer heruntergeladen werden. Sobald dies abgeschlossen ist, wird das Image lokal gespeichert.

Erwartete Ausgabe (Versionsnummern können variieren):

Using default tag: latest
latest: Pulling from prom/prometheus
a4ca46b05734: Pull complete
542b5806d2b7: Pull complete
...
Digest: sha256:2c785d4e9af2224941598d142337931a5f8333065916938c6444294020b45f50
Status: Downloaded newer image for prom/prometheus
docker.io/prom/prometheus

Prometheus Container auf Port 9090 ausführen

In diesem Schritt führen Sie den Prometheus-Container mit dem gerade heruntergeladenen Image aus. Wir verwenden den Befehl docker run, um den Container zu erstellen und zu starten.

Hier ist eine Aufschlüsselung der Befehlsoptionen, die wir verwenden werden:

  • -d: Führt den Container im Detached-Modus (im Hintergrund) aus.
  • -p 9090:9090: Ordnet Port 9090 des Host-Rechners Port 9090 des Containers zu. Die Web-UI von Prometheus läuft standardmäßig auf Port 9090.
  • --name prometheus: Weist dem Container einen einprägsamen Namen, prometheus, zu, um ihn leicht referenzieren zu können.
  • prom/prometheus: Gibt das zu verwendende Image für die Erstellung des Containers an.

Führen Sie den folgenden Befehl aus, um Ihren Prometheus-Container zu starten:

docker run -d -p 9090:9090 --name prometheus prom/prometheus

Der Befehl gibt eine lange Container-ID aus, die bestätigt, dass der Container gestartet wurde.

Um zu überprüfen, ob der Container läuft, können Sie den Befehl docker ps verwenden, der alle laufenden Container auflistet.

docker ps

Sie sollten den Container prometheus in der Liste sehen, mit dem Status "Up".

Erwartete Ausgabe:

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
a1b2c3d4e5f6   prom/prometheus   "/bin/prometheus --c…"   A few seconds ago   Up a few seconds   0.0.0.0:9090->9090/tcp   prometheus

Prometheus Web UI unter localhost:9090 aufrufen

In diesem Schritt greifen Sie auf die Prometheus-Weboberfläche zu, die jetzt läuft und auf Port 9090 verfügbar ist. Die LabEx-Umgebung bietet eine bequeme Möglichkeit, auf Webdienste zuzugreifen, die innerhalb der virtuellen Maschine laufen.

Klicken Sie auf die Schaltfläche + (Neuer Tab) oben in der Lab-Oberfläche.

Wählen Sie die Option Web Service und geben Sie 9090 als Port ein.

Prometheus Web Service Port Eingabe

Dadurch wird ein neuer Browser-Tab geöffnet, der mit den Diensten in Ihrer Laborumgebung verbunden ist.

Da wir Port 9090 zugeordnet haben, ist die Prometheus-UI verfügbar. Sie sollten den Prometheus Expression Browser sehen, der die Haupt-Landingpage ist. Diese Oberfläche ermöglicht es Ihnen, PromQL-Abfragen zu schreiben und auszuführen, um Metriken zu erkunden.

Prometheus Expression Browser Landingpage

Das Vorhandensein dieser Seite bestätigt, dass Ihr Prometheus-Container korrekt läuft und zugänglich ist.

Prometheus Service-Status überprüfen

In diesem Schritt verwenden Sie die Prometheus-UI, um den Status und die Laufzeitinformationen des Prometheus-Dienstes selbst zu überprüfen.

Navigieren Sie in der Prometheus-Web-UI, die Sie im vorherigen Schritt geöffnet haben, zur Statusseite, indem Sie im oberen Navigationsmenü auf Status klicken und dann Runtime & Build Information auswählen.

Diese Seite zeigt detaillierte Informationen über die laufende Prometheus-Instanz an, einschließlich Version, Erstellungsdatum und der Go-Version, mit der sie kompiliert wurde. Dies ist eine gute Möglichkeit, die volle Funktionsfähigkeit des Dienstes zu bestätigen.

Eine weitere Möglichkeit, den Zustand und die Metriken des Prometheus-Servers zu überprüfen, ist der Zugriff auf seinen /metrics-Endpunkt. Dieser Endpunkt stellt eine Fülle von internen Metriken über Prometheus selbst bereit. Sie können diese Daten mit curl in Ihrem Terminal anzeigen.

curl http://localhost:9090/metrics

Die Ausgabe ist eine lange Liste von Metriken im Prometheus-Exposition-Format. Suchen Sie nach einer Metrik wie prometheus_build_info, um zu bestätigen, dass der Endpunkt funktioniert.

Teilweise erwartete Ausgabe:

## HELP prometheus_build_info A metric with a constant '1' value labeled with the version, revision, branch, and goversion from which prometheus was built.
## TYPE prometheus_build_info gauge
prometheus_build_info{branch="HEAD",goversion="go1.19.5",revision="233d305681c0da67c694b01d832131d173a0552b",version="2.41.0"} 1
...

Standardziele in der Prometheus UI erkunden

In diesem Schritt erkunden Sie das Konzept der "Ziele" (Targets) in Prometheus. Ein Ziel ist ein Endpunkt, von dem Prometheus Metriken abruft (scrapes). Standardmäßig ist der Prometheus-Server so konfiguriert, dass er sich selbst überwacht.

Navigieren Sie in der Prometheus-Web-UI zur Ziele-Seite, indem Sie auf das Menü Status klicken und dann Targets auswählen.

Auf dieser Seite sehen Sie eine Liste aller konfigurierten Abrufziele (scrape targets). Sie sollten eine Zielgruppe namens prometheus mit einem einzigen Endpunkt sehen: http://localhost:9090/metrics. Dies ist der Metriken-Endpunkt des Prometheus-Servers selbst.

Prometheus UI zeigt Self-Monitoring-Ziel UP

Achten Sie auf die Spalte State. Sie sollte grün als UP angezeigt werden. Dies zeigt an, dass Prometheus erfolgreich eine Verbindung zum Ziel herstellt und dessen Metriken abruft. Wenn es ein Problem beim Verbinden mit dem Ziel gäbe, wäre der Zustand "DOWN". Diese Seite ist entscheidend für die Diagnose von Problemen bei der Metrik-Sammlung.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben erfolgreich eine Prometheus-Instanz mit Docker installiert und ausgeführt. Dieses Lab bot eine praktische Einführung in den Einstieg mit einem der beliebtesten Monitoring-Tools der Branche.

In diesem Lab haben Sie gelernt, wie Sie:

  • Das offizielle Prometheus Docker-Image von Docker Hub herunterladen.
  • Einen Prometheus-Container ausführen und seinen Port auf den Host mappen.
  • Auf die Prometheus-Web-UI zugreifen und darin navigieren.
  • Den Dienststatus über die UI und den Metriken-Endpunkt überprüfen.
  • Die Standardkonfiguration für Monitoring-Ziele erkunden.

Sie verfügen nun über ein grundlegendes Verständnis für die Bereitstellung von Prometheus. Die nächsten Schritte auf Ihrem Weg könnten darin bestehen, zu lernen, wie Sie eine benutzerdefinierte Konfigurationsdatei erstellen, um andere Anwendungen und Dienste zu überwachen.