AWS CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter erfassen

In diesem Dokument wird beschrieben, wie Sie mit dem Open-Source-Prometheus CloudWatch-Exporter und dem Ops-Agent, der auf einer Compute Engine-Instanz ausgeführt wird, AWS CloudWatch-Messwerte erfassen und in einem Google Cloud-Projekt speichern. Dieses Dokument richtet sich an folgende Zielgruppen:

  • 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.
  • Nutzer von AWS CloudWatch-Messwerten mit AWS-Connector-Projekten, die zum Prometheus CloudWatch-Exporter migriert werden. Dieses Dokument enthält auch Informationen zur Migration vom Erfassen von Legacy-AWS CloudWatch-Messwerten in Connector-Projekten.

Mit Cloud Monitoring können Sie Ihre AWS-Messwerte im selben Kontext wie Ihre Google Cloud-Messwerte aufrufen. Sie können beispielsweise ein Dashboard mit Diagrammen erstellen, in denen die CPU-Auslastung für Ihre Amazon EC2-Instanzen und für Ihre Compute Engine-Instanzen dargestellt wird. Sie können auch Benachrichtigungsrichtlinien erstellen, um Ihre AWS-Messwerte zu überwachen. Weitere Informationen finden Sie in den folgenden Abschnitten:

Hinweise

Sie benötigen Folgendes, um AWS CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter zu erfassen:

  • Ein Google Cloud-Projekt mit Berechtigungen für folgende Aktionen:
    • 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 Sie speziell zum Ausführen des Ops-Agent und des Prometheus CloudWatch-Exporters verwenden. Diese VM fungiert 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 die neue VM.
    • Optional. Ersetzen Sie aws-exporter-test durch einen anderen Namen für die 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 die VM erstellt haben.
    • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts
    • Ersetzen Sie aws-exporter-test, wenn Sie die 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

Wenn Sie den Prometheus CloudWatch Exporter ausführen möchten, 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. Zum Installieren der JRE können Sie einen Befehl wie den folgenden verwenden:

    sudo apt install default-jre
    

Prometheus-Exporter konfigurieren

Zum Konfigurieren des Prometheus CloudWatch-Exporters erstellen Sie eine Konfigurationsdatei für den AWS-Dienst oder die Dienste, von denen Sie Messwerte erfassen möchten. Allgemeine Informationen finden Sie in der Konfigurationsdokumentation für den Prometheus CloudWatch Exporter.

  • Nutzer migrieren: Wenn Sie Ihre vorhandenen AWS CloudWatch-Messwerte zum Prometheus CloudWatch Exporter migrieren, können Sie die Konfigurationsdateien in den Prometheus CloudWatch-Exporter-Konfigurationen für die Migration verwenden. Diese Konfigurationsdateien sind darauf ausgelegt, die vorhandenen Messwerte so genau wie möglich zu replizieren. Dabei werden jedoch nicht alle Messwerte erfasst, 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 im GitHub-Repository des Prometheus CloudWatch Exporter.

Sie können die Konfiguration für mehrere AWS-Dienste in einer Konfigurationsdatei kombinieren. Bei 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 dem Exporter Anmeldedaten und eine Autorisierung bereitstellen. Der Prometheus CloudWatch-Exporter verwendet das AWS Java SDK, das Möglichkeiten zur Bereitstellung von Anmeldedaten mithilfe der folgenden Umgebungsvariablen bietet:

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

Außerdem benötigen Sie die Berechtigung zur Verwendung der CloudWatch API zum Abrufen von Messwerten. Außerdem benötigen Sie die folgenden CloudWatch-Berechtigungen für AWS IAM:

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

