AWS-CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter erfassen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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 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- und 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.
Wenn Sie AWS-CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter erfassen möchten, 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 zum Ausführen des Ops-Agent und des Prometheus CloudWatch-Exporters verwendet wird. Diese VM dient als Erfassungsort für alle AWS-Messwerte.
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:
Wenn Sie auf Ihre VM zugreifen möchten, um den Prometheus CloudWatch-Exporter und den Ops Agent zu installieren, können Sie den folgenden Befehl verwenden:
gcloud compute ssh --zone ZONE --project PROJECT_IDaws-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 Ihre VM mit einem anderen Namen erstellt haben.
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-Exporteur ausführen möchten, müssen Sie den Exporteur und die Java-Laufzeitumgebung (JRE) Version 11 oder höher herunterladen.
Führen Sie auf Ihrer Compute Engine-Instanz den folgenden Befehl aus, um die JAR-Datei mit dem Prometheus CloudWatch-Exporteur herunterzuladen:
Sie können einen Befehl wie den folgenden verwenden, um die JRE zu installieren:
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 unter Prometheus CloudWatch-Exporter-Konfigurationen für die Migration verwenden.
Diese Konfigurationsdateien sollen die vorhandenen Messwerte so genau wie möglich replizieren. Es 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, sollten Sie die Migrationskonfigurationen nicht 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 des Prometheus CloudWatch-Exporters.
Sie können die Konfiguration für mehrere AWS-Dienste in einer einzigen Konfigurationsdatei kombinieren. 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-Exporteur ausführen können, müssen Sie ihm Anmeldedaten und eine Autorisierung zuweisen.
Der Prometheus CloudWatch-Exporter verwendet das AWS Java SDK, mit dem sich Anmeldedaten mithilfe der folgenden Umgebungsvariablen angeben lassen:
Weitere Informationen zum Angeben von Anmeldedaten für das SDK finden Sie im AWS SDK for Java 2.x.
Außerdem benötigen Sie die Berechtigung, die CloudWatch API zum Abrufen von Messwerten zu verwenden. Sie benötigen die folgenden CloudWatch-Berechtigungen von AWS IAM:
cloudwatch:ListMetrics
cloudwatch:GetMetricStatistics
cloudwatch:GetMetricData
Für die Verwendung der Funktion aws_tag_select ist außerdem die AWS IAM-Berechtigung tag:GetResources erforderlich.
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.
Führen Sie den folgenden Befehl aus, um die Konfiguration zu testen, den Exporter zu starten und die Konfigurationsdatei zu laden:
Ändern Sie bei Bedarf die Werte für den Port (9106) und die Konfigurationsdatei (config.yml).
Wenn Sie die config.yml-Datei ändern, während der Exporter ausgeführt wird, können Sie ihn 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-Agenten installieren, konfigurieren und starten. Diese Abschnitte enthalten Informationen zur minimalen Einrichtung des Ops-Agents für die 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 das Installationsskript des Ops-Agent herunterzuladen und auszuführen:
Um den Ops-Agent zu konfigurieren, fügen Sie der Nutzerkonfigurationsdatei des Agents Konfigurationselemente hinzu. Unter Linux lautet die Konfigurationsdatei des Nutzers /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 Konfigurationsdatei des Nutzers hinzu:
sudo vim /etc/google-cloud-ops-agent/config.yaml
Grundlegende Konfiguration für den Ops-Agent
Die folgende Konfiguration ist eine minimale Konfiguration für den Ops-Agenten. 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 gescrapt 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 Messwertempfänger aws verwendet.
Konfiguration, bei der JVM-Messwerte nicht erfasst werden
Die folgende Konfiguration bietet alle Funktionen der Basiskonfiguration. Außerdem wird eine Konfiguration zum Umbenennen hinzugefügt, mit der die vom Exporter generierten JVM-Messwerte gelöscht werden. Wenn Sie diese Messwerte löschen, werden die aufgenommenen Messwertdaten reduziert. Die Fehlerbehebung bei Problemen mit dem Exporter kann jedoch schwieriger werden, da Sie die eigenen Messwerte des Exporters nicht 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.
Allgemeine Informationen zum Konfigurieren des Ops-Agents finden Sie unter Konfigurationsmodell.
Ops-Agent neu starten
Sie müssen den Agent neu starten, um Konfigurationsänderungen anzuwenden.
Führen Sie den folgenden Befehl auf der Instanz aus, um den Agent neu zu starten:
sudo service google-cloud-ops-agent restart
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, genau wie bei anderen Messwerten. Über die Oberfläche des Metrics Explorer können Sie PromQL, die 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 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:
Sie können Prometheus-Messwerte mit PromQL oder mit Cloud Monitoring-Tools wie der Monitoring Query Language (MQL) abfragen. Wenn Prometheus-Messwerte in Cloud Monitoring aufgenommen werden, wird jeder Messwert mithilfe der standardmäßigen OpenTelemetry-zu-Prometheus-Transformation umgewandelt und dem überwachten Ressourcentyp prometheus_target von Cloud Monitoring zugeordnet.
Die Transformation umfasst die folgenden Änderungen:
Dem Namen des Messwerts wird der String prometheus.googleapis.com/ (Präfix) vorangestellt.
Alle nicht alphanumerischen Zeichen wie Punkte (.) im Messwertnamen werden durch Unterstriche (_) ersetzt.
An den Namen des Messwerts wird ein String (Postfix) angehängt, der die Messwertart angibt, z. B. /gauge oder /counter.
Wenn Sie den Prometheus-Messwert aws_ec2_cpuutilization_sum mit 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:
Das folgende Diagramm zeigt das Ergebnis der MQL-Abfrage für den Prometheus-Messwert aws_ec2_cpuutilization_sum:
Benachrichtigung zu Messwertverhalten
In Cloud Monitoring können Sie [Benachrichtigungsrichtlinien][alert-intro] erstellen, um Ihre AWS CloudWatch-Messwerte zu überwachen und sich über Spitzen, Einbrüche oder Trends bei den Messwerten informieren zu lassen.
Informationen zum Erstellen von Benachrichtigungsrichtlinien mit der Abfrage-Builder-Oberfläche finden Sie unter Benachrichtigungsrichtlinien erstellen.
Mehrere Regionen im Blick behalten
Die Konfiguration des Prometheus CloudWatch-Exporters unterstützt nur eine Region pro Konfigurationsdatei. Wenn Sie mehrere Regionen überwachen möchten, empfehlen wir, mehrere Instanzen des Prometheus-Exports auszuführen, eine für jede Region, die Sie überwachen möchten. Sie können mehrere Exporter auf einer einzelnen VM ausführen oder sie auf VMs verteilen. Die Docker-Images des Prometheus-Exporteurs 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 abruft. Wenn Sie mehrere Instanzen des Prometheus-Exporteurs konfigurieren, sollten Sie für jede Scrape-Konfiguration einen anderen job-Namen verwenden, damit Sie die Exporteurinstanzen bei der Fehlerbehebung unterscheiden können.
Informationen zum Konfigurieren des Ops-Agents und des Prometheus-Empfängers finden Sie unter Ops-Agent konfigurieren.
Kosten
Amazon berechnet Ihnen 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 Abfragemerkmale, die sich auf Ihre Amazon-Kosten auswirken können:
Bei Verwendung der GetMetricStatistics-Methode (Standard) ist für jeden Messwert eine API-Anfrage erforderlich. Jede Anfrage kann mehrere Statistiken enthalten.
Bei Verwendung von aws_dimensions muss der Exporteur API-Anfragen ausführen, um zu ermitteln, welche Messwerte angefordert werden sollen. Die Anzahl der Dimensionsanfragen ist im Vergleich zur Anzahl der Messwertanfragen in der Regel vernachlässigbar.
Prometheus CloudWatch-Exporter-Konfigurationen für die Migration
In diesem Abschnitt finden Sie Konfigurationen, die die in der Liste AWS-Messwerte dokumentierten AWS-Dienstmesswerte so genau wie möglich nachbilden. Diese Konfigurationsdateien sind für Kunden gedacht, die von der bisherigen Lösung zum Prometheus CloudWatch-Exporter migrieren. Wenn Sie den Prometheus CloudWatch-Exporter als neuen Nutzer statt als migrierenden Nutzer einrichten und diese Konfigurationen verwenden, werden nicht alle AWS-Messwerte erfasst, 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.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-12-06 (UTC)."],[],[]]