AWS-CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter erfassen

In diesem Dokument wird beschrieben, wie Sie den Open-Source-Prometheus CloudWatch-Exporter und den Ops-Agent, der auf einer Compute Engine-Instanz ausgefรผhrt wird, verwenden, um AWS CloudWatch-Messwerte zu erfassen und in einem Google Cloud -Projekt zu speichern.

Dieses Dokument richtet sich an Entwickler und Systemadministratoren, die AWS CloudWatch-Messwerte erfassen mรผssen. In diesem Dokument wird beschrieben, wie Sie den Prometheus CloudWatch-Exporter einrichten, um AWS CloudWatch-Messwerte zu erfassen.

Mit Cloud Monitoring kรถnnen Sie Ihre AWS-Messwerte im selben Kontext wie Ihre Google Cloud -Messwerte ansehen. Sie kรถnnen beispielsweise ein Dashboard mit Diagrammen erstellen, in denen die CPU-Auslastung Ihrer Amazon EC2-Instanzen und Ihrer Compute Engine-Instanzen angezeigt wird. Sie kรถnnen auch Benachrichtigungsrichtlinien erstellen, um Ihre AWS-Messwerte zu รผberwachen. Weitere Informationen finden Sie in den folgenden Abschnitten.

Hinweise

Zum Erfassen von AWS CloudWatch-Messwerten mit dem Prometheus CloudWatch-Exporter benรถtigen Sie Folgendes:

  • Ein Google Cloud -Projekt mit Berechtigungen fรผr Folgendes:
    • VM erstellen
    • Logs in Cloud Logging schreiben
    • Messwerte in Cloud Monitoring schreiben
  • Ein AWS-Konto mit AWS-Anmeldedaten, die vom Prometheus-Exporter zum Abrufen von Messwerten verwendet werden kรถnnen. Weitere Informationen finden Sie unter Prometheus-Exporter ausfรผhren.

Compute Engine-VM erstellen

Wir empfehlen, eine Linux-Compute Engine-VM zu erstellen, die speziell fรผr die Ausfรผhrung des Ops-Agent und des Prometheus CloudWatch-Exporters verwendet wird. Diese VM dient als Erfassungsort fรผr alle AWS-Messwerte.

  1. Fรผhren Sie den folgenden Befehl aus, um eine Debian Linux-VM mit dem Namen aws-exporter-test in einer von Ihnen angegebenen Zone zu erstellen:

    gcloud compute instances create \
      --image-project debian-cloud \
      --image-family debian-11 \
      --zone ZONE \
      aws-exporter-test
    

    Konfigurieren Sie den Befehl so:

    • Ersetzen Sie ZONE durch die Zone fรผr Ihre neue VM.
    • Optional. Ersetzen Sie aws-exporter-test durch einen anderen Namen fรผr Ihre VM.

    Weitere Informationen zu diesem Befehl finden Sie in der Referenz zu gcloud compute instances create.

  2. Mit dem folgenden Befehl kรถnnen Sie auf Ihre VM zugreifen, um den Prometheus CloudWatch-Exporter und den Ops-Agent zu installieren:

    gcloud compute ssh --zone ZONE  --project PROJECT_ID  aws-exporter-test
    

    Konfigurieren Sie den Befehl so:

    • Ersetzen Sie ZONE durch die Zone, in der Sie Ihre VM erstellt haben.
    • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud Projekts.
    • Ersetzen Sie aws-exporter-test, wenn Sie Ihre VM mit einem anderen Namen erstellt haben.

    Weitere Informationen zu diesem Befehl finden Sie in der Referenz zu gcloud compute ssh.

Prometheus CloudWatch-Exporter einrichten

In den folgenden Abschnitten wird beschrieben, wie Sie den Prometheus CloudWatch-Exporter auf Ihrer Compute Engine-VM herunterladen, installieren und konfigurieren.

Prometheus-Exporter und JRE herunterladen

Um den Prometheus CloudWatch Exporter auszufรผhren, mรผssen Sie den Exporter und die Java-Laufzeitumgebung (JRE) in Version 11 oder hรถher herunterladen.

  1. Fรผhren Sie den folgenden Befehl auf Ihrer Compute Engine-Instanz aus, um die JAR-Datei mit dem Prometheus CloudWatch Exporter herunterzuladen:

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. Verwenden Sie zum Installieren der JRE einen Befehl wie den folgenden:

    sudo apt install default-jre
    