Für die Verwendung des Features aws_tag_select ist außerdem 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. Legen Sie die Umgebungsvariablen für den Zugriffsschlüssel fest, um Anmeldedaten für den Exporter bereitzustellen:

    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 YOUR_KEY-Variablen durch Ihre Zugriffsschlüssel. Sie müssen die Umgebungsvariable AWS_SESSION_TOKEN nur festlegen, wenn Sie temporäre Anmeldedaten verwenden.

  2. Starten Sie den Exporter und laden Sie die Konfigurationsdatei, um Ihre Konfiguration zu testen. Führen Sie dazu den folgenden Befehl aus:

    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 die Datei config.yml ändern, während der Exporter ausgeführt wird, können Sie ihn mit dem folgenden Befehl neu laden:

    curl -X POST localhost:9106/-/reload
    

    Zur Verwendung in einer Produktionsumgebung können Sie den Exporter so konfigurieren, dass er bei einem Neustart der 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 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 über den Ops-Agent.

Ops-Agent installieren

Verwenden Sie zum Installieren des Ops-Agent die folgenden Befehle, um das Installationsskript des Agents herunterzuladen und auszuführen:

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

Zum Konfigurieren des Ops-Agent 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 AWS-Messwerte aus dem Prometheus CloudWatch-Exporter erfasst werden, verwenden Sie den Prometheus-Empfänger des Agents. In diesem Dokument werden zwei Grundkonfigurationen für den Ops-Agent beschrieben. Wählen Sie eine der Konfigurationen aus und fügen Sie sie der Nutzerkonfigurationsdatei hinzu:

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

Grundlegende Konfiguration für den Ops-Agent

Die folgende Konfiguration bietet eine Mindestkonfiguration für den Ops-Agent. Diese Konfiguration bewirkt Folgendes:

  • Erstellt einen Empfänger mit dem Namen aws vom Typ prometheus. Der Empfänger ist so konfiguriert, dass Messwerte aus dem Job aws_exporter 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-Empfänger des Messwerts 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 gelöscht werden

Die folgende Konfiguration übernimmt dieselben Aufgaben wie die grundlegende Konfiguration. Sie fügt jedoch auch eine Konfiguration für die Umbenennung hinzu, mit der die vom Exporter generierten JVM-Messwerte gelöscht werden. Werden diese Messwerte gelöscht, verringert sich die Anzahl der aufgenommenen Messwertdaten. Es kann jedoch die Fehlerbehebung für den Exporter erschweren, 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 wesentlich komplexere Konfigurationen für den Ops-Agent erstellen.

Ops-Agent neu starten

Wenn Sie Konfigurationsänderungen auf den Ops-Agent anwenden möchten, müssen Sie ihn neu starten.

  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 wie für alle anderen Messwerte auch Ihre AWS CloudWatch-Messwerte abfragen und Diagramme erstellen. Über den Metrics Explorer können Sie PromQL, Monitoring Query Language (MQL) oder eine Query Builder-Oberfläche verwenden. Weitere Informationen finden Sie unter Diagramme mit dem Metrics Explorer erstellen.

Wenn Sie Diagramme erstellt haben, die Sie beibehalten möchten, können Sie sie in benutzerdefinierten Dashboards speichern. Weitere Informationen finden Sie in der Übersicht über Dashboards.

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 mithilfe von PromQL.

Sie können mit PromQL jeden Messwert in Cloud Monitoring abfragen. Weitere Informationen finden Sie unter Cloud Monitoring-Messwerte zu PromQL zuordnen.

Sie können Prometheus-Messwerte mit PromQL oder mit Cloud Monitoring-Tools wie Monitoring Query Language (MQL) abfragen. Wenn Prometheus-Messwerte in Cloud Monitoring aufgenommen werden, wird jeder Messwert mithilfe der standardmäßigen OpenTelemetry-to-Prometheus-Transformation transformiert und dem überwachten Ressourcentyp prometheus_target von Cloud Monitoring zugeordnet. Die Transformation umfasst die folgenden Änderungen:

  • Dem Messwertnamen wird das Präfix prometheus.googleapis.com/ vorangestellt.
  • Alle nicht alphanumerischen Zeichen wie Punkte (.) im Messwertnamen werden durch Unterstriche (_) ersetzt.
  • Der Messwertname wird mit einem String versehen, der die Messwertart angibt, z. B. /gauge oder /counter.

Wenn Sie den Prometheus-Messwert aws_ec2_cpuutilization_sum mithilfe von MQL abfragen möchten, geben Sie den Messwert als prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge an und geben Sie den Typ der überwachten Ressource prometheus_target an:

