Grafana Installation

DockerBeginner
Jetzt üben

Einführung

Grafana ist eine führende Open-Source-Plattform für Monitoring und Observability. Sie ermöglicht es Ihnen, Ihre Metriken abzufragen, zu visualisieren, Alarme darauf zu setzen und zu verstehen, unabhängig davon, wo sie gespeichert sind. Mit Grafana können Sie Dashboards erstellen, erkunden und mit Ihrem Team teilen und so eine datengesteuerte Kultur fördern.

In diesem Lab richten Sie Grafana mit Docker schnell und einfach ein. Sie starten zuerst Prometheus als Datenquelle und danach Grafana. Image-Downloads bleiben in Terminal sichtbar, damit Sie den Fortschritt beobachten und Fehler erneut versuchen können. Ihr Ziel ist es, Grafana in einem eigenen Container zu installieren und zur Vorbereitung weiterer Visualisierungen mit Prometheus zu verbinden.

Prometheus vorbereiten und Grafana-Images herunterladen

In diesem Schritt bereiten Sie den Metrikdienst vor und laden Grafana herunter. Prometheus sammelt Metriken; Grafana fragt sie zur Visualisierung ab. Die anfängliche Prometheus-Konfigurationsdatei ist bereits vorbereitet. Die Container starten Sie selbst.

Arbeiten Sie im Projektverzeichnis.

cd /home/labex/project

Jedes feste Tag wählt die in diesem Lab verwendete Version. Downloads können mehrere Minuten dauern. Warten Sie bei jedem Befehl auf die Eingabeaufforderung. Schlägt ein Download fehl, führen Sie denselben Pull-Befehl erneut aus; Docker verwendet fertige Schichten wieder. Fahren Sie nicht fort, solange ein Download unvollständig ist.

docker pull prom/prometheus:v3.3.0
docker pull grafana/grafana:11.6.0

docker network create erstellt ein Netzwerk, in dem Container ihre Namen gegenseitig auflösen können. docker run -d startet einen Container im Hintergrund; --name benennt ihn, --network verbindet ihn mit dem Netzwerk und -p ordnet einen Host-Port einem Container-Port zu. Der schreibgeschützte Bind-Mount (-v ...:ro) lässt Prometheus die vorbereitete Konfiguration lesen.

docker network create monitoring
docker run -d --name prometheus --network monitoring -p 9090:9090 -v /home/labex/project/prometheus.yml:/etc/prometheus/prometheus.yml:ro prom/prometheus:v3.3.0

Die curl-Optionen melden HTTP-Fehler und wiederholen vorübergehende Startfehler bis zu 30-mal im Abstand von zwei Sekunden. Ein laufender Container kann sich noch initialisieren; warten Sie daher auf eine erfolgreiche Zustandsprüfung, bevor Sie fortfahren.

curl --fail --silent --show-error --retry 30 --retry-delay 2 --retry-connrefused --retry-all-errors http://localhost:9090/-/ready

Eine erfolgreiche Antwort lautet Prometheus Server is Ready.. Das Grafana-Image steht nun für den nächsten Schritt bereit.

Grafana auf Host-Port 8080 ausführen

In diesem Schritt führen Sie das Grafana-Image als Container aus. Wir verwenden den Befehl docker run, der einen neuen Container aus einem angegebenen Image erstellt und startet.

Wir werden auch mehrere Flags verwenden, um den Container zu konfigurieren:

  • -d: Führt den Container im Detached-Modus aus (im Hintergrund).
  • -p 8080:3000: Ordnet Port 8080 des Host-Rechners dem Port 3000 des Containers zu. Dies ermöglicht den Zugriff auf die Grafana-Weboberfläche über Ihren Browser und vermeidet Konflikte mit Diensten, die bereits Port 3000 verwenden.
  • --name grafana: Weist dem Container einen benutzerdefinierten Namen zur einfachen Referenzierung zu.
  • --network monitoring: Verbindet den Container mit dem monitoring-Netzwerk. Dies ist entscheidend, da es diesem Grafana-Container ermöglicht, mit dem Prometheus-Container (der sich im selben Netzwerk befindet) über deren Containernamen zu kommunizieren.

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

docker run -d -p 8080:3000 --name grafana --network monitoring grafana/grafana:11.6.0

Der Befehl gibt eine lange Zeichenkette aus, die die eindeutige ID des neu erstellten Containers ist.

a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6

Sie können mit dem Befehl docker ps überprüfen, ob der Container läuft.

docker ps

Sie sollten den grafana-Container mit dem Status Up aufgelistet sehen.

Die curl-Optionen melden HTTP-Fehler und wiederholen vorübergehende Startfehler bis zu 30-mal im Abstand von zwei Sekunden. Ein laufender Container kann sich noch initialisieren; warten Sie daher auf eine erfolgreiche Zustandsprüfung, bevor Sie fortfahren.

