In dieser Anleitung erfahren Sie, wie Sie Aktivitätsprüfungen für Anwendungsmikrodienste einrichten, die mit Open-Source-Prometheus in Google Kubernetes Engine (GKE) bereitgestellt werden.
In dieser Anleitung wird die Open-Source-Software Prometheus verwendet. Jeder GKE Autopilot-Cluster stellt jedoch automatisch Managed Service for Prometheus bereit, die vollständig verwaltete, projektübergreifende Multi-Cloud-Lösung von Google Cloud für Prometheus-Messwerte. Mit Managed Service for Prometheus können Sie Ihre Arbeitslasten mithilfe von Prometheus global überwachen und Benachrichtigen dazu senden, ohne Prometheus manuell in großem Umfang verwalten und betreiben zu müssen.
Sie können auch Open-Source-Tools wie Grafana verwenden, um von Prometheus erfasste Messwerte zu visualisieren.
Ziele
- Erstellen Sie einen Cluster.
- Stellen Sie Prometheus bereit.
- Stellen Sie die Beispielanwendung Bank of Anthos bereit.
- Konfigurieren Sie Prometheus-Aktivitätsprüfungen.
- Prometheus-Benachrichtigungen konfigurieren.
- Konfigurieren Sie Alertmanager, um Benachrichtigungen in einem Slack-Kanal zu erhalten.
- Simulieren Sie einen Ausfall, um Prometheus zu testen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
-
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
- Installieren Sie die Helm API.
Umgebung vorbereiten
In dieser Anleitung verwenden Sie Cloud Shell zum Verwalten von Ressourcen, die in Google Cloud gehostet werden.
Legen Sie die Standardumgebungsvariablen fest:
gcloud config set project PROJECT_ID gcloud config set compute/region COMPUTE_REGION
Dabei gilt:
PROJECT_ID
: Ihre Google Cloud-Projekt-ID.PROJECT_ID
: die Compute Engine-Region für den Cluster. In dieser Anleitung ist die Regionus-central1
. Normalerweise sollten Sie eine Region auswählen, die in Ihrer Nähe liegt.
Klonen Sie das in dieser Anleitung verwendete Beispiel-Repository:
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git cd bank-of-anthos/
Erstellen Sie einen Cluster.
gcloud container clusters create-auto CLUSTER_NAME \ --release-channel=CHANNEL_NAME \ --region=COMPUTE_REGION
Dabei gilt:
CLUSTER_NAME
: ein Name für den neuen Cluster.CHANNEL_NAME
: der Name einer Release-Version.
Prometheus bereitstellen
Verwenden Sie das Beispiel-Helm-Diagramm, um Prometheus zu installieren:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install tutorial bitnami/kube-prometheus \
--version 8.2.2 \
--values extras/prometheus/oss/values.yaml \
--wait
Mit diesem Befehl wird Prometheus mit den folgenden Komponenten installiert:
- Prometheus-Operator:: eine beliebte Methode zum Bereitstellen und Konfigurieren von Open-Source-Prometheus.
- Alertmanager: verwaltet vom Prometheus-Server gesendete Benachrichtigungen und leitet sie an Anwendungen wie Slack weiter.
- Blackbox-Exporter: ermöglicht es Prometheus, Endpunkte mit HTTP, HTTPS, DNS, TCP, ICMP und gRPC zu prüfen.
Bank of Anthos bereitstellen
Beispielanwendung „Bank of Anthos“ bereitstellen:
kubectl apply -f extras/jwt/jwt-secret.yaml
kubectl apply -f kubernetes-manifests
Slack-Benachrichtigungen
Zum Einrichten von Slack-Benachrichtigungen müssen Sie eine Slack-Anwendung erstellen, eingehende Webhooks für die Anwendung aktivieren und die Anwendung in einem Slack-Arbeitsbereich installieren.
Slack-Anwendung erstellen
Um einem Slack-Arbeitsbereich beizutreten, registrieren Sie sich entweder mit Ihrer E-Mail-Adresse oder nutzen eine von einem Workspace-Administrator gesendete Einladung.
Melden Sie sich bei Slack an. Verwenden Sie hierfür den Namen Ihres Arbeitsbereichs und die Anmeldedaten für Ihr Slack-Konto.
-
- Klicken Sie im Dialogfeld Anwendung erstellen auf Neu erstellen.
- Geben Sie einen Anwendungsnamen an und wählen Sie Ihren Slack-Arbeitsbereich aus.
- Klicken Sie auf Create App (App erstellen).
- Klicken Sie unter Features und Funktionen hinzufügen auf Eingehende Webhooks.
- Klicken Sie auf die Schaltfläche Eingehende Webhooks aktivieren.
- Klicken Sie im Abschnitt Webhook-URLs für Ihren Arbeitsbereich auf Neuen Webhook zu Arbeitsbereich hinzufügen.
- Wählen Sie auf der angezeigten Autorisierungsseite einen Kanal aus, um Benachrichtigungen zu erhalten.
- Klicken Sie auf Zulassen.
- Ein Webhook für Ihre Slack-Anwendung wird im Abschnitt Webhook-URLs für Ihren Arbeitsbereich angezeigt. Speichern Sie die URL für eine spätere Verwendung.
Alertmanager konfigurieren
Erstellen Sie ein Kubernetes-Secret, um die Webhook-URL zu speichern:
kubectl create secret generic alertmanager-slack-webhook --from-literal webhookURL=SLACK_WEBHOOK_URL
kubectl apply -f extras/prometheus/oss/alertmanagerconfig.yaml
Ersetzen Sie SLACK_WEBHOOK_URL
durch die URL des Webhooks aus dem vorherigen Abschnitt.
Prometheus konfigurieren
Prüfen Sie das folgende Manifest:
Dieses Manifest beschreibt Prometheus-Aktivitätsprüfungen und enthält die folgenden Felder:
spec.jobName
: Der Jobname, der den extrahierten Messwerten zugewiesen ist.spec.prober.url
: die Dienst-URL des Blackbox-Exporters. Dazu gehört auch der Standardport für den Blackbox-Exporter, der im Helm-Diagramm definiert ist.spec.prober.path
: der Pfad der Messwerterfassung.spec.targets.staticConfig.labels
: die Labels, die allen Messwerten zugewiesen sind, die aus den Zielen extrahiert werden.spec.targets.staticConfig.static
: die Liste von zu prüfenden Hosts.
Wenden Sie das Manifest auf Ihren Cluster an:
kubectl apply -f extras/prometheus/oss/probes.yaml
Prüfen Sie das folgende Manifest:
Dieses Manifest beschreibt einen
PrometheusRule
und enthält die folgenden Felder:spec.groups.[*].name
: der Name der Regelgruppe.spec.groups.[*].interval
: wie oft Regeln in der Gruppe ausgewertet werden.spec.groups.[*].rules[*].alert
: der Name der Benachrichtigung.spec.groups.[*].rules[*].expr
: der PromQL-Ausdruck, der ausgewertet wird.spec.groups.[*].rules[*].for
: die Zeitspanne, in der Benachrichtigungen zurückgegeben werden müssen, bevor sie als ausgelöst gelten.spec.groups.[*].rules[*].annotations
: eine Liste von Annotationen, die jeder Benachrichtigung hinzugefügt werden sollen. Das gilt nur für Benachrichtigungsregeln.spec.groups.[*].rules[*].labels
: die Labels, die hinzugefügt oder überschrieben werden sollen.
Wenden Sie das Manifest auf Ihren Cluster an:
kubectl apply -f extras/prometheus/oss/rules.yaml
Ausfall simulieren
Simulieren Sie einen Ausfall, indem Sie das
contacts
-Deployment auf null skalieren:kubectl scale deployment contacts --replicas 0
In Ihrem Slack-Arbeitsbereich-Kanal sollten Sie eine Benachrichtigung sehen. Es kann bis zu fünf Minuten dauern, bis GKE das Deployment skaliert.
Stellen Sie das
contacts
-Deployment wieder her:kubectl scale deployment contacts --replicas 1
Im Slack-Arbeitsbereich-Kanal sollten Sie eine Benachrichtigung zur Auflösung sehen können. Die Skalierung der Bereitstellung kann in GKE bis zu 5 Minuten dauern.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
Löschen Sie die Kubernetes-Ressourcen:
kubectl delete -f kubernetes-manifests
Deinstallieren Sie Prometheus:
helm uninstall tutorial
Löschen Sie den GKE-Cluster:
gcloud container clusters delete CLUSTER_NAME --quiet
Nächste Schritte
- Google Cloud Managed Service for Prometheus ist eine vollständig verwaltete Lösung für globale Messwerte, die auf Prometheus basiert und standardmäßig in allen Autopilot-Clustern bereitgestellt wird.
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center