View a markdown version of this page

CloudWatch Amazon-Lösung: Prometheus Erfassung von Metriken auf Amazon Amazon EC2 - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CloudWatch Amazon-Lösung: Prometheus Erfassung von Metriken auf Amazon Amazon EC2

Diese Lösung hilft Ihnen dabei, Prometheus kompatible Metriken von Ihren Amazon EC2-Instances zu sammeln, ohne Ihre eigene Erfassungsinfrastruktur ausführen oder skalieren zu müssen. Sie führen einen oder mehrere Prometheus Exporter auf Ihren Instances aus, und ein von Amazon CloudWatch verwalteter Prometheus-Collector erkennt die Ziele in Ihrer VPC, scannt deren /metrics Endpunkte und liefert die Metriken an. CloudWatch Allgemeine Informationen zu allen Observability-Lösungen finden Sie unter. CloudWatch CloudWatch Observability-Lösungen Weitere Informationen zu verwalteten Collectors finden Sie unterAmazon CloudWatch verwaltete Prometheus-Sammler.

Voraussetzungen

Diese Lösung ist für folgende Bedingungen relevant:

  • Compute: Amazon EC2-Instances, auf denen ein oder mehrere Prometheus Exporteure ausgeführt werden.

  • Amazon VPC mit aktiviertem DNS und mindestens zwei Subnetzen in verschiedenen Availability Zones für den Collector.

  • Eine Sicherheitsgruppe, die es dem Collector ermöglicht, die Exporter-Ports auf Ihren Instances zu erreichen.

Aktivieren Prometheus Exporteure

Ein Prometheus Exporter ist ein Prozess, der Metriken im Prometheus Expositionsformat auf einem HTTP-Endpunkt verfügbar macht. /metrics Sie führen einen Exporter aus, der der Arbeitslast entspricht, die Sie überwachen möchten. Die folgenden Exporteure werden häufig in Amazon EC2 verwendet:

  • Node Exporter — Host-level Infrastrukturkennzahlen wie CPU, Arbeitsspeicher, Festplatte und Netzwerk (Standardport 9100). Weitere Informationen finden Sie im Node Exporter-Repository unter. GitHub

  • JMX Exporter — JVM- und Java-Anwendungsmetriken für Java-Workloads. Weitere Informationen finden Sie im JMX Exporter-Repository unter. GitHub

  • NGINX Prometheus Exporter — NGINX-Webserver- und Reverse-Proxy-Metriken. Weitere Informationen finden Sie im NGINX Exporter-Repository unter. Prometheus GitHub

  • DCGM Exporter — NVIDIA-GPU-Metriken für GPU-Workloads wie maschinelles Lerntraining und Inferenz (Standardport 9400). Weitere Informationen finden Sie im DCGM Exporter-Repository unter. GitHub

  • HAProxy Exporter — HAProxy Load Balancer-Metriken. Weitere Informationen finden Sie im HAProxy Exporter-Repository unter. GitHub

  • Apache Exporter — Apache HTTP-Server-Metriken. Weitere Informationen finden Sie im Apache Exporter-Repository unter. GitHub

Installieren Sie jeden Exporter und führen Sie ihn auf Ihren Instances aus, indem Sie der offiziellen Dokumentation folgen. Notieren Sie sich den Port, den jeder Exporteur abhört, da Sie in Ihrer Scrape-Konfiguration auf diese Ports verweisen. Einen vollständigen Katalog der verfügbaren Exporteure finden Sie in der Dokumentation unter Exporteure und Integrationen. Prometheus

Nachdem Sie einen Exporter gestartet haben, stellen Sie sicher, dass er Metriken verfügbar macht, indem Sie seinen Endpunkt von der Instance aus abfragen:

curl http://localhost:port-number/metrics

Schritt 1: Richten Sie die Scrape-Konfiguration ein