Prometheus-Exporter konfigurieren

Um den Prometheus CloudWatch-Exporter zu konfigurieren, erstellen Sie eine Konfigurationsdatei fรผr den oder die AWS-Dienste, aus denen Sie Messwerte erfassen mรถchten. Allgemeine Informationen finden Sie in der Konfigurationsdokumentation des Prometheus CloudWatch-Exporters.

  • Nutzer migrieren: Wenn Sie Ihre vorhandenen AWS CloudWatch-Messwerte zum Prometheus CloudWatch-Exporter migrieren, kรถnnen Sie die Konfigurationsdateien in Prometheus CloudWatch-Exporter-Konfigurationen fรผr die Migration verwenden. Diese Konfigurationsdateien sind so konzipiert, dass die vorhandenen Messwerte so genau wie mรถglich repliziert werden. Sie erfassen jedoch nicht alle Messwerte, die mit dem Prometheus CloudWatch-Exporter fรผr die AWS-Dienste verfรผgbar sind.

  • Neue Nutzer: Wenn Sie keine vorhandenen Messwerte migrieren, empfehlen wir, die Migrationskonfigurationen nicht zu verwenden. Informationen zum Definieren von Exporterkonfigurationen fรผr andere Dienste finden Sie in der Dokumentation zum AWS CloudWatch-Dienst. Weitere Beispiele finden Sie auch im GitHub-Repository fรผr den Prometheus CloudWatch-Exporter.

Sie kรถnnen die Konfiguration fรผr mehrere AWS-Dienste in einer Konfigurationsdatei zusammenfassen. In den Beispielen in diesem Dokument wird davon ausgegangen, dass Ihre Konfigurationsdatei den Namen config.yml hat.

Prometheus-Exporter ausfรผhren

Bevor Sie den Prometheus CloudWatch-Exporter ausfรผhren kรถnnen, mรผssen Sie ihm Anmeldedaten und eine Autorisierung zur Verfรผgung stellen. Der Prometheus CloudWatch-Exporter verwendet das AWS Java SDK, das Mรถglichkeiten bietet, Anmeldedaten รผber die folgenden Umgebungsvariablen anzugeben:

Weitere Informationen zum Bereitstellen von Anmeldedaten fรผr das SDK finden Sie unter AWS SDK for Java 2.x.

Sie benรถtigen auรŸerdem die Berechtigung, die CloudWatch API zum Abrufen von Messwerten zu verwenden. Dazu sind die folgenden AWS IAM-CloudWatch-Berechtigungen erforderlich:

  • cloudwatch:ListMetrics
  • cloudwatch:GetMetricStatistics
  • cloudwatch:GetMetricData

Fรผr die Verwendung des aws_tag_select-Features ist auch die AWS IAM-Berechtigung tag:GetResources erforderlich.

Weitere Informationen zum Autorisieren des Zugriffs auf AWS-Dienste finden Sie unter AWS Identity and Access Management.

So fรผhren Sie den Prometheus CloudWatch-Exporter aus:

  1. Um Anmeldedaten fรผr den Exporter anzugeben, legen Sie die Umgebungsvariablen fรผr den Zugriffsschlรผssel fest:

    export AWS_ACCESS_KEY=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
    export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN
    

    Ersetzen Sie die Variablen YOUR_KEY durch Ihre Zugriffsschlรผssel. Sie mรผssen die Umgebungsvariable AWS_SESSION_TOKEN nur festlegen, wenn Sie temporรคre Anmeldedaten verwenden.

  2. Fรผhren Sie den folgenden Befehl aus, um Ihre Konfiguration zu testen:

    java -jar cloudwatch_exporter-0.15.1-jar-with-dependencies.jar 9106 config.yml
    

    ร„ndern Sie bei Bedarf die Werte fรผr Port (9106) und Konfigurationsdatei (config.yml).

    Wenn Sie Ihre config.yml-Datei รคndern, wรคhrend der Exporter ausgefรผhrt wird, kรถnnen Sie den Exporter mit dem folgenden Befehl neu laden:

    curl -X POST localhost:9106/-/reload
    

    Fรผr die Verwendung in einer Produktionsumgebung kรถnnen Sie den Exporter so konfigurieren, dass er neu gestartet wird, wenn die VM neu gestartet wird. Auf Debian-Systemen kรถnnen Sie beispielsweise den System- und Dienstmanager systemd verwenden.

Ops-Agent einrichten