fetch prometheus_target :: 'prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge'

Das folgende Diagramm zeigt das Ergebnis der MQL-Abfrage für den Prometheus-Messwert aws_ec2_cpuutilization_sum:

Das Diagramm zeigt das Ergebnis des Abrufens der Statistik „aws_ec2_cpuutilization_sum“ für AWS-VMs mithilfe von MQL.

Benachrichtigung zum Messwertverhalten

In Cloud Monitoring können Sie [Benachrichtigungsrichtlinien][alert-intro] erstellen, um Ihre AWS CloudWatch-Messwerte zu überwachen und Sie über Spitzen, Einbrüche oder Trends bei Messwerten zu informieren.

Mehrere Regionen überwachen

In der Konfiguration des Prometheus CloudWatch-Exporters kann nur eine Region pro Konfigurationsdatei verwendet werden. Wenn Sie mehrere Regionen überwachen müssen, sollten Sie mehrere Instanzen des Prometheus-Exporters ausführen, eine für jede zu überwachende Region konfiguriert. Sie können mehrere Exporter auf einer einzelnen VM ausführen oder auf VMs verteilen. Die Docker-Images des Prometheus-Exporters können in dieser Situation nützlich sein.

Sie können den Ops-Agent, der auf der Compute Engine-VM ausgeführt wird, so konfigurieren, dass er mehrere Prometheus-Endpunkte erfasst. Wir empfehlen, bei der Konfiguration mehrerer Instanzen des Prometheus-Exporters für jede einen anderen job-Namen für die Extraktionskonfiguration zu verwenden, damit Sie die Exporter-Instanzen unterscheiden können, wenn Sie Fehler beheben müssen.

Informationen zum Konfigurieren des Ops-Agents und des Prometheus-Empfängers finden Sie unter Ops-Agent konfigurieren.

Kosten

Amazon erhebt Gebühren für jede CloudWatch API-Anfrage oder jeden angeforderten CloudWatch-Messwert. 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:

  • Wenn Sie die Methode GetMetricStatistics (Standard) verwenden, 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 bestimmen, welche Messwerte angefordert werden sollen. Die Anzahl der Dimensionsanfragen ist im Vergleich zur Anzahl der Messwertanfragen in der Regel vernachlässigbar.

In Cloud Monitoring werden die AWS CloudWatch-Messwerte des Prometheus-Exporters nach der Anzahl der aufgenommenen Stichproben berechnet. Die aktuellen Preise finden Sie in der Preisübersicht für Monitoring.

Migrationsanleitung

Dieser Abschnitt enthält zusätzliche Informationen für Kunden, die von den Legacy-AWS CloudWatch-Messwerten mit AWS-Connector-Projekten zur Prometheus CloudWatch-Exporterlösung migrieren.

Wenn Sie nicht von der Legacy-Lösung zum Prometheus CloudWatch Exporter migrieren, können Sie diesen Abschnitt überspringen.

Legacy-AWS CloudWatch-Messwerte den Prometheus CloudWatch Exporter-Messwerten zuordnen

In diesem Abschnitt wird beschrieben, wie die Legacy-AWS CloudWatch-Messwerte den vom Prometheus CloudWatch-Exporter erfassten Messwerten zugeordnet werden. Als Beispiel wird der AWS CloudWatch-Messwert CPUUtilization verwendet.

Der Messwert CPUUtilization misst den Prozentsatz der physischen CPU-Zeit, die Amazon EC2 zum Ausführen der Instanz verwendet, einschließlich der Zeit, in der Nutzercode und Amazon EC2-Code ausgeführt wurden. Im Allgemeinen ist der Messwert die Summe der Gast-CPU-Auslastung und der Hypervisor-CPU-Auslastung.

Die Legacy-Lösung meldet diese Daten mithilfe der folgenden Messwerte an Cloud Monitoring:

Die Messwerte für Werte wie „Durchschnitt“ und „Maximum“ stellen die CloudWatch-Statistiken dar, die für den Messwert aussagekräftig sind. Jeder Wert meldet eine andere Aggregation des AWS CPUUtilization-Messwerts. Diese Messwerte werden in Bezug auf den Typ aws_ec2_instance der überwachten Ressource geschrieben. Der Wert des Ressourcenlabels instance_id ist die Kennung für die Amazon EC2-Instanz, die den Messwert schreibt.

