GSP1024

Übersicht
Managed Service for Prometheus ist der vollständig verwaltete Speicher- und Abfragedienst von Google Cloud für Prometheus-Messwerte. Er basiert auf Monarch, dem global skalierbaren Datenspeicher, der auch Cloud Monitoring zugrunde liegt.
In diesem Lab richten Sie einen Google Kubernetes Engine-Cluster (GKE) ein und implementieren anschließend den Managed Service for Prometheus, um Messwerte aus einer einfachen Anwendung zu erfassen.
Eine schlanke Fork von Prometheus ersetzt vorhandene Prometheus-Bereitstellungen und sendet Daten ohne Nutzereingriff an den verwalteten Dienst. Diese Daten können anschließend mit PromQL über die vom verwalteten Dienst unterstützte Prometheus Query API abgefragt werden – sowie über die vorhandenen Abfragemöglichkeiten von Cloud Monitoring.
Ziele
- Managed Service for Prometheus in einem GKE-Cluster bereitstellen
- Zu überwachende Python-Anwendung bereitstellen
- Cloud Monitoring-Dashboard erstellen, um die erfassten Messwerte anzuzeigen
Einrichtung und Anforderungen
Vor dem Klick auf „Start Lab“ (Lab starten)
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange Google Cloud-Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
- Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus (empfohlen), um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.
Lab starten und bei der Google Cloud Console anmelden
-
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Dialogfeld geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können.
Auf der linken Seite befindet sich der Bereich „Details zum Lab“ mit diesen Informationen:
- Schaltfläche „Google Cloud Console öffnen“
- Restzeit
- Temporäre Anmeldedaten für das Lab
- Ggf. weitere Informationen für dieses Lab
-
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite „Anmelden“ geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
-
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
{{{user_0.username | "Username"}}}
Sie finden den Nutzernamen auch im Bereich „Details zum Lab“.
-
Klicken Sie auf Weiter.
-
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
{{{user_0.password | "Password"}}}
Sie finden das Passwort auch im Bereich „Details zum Lab“.
-
Klicken Sie auf Weiter.
Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos.
Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
-
Klicken Sie sich durch die nachfolgenden Seiten:
- Akzeptieren Sie die Nutzungsbedingungen.
- Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
- Melden Sie sich nicht für kostenlose Testversionen an.
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Hinweis: Wenn Sie auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein.
Cloud Shell aktivieren
Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
-
Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren
.
-
Klicken Sie sich durch die folgenden Fenster:
- Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
- Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.
Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:
Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}
gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
- (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
- Klicken Sie auf Autorisieren.
Ausgabe:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Um das aktive Konto festzulegen, führen Sie diesen Befehl aus:
$ gcloud config set account `ACCOUNT`
- (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project
Ausgabe:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
Aufgabe 1: Docker-Repository erstellen
In dieser Aufgabe erstellen Sie ein privates Docker-Repository in Artifact Registry und fügen ihm das Image hinzu. Dazu müssen Sie das Image mit dem Repository-Namen kennzeichnen, um das Ziel anzugeben, und es dann per Push an Artifact Registry senden.
- Führen Sie in der Cloud Shell den folgenden Befehl aus, um ein neues Docker-Repository mit dem Namen docker-repo am Speicherort mit der Beschreibung „Docker-Repository“ zu erstellen.
gcloud artifacts repositories create docker-repo --repository-format=docker \
--location={{{project_0.default_region | Region}}} --description="Docker repository" \
--project={{{project_0.project_id| Project ID}}}
-
Geben Sie in der Titelleiste der Console Artifact Registry in das Suchfeld ein und klicken Sie in den Suchergebnissen auf „Artifact Registry“.
-
Prüfen Sie in Artifact Registry auf der Seite Repositories, ob das von Ihnen erstellte Repository docker-repo angezeigt wird.
-
Laden Sie in der Cloud Shell ein vorkonfiguriertes Image aus einem Speicher-Bucket:
wget https://storage.googleapis.com/spls/gsp1024/flask_telemetry.zip
unzip flask_telemetry.zip
docker load -i flask_telemetry.tar
- Führen Sie den folgenden Befehl aus, um das Image als
flask-telemetry:v1 zu kennzeichnen:
docker tag gcr.io/ops-demo-330920/flask_telemetry:61a2a7aabc7077ef474eb24f4b69faeab47deed9 \
{{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
- Führen Sie den folgenden Befehl aus, um das Docker-Image per Push an Artifact Registry zu senden:
docker push {{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
Klicken Sie auf Fortschritt prüfen.
Docker-Repository erstellen
Aufgabe 2: Google Kubernetes Engine-Cluster einrichten
In dieser Aufgabe stellen Sie einen GKE-Standardcluster bereit und authentifizieren ihn.
- Führen Sie den folgenden Befehl aus, um einen GKE-Standardcluster bereitzustellen. Sie werden dann aufgefordert, die GKE API zu autorisieren und zu aktivieren:
gcloud beta container clusters create gmp-cluster --num-nodes=1 --zone {{{project_0.default_zone | Zone}}} --enable-managed-prometheus
Die Erstellung des Clusters nimmt einige Minuten in Anspruch. Warten Sie, bis sie abgeschlossen ist, und fahren Sie dann mit dem nächsten Schritt fort.
- Führen Sie den folgenden Befehl aus, um sich beim Cluster zu authentifizieren:
gcloud container clusters get-credentials gmp-cluster --zone {{{project_0.default_zone | Zone}}}
Aufgabe 3: Prometheus-Dienst bereitstellen
- Führen Sie den folgenden Befehl aus, um einen Namespace zu erstellen, in dem Sie arbeiten können:
kubectl create ns gmp-test
Klicken Sie auf Fortschritt prüfen.
Prüfen, ob Prometheus bereitgestellt wurde
Aufgabe 4: Anwendung bereitstellen
- Rufen Sie die Anwendung ab, die Messwerte über den Endpunkt
/metrics ausgibt:
wget https://storage.googleapis.com/spls/gsp1024/gmp_prom_setup.zip
unzip gmp_prom_setup.zip
cd gmp_prom_setup
-
In diesem Schritt aktualisieren Sie flask_deployment.yaml, um den Namen des Images zu verwenden, das Sie in den vorherigen Schritten per Push gesendet haben:
- Öffnen Sie
flask_deployment.yaml mit nano:
nano flask_deployment.yaml
- Ersetzen Sie
<ARTIFACT REGISTRY IMAGE NAME> durch Folgendes:
{{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
- Drücken Sie Strg + X, Y und dann die Eingabetaste, um die aktualisierte Datei zu speichern und nano zu schließen.
-
Stellen Sie eine einfache Anwendung bereit:
kubectl -n gmp-test apply -f flask_deployment.yaml
kubectl -n gmp-test apply -f flask_service.yaml
- Prüfen Sie mit dem folgenden Befehl, ob die einfache Python Flask-Anwendung Messwerte bereitstellt:
url=$(kubectl get services -n gmp-test -o jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}')
Hinweis: Der Dienst muss vollständig bereitgestellt sein, damit der curl-Befehl erfolgreich ausgeführt werden kann.
curl $url/metrics
Es sollte folgende Ausgabe angezeigt werden:
# HELP flask_exporter_info Multiprocess metric
# TYPE flask_exporter_info gauge
flask_exporter_info{version="0.18.5"} 1.0
Hinweis: Es kann eine Weile dauern, bis die Ausgabe angezeigt wird. Wenn Sie nicht die erwartete Ausgabe sehen, führen Sie beide Befehle in diesem Schritt noch einmal aus.
- Weisen Sie Prometheus an, wo mit dem Extrahieren der Messwerte begonnen werden soll. Wenden Sie dazu die PodMonitoring-Datei an:
kubectl -n gmp-test apply -f prom_deploy.yaml
- Bevor Sie diese Aufgabe abschließen, generieren Sie mit einer einfachen Interaktion mit der App etwas Last für die Anwendung:
timeout 120 bash -c -- 'while true; do curl $(kubectl get services -n gmp-test -o jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}'); sleep $((RANDOM % 4)) ; done'
Das dauert 2 Minuten. Danach können Sie die Ergebnisse visualisieren.
Klicken Sie auf Fortschritt prüfen.
Prüfen, ob die Flask-Anwendung bereitgestellt wurde
Aufgabe 5: Anwendung über Messwerte beobachten
Im letzten Abschnitt verwenden Sie gcloud, um ein benutzerdefiniertes Monitoring-Dashboard bereitzustellen, das die Messwerte dieser Anwendung in einem Liniendiagramm darstellt.
- Führen Sie dazu in der Cloud Shell das folgende Skript aus:
Hinweis: Kopieren Sie den gesamten Codeblock.
gcloud monitoring dashboards create --config='''
{
"category": "CUSTOM",
"displayName": "Prometheus Dashboard Example",
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"title": "prometheus/flask_http_request_total/counter [MEAN]",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"minAlignmentPeriod": "60s",
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"apiSource": "DEFAULT_CLOUD",
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_NONE",
"perSeriesAligner": "ALIGN_RATE"
},
"filter": "metric.type=\"prometheus.googleapis.com/flask_http_request_total/counter\" resource.type=\"prometheus_target\"",
"secondaryAggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_MEAN",
"groupByFields": [
"metric.label.\"status\""
],
"perSeriesAligner": "ALIGN_MEAN"
}
}
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "y1Axis",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 0,
"yPos": 0
}
]
}
}
'''
- Kehren Sie nach der Erstellung zur Console zurück. Geben Sie in der Titelleiste Monitoring-Dashboard in das Suchfeld ein und klicken Sie in den Suchergebnissen auf Dashboards.
- Suchen Sie in der Liste Dashboard nach dem neu erstellten Prometheus Dashboard Example. Klicken Sie auf Prometheus Dashboard, um das Prometheus Dashboard Example aufzurufen.
Klicken Sie auf Fortschritt prüfen.
Prüfen, ob das Dashboard erstellt wurde
Glückwunsch!
Sie wissen jetzt, wie eine GKE-Anwendung mit Prometheus-Messwerten bereitgestellt und daraus ein Cloud Monitoring-Dashboard erstellt wird.
Weitere Informationen
Details finden Sie in der Prometheus-Dokumentation. Suchen Sie dort nach den Informationen zur selbst bereitgestellten Erfassung.
Google Cloud-Schulungen und -Zertifizierungen
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 21. April 2025 aktualisiert
Lab zuletzt am 21. April 2025 getestet
© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.