In den folgenden Abschnitten wird beschrieben, wie Sie den Ops-Agent installieren, konfigurieren und starten. Diese Abschnitte enthalten minimale Einrichtungsinformationen fรผr den Ops-Agent zur Verwendung mit dem Prometheus CloudWatch-Exporter. Weitere Informationen zu diesen Themen finden Sie in der รœbersicht zum Ops-Agent.

Ops-Agent installieren

Verwenden Sie die folgenden Befehle, um den Ops-Agent zu installieren. Damit laden Sie das Installationsskript des Agents herunter und fรผhren es aus:

curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

Ops-Agent konfigurieren

Wenn Sie den Ops-Agent konfigurieren mรถchten, fรผgen Sie der Nutzerkonfigurationsdatei des Agents Konfigurationselemente hinzu. Unter Linux ist die Nutzerkonfigurationsdatei /etc/google-cloud-ops-agent/config.yaml.

Wenn Sie den Ops-Agent so konfigurieren, dass er AWS-Messwerte aus dem Prometheus CloudWatch-Exporter erfasst, verwenden Sie den Prometheus-Empfรคnger des Agents. In diesem Dokument werden zwei grundlegende Konfigurationen fรผr den Ops-Agent beschrieben. Wรคhlen Sie eine der Konfigurationen aus und fรผgen Sie sie der Datei โ€žuser-configurationโ€œ hinzu:

sudo vim /etc/google-cloud-ops-agent/config.yaml

Grundkonfiguration fรผr den Ops-Agent

Die folgende Konfiguration ist eine minimale Konfiguration fรผr den Ops-Agent. Diese Konfiguration hat folgende Auswirkungen:

  • Erstellt einen Empfรคnger mit dem Namen aws vom Typ prometheus. Der Empfรคnger ist so konfiguriert, dass Messwerte aus dem aws_exporter-Job extrahiert werden. Der angegebene Port muss mit dem Port รผbereinstimmen, รผber den der Prometheus CloudWatch-Exporter Messwerte exportiert. Weitere Informationen finden Sie unter Prometheus-Exporter ausfรผhren.

  • Erstellt eine Pipeline mit dem Namen aws_pipeline, die den aws-Messwertempfรคnger verwendet.

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Konfiguration, bei der JVM-Messwerte verworfen werden

Die folgende Konfiguration fรผhrt alle Aktionen der grundlegenden Konfiguration aus, fรผgt aber auch eine Konfiguration zum Neuzuweisen von Labels hinzu, mit der die vom Exporter generierten JVM-Messwerte verworfen werden. Wenn Sie diese Messwerte entfernen, werden weniger Messwertdaten aufgenommen. Es kann jedoch schwieriger werden, Probleme mit dem Exporter zu beheben, da Sie nicht die eigenen Messwerte des Exporters erhalten:

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
            # Drop the exporter's own JVM metrics to reduce noise.
            metric_relabel_configs:
              - source_labels: [ __name__ ]
                regex: 'jvm_.*'
                action: drop
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Sie kรถnnen viel komplexere Konfigurationen fรผr den Ops-Agent erstellen.

Ops-Agent neu starten

Sie mรผssen den Ops-Agent neu starten, damit Konfigurationsรคnderungen wirksam werden.

  1. Fรผhren Sie den folgenden Befehl auf der Instanz aus, um den Agent neu zu starten:
    sudo service google-cloud-ops-agent restart
    
  2. Fรผhren Sie den folgenden Befehl aus, um zu รผberprรผfen, ob der Agent neu gestartet wurde. Prรผfen Sie dann, ob die Komponenten โ€žMetrics-Agentโ€œ und โ€žLogging-Agentโ€œ gestartet wurden:
    sudo systemctl status google-cloud-ops-agent"*"
    

Messwerte in Cloud Monitoring ansehen

In Cloud Monitoring kรถnnen Sie Ihre AWS CloudWatch-Messwerte abfragen und Diagramme erstellen, wie Sie es fรผr alle anderen Messwerte tun. In der Metrics Explorer-Oberflรคche kรถnnen Sie PromQL oder eine Oberflรคche zum Erstellen von Abfragen verwenden. Weitere Informationen finden Sie unter Diagramme mit dem Metrics Explorer erstellen.

Wenn Sie Diagramme erstellt haben, die Sie behalten mรถchten, kรถnnen Sie sie in benutzerdefinierten Dashboards speichern. Weitere Informationen finden Sie unter Dashboards โ€“ รœbersicht.