curl --fail --silent --show-error --retry 30 --retry-delay 2 --retry-connrefused --retry-all-errors http://localhost:8080/api/health

Die Antwort muss "database": "ok" enthalten.

Grafana-Oberfläche öffnen

In diesem Schritt öffnen Sie den gestarteten Dienst. Wählen Sie nach der erfolgreichen Zustandsprüfung den Lab-Tab Grafana. Blockiert Ihr Browser die eingebettete Anmeldung, öffnen Sie ihn über das entsprechende Steuerelement in einem neuen Browser-Tab.

Sie sollten das Grafana-Anmeldeformular sehen. Diese Oberfläche öffnet Grafana innerhalb der VM; localhost in Ihrem eigenen Browser würde Ihren Rechner bezeichnen, nicht die VM. Halten Sie Terminal für Container-Prüfungen bereit.

Erste Anmeldung und Passwort-Einrichtung

In diesem Schritt melden Sie sich erstmals bei Grafana an. Eine neue Grafana-Instanz bietet nach der ersten Anmeldung einen Bildschirm zum Ändern des Passworts an.

Die Standardzugangsdaten sind Benutzername admin und Passwort admin. Geben Sie diese im Anmeldeformular ein und klicken Sie auf Log in.

Klicken Sie beim Passwortwechsel auf Skip. Behalten Sie die Standardzugangsdaten für dieses temporäre Lab bei, da die Prüfungen damit Ihre Datenquelle untersuchen. Ersetzen Sie Standardzugangsdaten in einer Produktivumgebung durch ein starkes Passwort.

Sie sollten nun die Grafana-Startseite sehen und können die Verbindung zu Prometheus konfigurieren.

Prometheus als Datenquelle in Grafana hinzufügen

In diesem Schritt verbinden Sie Grafana mit der Prometheus-Instanz, die Sie im ersten Schritt gestartet haben. Dadurch kann Grafana Metriken von Prometheus abfragen.

Befolgen Sie diese Anweisungen innerhalb der Grafana-UI:

Klicken Sie im linken Menü auf das Symbol Connections (sieht aus wie ein Stecker oder Verbinder). Klicken Sie auf der Seite "Connections" auf Data sources. Klicken Sie auf der Seite "Data sources" auf die Schaltfläche Add data source. Wählen Sie aus der Liste der verfügbaren Datenquellentypen Prometheus aus.

Setzen Sie Name auf Prometheus.

Nun müssen Sie die Verbindungseinstellungen konfigurieren. Die wichtigste Einstellung ist die URL.

  • Geben Sie im Feld Prometheus server URL http://prometheus:9090 ein.

Diese URL funktioniert, da sowohl der Grafana- als auch der Prometheus-Container mit demselben Docker-Netzwerk (monitoring) verbunden sind. Das interne DNS von Docker ermöglicht es Containern im selben Netzwerk, sich gegenseitig anhand ihres Containernamens (prometheus in diesem Fall) aufzulösen.

Nachdem Sie die URL eingegeben haben, scrollen Sie zum Ende der Seite und klicken Sie auf die Schaltfläche Save & test.

Grafana versucht, eine Verbindung zum Prometheus-Server herzustellen. Wenn die Verbindung erfolgreich ist, sehen Sie eine grüne Benachrichtigung mit der Meldung "Successfully queried the Prometheus API".

Sie können nun dem Leitfaden folgen, um die Funktionen von Grafana zu erkunden. Nachdem Sie Prometheus als Datenquelle hinzugefügt haben, klicken Sie im linken Menü auf Explore. Hier können Sie Abfragen gegen Ihre Prometheus-Daten ausführen und die Ergebnisse in Echtzeit visualisieren. Probieren Sie verschiedene Abfragen aus, um sich mit der Interaktion von Grafana mit Ihren Metriken vertraut zu machen!

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Lab erfolgreich abgeschlossen.

In diesem Lab haben Sie mehrere grundlegende Fähigkeiten für die Arbeit mit Grafana und Docker erlernt:

  • Wie man ein offizielles Docker-Image von Docker Hub herunterlädt.
  • Wie man einen Docker-Container mit spezifischen Netzwerk- und Portkonfigurationen ausführt.
  • Wie man auf eine Webanwendung zugreift, die in einem Container läuft.
  • Wie man die anfängliche Sicherheitseinrichtung für eine neue Grafana-Instanz durchführt.
  • Wie man Grafana mit einer Prometheus-Datenquelle innerhalb eines gemeinsamen Docker-Netzwerks verbindet.

Sie verfügen nun über eine voll funktionsfähige Grafana-Instanz, die mit einer Datenquelle verbunden ist und bereit ist, leistungsstarke und aufschlussreiche Dashboards zur Visualisierung Ihrer Daten zu erstellen.