Wenn Sie den Prometheus CloudWatch-Exporter und den Ops-Agent verwenden, werden die Messwerte so gemeldet:

  • aws_ec2_cpuutilization_average
  • aws_ec2_cpuutilization_maximum
  • aws_ec2_cpuutilization_minimum
  • aws_ec2_cpuutilization_samplecount
  • aws_ec2_cpuutilization_sum

Diese Messwerte entsprechen den aws.googleapis.com/EC2/CPUUtilization/Statistic-Messwerten, die von der Legacy-Lösung erfasst wurden. Diese Messwerte werden in Bezug auf den Typ prometheus-target der überwachten Ressource geschrieben.

Die Werte der Labels in der Ressource prometheus-target spiegeln die Compute Engine-VM wider, auf der der Prometheus CloudWatch-Exporter ausgeführt wird, nicht die Werte der Amazon EC2-Instanz. Die Werte der Labels für den Messwert werden vom Prometheus-Exporter festgelegt. Bei den Messwerten aws_ec2_cpuutilization_statistic wird die Instanz-ID der Amazon EC2-Instanz im Messwertlabel instance_id beibehalten. Der folgende Screenshot zeigt eine PromQL-Abfrage, in der der Messwert aws_ec2_cpuutilization_sum dargestellt wird. Die Tabelle enthält die Werte der ausgewählten Labels:

Die Tabelle zeigt den Wert des Labels „intance_id“ für einen EC2-Messwert.

Wenn Sie eine der bereitgestellten Prometheus CloudWatch-Exporter-Konfigurationen für die Migration verwenden, aber zusätzliche Dimensionen oder Statistiken für die Messwerte erfassen möchten, können Sie die Konfiguration ändern. Weitere Informationen finden Sie in der Konfigurationsdokumentation für den Prometheus CloudWatch Exporter.

Dashboards und Benachrichtigungsrichtlinien neu erstellen

Vorhandene Dashboards und Benachrichtigungsrichtlinien, die die alten AWS CloudWatch-Messwerte verwenden, funktionieren nicht für Messwerte, die mit dem Prometheus CloudWatch-Exporter aufgenommen wurden. Dies ist eine funktionsgefährdende Änderung.

Damit Sie in Ihren AWS-Systemen dieselbe Beobachtbarkeit erhalten, müssen Sie Ihre Dashboards und Benachrichtigungsrichtlinien so neu erstellen, dass die vom Prometheus-Exporter erfassten Messwerte verwendet werden.

Verlust von Metadaten

Die Legacy-Lösung erfasste nicht nur AWS CloudWatch-Messwerte, sondern auch Metadaten aus dem Legacy-Monitoring-Agent und dem Legacy-Logging-Agent, der auf Amazon Elastic Compute Cloud-Instanzen (Amazon EC2) ausgeführt wurde. Diese Ressourcenmetadaten wurden mit den Messwerten in Cloud Monitoring verknüpft und wurden als Labels für System- oder Nutzermetadaten wie Instanzname, Verfügbarkeitszone, Maschinentyp usw. angezeigt.

Der Prometheus CloudWatch-Exporter erfasst möglicherweise nicht dieselben Metadaten. Wenn Sie einen der Legacy-Agents auf Amazon EC2-VM-Instanzen verwenden, wird in den folgenden Abschnitten beschrieben, wie Sie den Prometheus-Exporter verwenden können, um die fehlenden Metadaten zu erfassen und mit den vom Prometheus-Exporter erfassten Messwerten zu verknüpfen:

Nach dem 21. August 2024, wenn die Legacy-CloudWatch-Lösung von AWS vollständig eingestellt wurde, sind diese Metadatenlabels nicht mehr verfügbar. Messwert- und aws_ec2_instance-Ressourcenlabels sind nicht betroffen.

Für Nutzer des Legacy-Monitoring-Agents auf Amazon EC2-Instanzen