Im folgenden Beispiel werden static_configs mit der Instance private DNS-Namen verwendet, um eine Beispielanwendung (Port 8080) und Node Exporter (Port 9100) auf Ihren Amazon EC2-Instances zu scrapen. Der relabel_configs Abschnitt fügt Ihren Metriken konsistente Bezeichnungen hinzu, sodass Sie dienstübergreifende Abfragen und Filter durchführen können. Den vollständigen Satz der unterstützten Konfigurationsoptionen finden Sie unterScraper-Konfiguration.

global: scrape_interval: 30s scrape_timeout: 10s scrape_configs: - job_name: 'ec2-metrics' static_configs: - targets: - ip-ip-address.us-west-2.compute.internal:8080 metrics_path: '/metrics' relabel_configs: - source_labels: [__address__] target_label: instance replacement: 'ec2-metrics-instance' - target_label: service replacement: 'ec2-metrics' - target_label: environment replacement: 'dev' metric_relabel_configs: - source_labels: [__name__] regex: '.*' action: keep - job_name: ec2-node-exporter static_configs: - targets: - ip-ip-address.us-west-2.compute.internal:9100

Schritt 2: Richte den Schaber ein

Erstellen Sie einen VPC-connected verwalteten Collector, der Ihre Instances scrapft und Metriken an Ihren CloudWatch Datensatz übermittelt. Geben Sie die Subnetze und die Sicherheitsgruppe an, über die der Collector Ihre Exporter-Ports erreichen kann:

Sie können GetDefaultScraperConfiguration es verwenden, um eine allgemeine Scraper-Konfiguration abzurufen oder Ihre eigene bereitzustellen.

AWS API

Verwenden Sie die CreateScraper API-Operation, um einen Scraper mit einem Ziel zu erstellen. CloudWatch Ersetzen Sie die Subnetz-, Sicherheitsgruppen- und Datensatzinformationen durch Ihre eigenen Werte.

POST /scrapers HTTP/1.1 { "alias": "ec2-payment-service-scraper", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }, "scrapeConfiguration": { "configurationBlob": "base64-encoded-blob" } }
AWS CLI

Verwenden Sie den create-scraper Befehl, um einen Scraper mit einem CloudWatch Ziel zu erstellen. Ersetzen Sie die Subnetz-, Sicherheitsgruppen- und Datensatzinformationen durch Ihre eigenen Werte.

aws amp create-scraper \ --alias "ec2-payment-service-scraper" \ --source '{ "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }' \ --scrape-configuration configurationBlob=$(cat ec2-scraper.yml | base64 -w 0) \ --destination '{ "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }'

Wenn Sie einen verwalteten Collector erstellen, erstellt Amazon Managed Service for Prometheus automatisch eine serviceverknüpfte Rolle, die dem Collector die Erlaubnis erteilt, auf Ihre VPC-Ressourcen zuzugreifen und in Ihren Datensatz zu schreiben. CloudWatch

Validieren Sie die Erfassung der Kenn

Innerhalb weniger Minuten beginnen die Messwerte in Ihren CloudWatch Datensatz zu fließen. Führen Sie CloudWatch mithilfe von Query Studio eine Ad-hoc-Abfrage aus, um zu bestätigen, dass Ihre Metriken eintreffen. Die folgende Abfrage gibt beispielsweise die Metriken für den ec2-metrics Job zurück:

{job="ec2-metrics"}

Erstellen Sie ein benutzerdefiniertes Dashboard

Nachdem der Collector mit der Bereitstellung Ihrer Amazon EC2-Metriken begonnen hat CloudWatch, können Sie ein benutzerdefiniertes CloudWatch Dashboard erstellen, um sie zu visualisieren. Mit benutzerdefinierten Dashboards können Sie die Metriken Ihrer Prometheus Exporteure in Widgets kombinieren, PromQL-based Abfragen hinzufügen und die Widgets so organisieren, dass sie Ihren Überwachungsanforderungen entsprechen. Weitere Informationen finden Sie unter Verwenden von CloudWatch Dashboards.

Kosten

Wir berechnen die Gebühren pro Stunde, und es gelten die Preise für Prometheus die CloudWatch OpenTelemetry Erfassung metrischer Daten. Weitere Informationen zur CloudWatch Preisgestaltung finden Sie unter CloudWatch Amazon-Preise.