Das folgende Diagramm zeigt eine PromQL-Abfrage fรผr den Messwert aws_ec2_cpuutilization_sum fรผr AWS-VMs:

Das Diagramm zeigt das Ergebnis des Abrufens der Statistik โ€žaws_ec2_cpuutilization_sumโ€œ fรผr AWS-VMs mit PromQL.

Weitere Informationen zur Verwendung von PromQL in Cloud Monitoring finden Sie unter PromQL fรผr Cloud Monitoring.

Benachrichtigung zu Messwertverhalten

In Cloud Monitoring kรถnnen Sie Benachrichtigungsrichtlinien erstellen, um Ihre AWS CloudWatch-Messwerte zu รผberwachen und sich รผber Spitzen, Einbrรผche oder Trends bei Messwertwerten benachrichtigen zu lassen.

Mehrere Regionen รผberwachen

Die Konfiguration des Prometheus CloudWatch-Exporters unterstรผtzt nur die Verwendung einer Region pro Konfigurationsdatei. Wenn Sie mehrere Regionen รผberwachen mรผssen, empfehlen wir, mehrere Instanzen des Prometheus-Exporters auszufรผhren, wobei jede Instanz fรผr eine der zu รผberwachenden Regionen konfiguriert ist. Sie kรถnnen mehrere Exporter auf einer einzelnen VM ausfรผhren oder sie auf mehrere VMs verteilen. Die Docker-Images fรผr den Prometheus-Exporter kรถnnen in dieser Situation hilfreich sein.

Sie kรถnnen den Ops-Agent, der auf der Compute Engine-VM ausgefรผhrt wird, so konfigurieren, dass er mehrere Prometheus-Endpunkte extrahiert. Wenn Sie mehrere Instanzen des Prometheus-Exporters konfigurieren, empfehlen wir, fรผr jede Instanz einen anderen job-Namen fรผr die Scrape-Konfiguration zu verwenden, damit Sie die Exporter-Instanzen unterscheiden kรถnnen, falls Sie Fehler beheben mรผssen.

Informationen zum Konfigurieren des Ops-Agents und des Prometheus-Receivers finden Sie unter Ops-Agent konfigurieren.

Kosten

Amazon berechnet jede CloudWatch API-Anfrage oder jeden CloudWatch-Messwert, den Sie anfordern. Die aktuellen Preise finden Sie unter Amazon CloudWatch-Preise. Der Prometheus CloudWatch-Exporter hat die folgenden Abfrageeigenschaften, die sich auf Ihre Amazon-Kosten auswirken kรถnnen:

  • Bei Verwendung der Methode GetMetricStatistics (Standard) ist fรผr jeden Messwert eine API-Anfrage erforderlich. Jede Anfrage kann mehrere Statistiken enthalten.
  • Bei Verwendung von aws_dimensions muss der Exporter API-Anfragen ausfรผhren, um zu ermitteln, welche Messwerte angefordert werden sollen. Die Anzahl der Dimensionsanfragen ist in der Regel im Vergleich zur Anzahl der Messwertanfragen vernachlรคssigbar.

In Cloud Monitoring fallen Gebรผhren fรผr AWS CloudWatch-Messwerte aus dem Prometheus-Exporter basierend auf der Anzahl der aufgenommenen Stichproben an. Die aktuellen Preise finden Sie auf der Seite Preise fรผr Google Cloud Observability in den Abschnitten zu Cloud Monitoring.

Konfigurationen des Prometheus CloudWatch-Exporters fรผr die Migration

In diesem Abschnitt finden Sie Konfigurationen, die die in der Liste der AWS-Messwerte dokumentierten AWS-Dienstmesswerte so genau wie mรถglich nachbilden. Diese Konfigurationsdateien sind fรผr Kunden vorgesehen, die von der alten Lรถsung zum Prometheus CloudWatch-Exporter migrieren. Wenn Sie den Prometheus CloudWatch-Exporter als neuer Nutzer und nicht als migrierender Nutzer einrichten und diese Konfigurationen verwenden, erfassen Sie nicht alle AWS-Messwerte, die der Prometheus CloudWatch-Exporter zur Verfรผgung stellt.

Wenn Sie eine Beispielkonfigurationsdatei fรผr AWS CloudWatch-Messwerte aufrufen mรถchten, maximieren Sie einen der folgenden Abschnitte.