Wenn Sie die AWS-Metadaten in Ihren Diagrammen und Abfragen verwenden und diese verwalten möchten, können Sie sie mit dem Prometheus CloudWatch-Exporter erfassen. Erstellen Sie eine Compute Engine-VM und richten Sie den Prometheus CloudWatch-Exporter und den Ops-Agent ein, wie in diesem Dokument beschrieben. Verwenden Sie beim Konfigurieren des Prometheus CloudWatch-Exporters die Konfigurationsdatei ec2.yml.

Die Konfigurationsdatei ec2.yml verwendet das Feature aws_tag_select. Wenn in der Konfiguration das Feature aws_tag_select verwendet wird, exportiert der Prometheus CloudWatch-Exporter einen Messwert mit dem Namen aws_resource_info. Der Messwert aws_resource_info meldet eine Zeitachse mit Metadaten der AWS-Ressource in den Messwertlabels. Diese Metadaten umfassen alle Amazon EC2-Instanz-Tags, einschließlich Instanzname, im Label tag_Name.

Wenn Sie zusätzliche Metadaten erfassen möchten, können Sie diese Metadaten mithilfe von Instanztags auf der Amazon EC2-Instanz hinzufügen. Weitere Informationen finden Sie unter EC2-Instanz-Tags hinzufügen oder entfernen. Der vom Prometheus-Exporter gemeldete Messwert aws_resource_info enthält die zusätzlichen Metadaten.

Anschließend können Sie die Metadatenlabels des Messwerts aws_resource_info mit den Messwerten des Typs „Self“ aus dem Legacy-Monitoring-Agent oder beliebigen Amazon EC2-Messwerten verknüpfen, indem Sie MQL für PromQL verwenden.

MQL-Join

Die folgende MQL-Abfrage verknüpft beispielsweise den Agent-Selbstmesswert agent.googleapis.com/agent/uptime, der mit dem Ressourcentyp aws_ec2_instance geschrieben wurde, mit dem Messwert aws_resource_info des Prometheus CloudWatch-Exporters, der für den Ressourcentyp prometheus-target geschrieben wurde:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

Die beiden Messwerte werden auf dem Label instance_id zusammengeführt, sodass der Name der VM – der Wert des Labels metric.tag_Name im Messwert aws_resource_info – dem Ergebnis des Joins hinzugefügt werden kann. Der Selbstmesswert uptime des Agents enthält das Ressourcenlabel region. Der Join mit dem Label region funktioniert, weil AWS nicht angibt, ob Instanz-IDs regional oder global eindeutig sein müssen.

Weitere Informationen zu MQL finden Sie unter Übersicht über Monitoring Query Language.

PromQL-Join

Das folgende Beispiel zeigt eine PromQL-Abfrage, bei der der Messwert aws_ec2_cpuutilization_average aus dem Prometheus CloudWatch-Exporter zusammengeführt wird. Das folgende Beispiel zeigt eine PromQL-Abfrage, bei der der Messwert aws_ec2_cpuutilization_average aus dem Prometheus CloudWatch-Exporter mit dem Metadatenmesswert aws_resource_info zusammengeführt wird. Die Messwerte werden über das Label instance_id zusammengeführt, um den VM-Namen hinzuzufügen – aus dem Label tag_Name des Metadatenmesswerts zum Abfrageergebnis.

  aws_ec2_cpuutilization_average
* on(instance_id) group_left(tag_Name)
  aws_resource_info

Für Nutzer des Legacy-Logging-Agent auf Amazon EC2-Instanzen

Der Legacy-Logging-Agent google-fluentd meldet seine Metadaten direkt an Cloud Logging. Daher hat die Einstellung der AWS CloudWatch-Messwertlösung mit dem Legacy-Monitoring-Agent keine Auswirkungen auf die vom Logging-Agent erfassten Logs.

Der Legacy-Logging-Agent meldet jedoch einige Messwerte zu sich selbst. Wenn Sie diesen Selbstmesswerten Metadaten hinzufügen möchten, können Sie eine Compute Engine-VM erstellen und den Prometheus CloudWatch-Exporter und den Ops-Agent wie in diesem Dokument beschrieben einrichten. Verwenden Sie beim Konfigurieren des Prometheus CloudWatch-Exporters die Konfigurationsdatei ec2.yml.

Möglicherweise müssen Sie auch die Konfiguration des Legacy-Logging-Agent ändern. Das Ausgabe-Plug-in für den Legacy-Logging-Agent unterstützt die Option use_aws_availability_zone für AWS. Diese Option muss auf false gesetzt sein, damit der Agent das Label region anstelle des Labels availability_zone schreibt. Informationen zum Speicherort der Plug-in-Konfigurationsdatei finden Sie unter Google Cloud fluentd-Ausgabe-Plug-in-Konfiguration.

Die Konfigurationsdatei ec2.yml verwendet das Feature aws_tag_select. Wenn in der Konfiguration das Feature aws_tag_select verwendet wird, exportiert der Prometheus CloudWatch-Exporter einen Messwert mit dem Namen aws_resource_info. Der Messwert aws_resource_info meldet eine Zeitachse mit Metadaten der AWS-Ressource in den Messwertlabels. Diese Metadaten umfassen alle Amazon EC2-Instanz-Tags, einschließlich Instanzname, im Label tag_Name.

Wenn Sie zusätzliche Metadaten erfassen möchten, können Sie diese Metadaten mithilfe von Instanztags auf der Amazon EC2-Instanz hinzufügen. Weitere Informationen finden Sie unter EC2-Instanz-Tags hinzufügen oder entfernen. Der vom Prometheus-Exporter gemeldete Messwert aws_resource_info enthält die zusätzlichen Metadaten.

Anschließend können Sie die Metadatenlabels aus dem Messwert aws_resource_info mit den Self-Messwerten aus dem Legacy-Logging-Agent über MQL verknüpfen. Die folgende MQL-Abfrage verknüpft beispielsweise den Agent-Selbstmesswert agent.googleapis.com/agent/uptime, der mit dem Ressourcentyp aws_ec2_instance geschrieben wurde, mit dem Messwert aws_resource_info des Prometheus CloudWatch-Exporters, der für den Ressourcentyp prometheus-target geschrieben wurde:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

Die beiden Messwerte werden auf dem Label instance_id zusammengeführt, sodass der Name der VM – der Wert des Labels metric.tag_Name im Messwert aws_resource_info – dem Ergebnis des Joins hinzugefügt werden kann. Der Selbstmesswert uptime des Agents enthält das Ressourcenlabel region. Der Join mit dem Label region funktioniert, weil AWS nicht angibt, ob Instanz-IDs regional oder global eindeutig sein müssen.

Weitere Informationen zu MQL finden Sie unter Übersicht über Monitoring Query Language.

Alte Messwerte in Ihrem AWS-Konto deaktivieren

Beim Erstellen des AWS-Connector-Projekts in Ihrem Google Cloud-Projekt haben Sie eine AWS IAM-Rolle erstellt, die Google Cloud Lesezugriff auf Ihr AWS-Konto gewährt. Entfernen Sie diese Rolle, um die Legacy-AWS-CloudWatch-Messwerte in der AWS-Konsole zu deaktivieren. Weitere Informationen finden Sie unter IAM-Rolle löschen (Konsole).

Prometheus CloudWatch-Exporter-Konfigurationen für die Migration

In diesem Abschnitt werden Konfigurationen beschrieben, mit denen die in der Liste der AWS-Messwerte dokumentierten AWS-Dienstmesswerte so genau wie möglich repliziert werden. Diese Konfigurationsdateien sind für Kunden vorgesehen, die von der Legacy-Lösung zum Prometheus CloudWatch-Exporter migrieren. Wenn Sie den Prometheus CloudWatch-Exporter als neuen Nutzer und nicht als migrierenden Nutzer einrichten und diese Konfigurationen verwenden, werden nicht alle AWS-Messwerte erfasst, die der Prometheus CloudWatch-Exporter zur Verfügung stellt.

Maximieren Sie einen der folgenden Abschnitte, um eine Beispielkonfigurationsdatei für AWS CloudWatch-Messwerte anzusehen.