View a markdown version of this page

CloudWatch Amazon-Lösung: Prometheus Erfassung von Metriken auf Amazon ECS - 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 ECS

Mit dieser Lösung können Sie Prometheus kompatible Metriken aus Ihren Amazon ECS-Aufgaben erfassen, ohne Ihre eigene Erfassungsinfrastruktur ausführen oder skalieren zu müssen. Ihre Aufgaben stellen Metriken über Prometheus Exporteure zur Verfügung, und ein von Amazon CloudWatch verwalteter Prometheus-Collector erkennt die Aufgaben in Ihrer VPC anhand der DNS-based Serviceerkennung, scannt ihre /metrics Endpunkte und liefert die Metriken an. CloudWatch Da Amazon ECS-Aufgaben kurzlebig sind und sich ihre IP-Adressen ändern, verwendet diese Lösung die AWS Cloud Map-Serviceerkennung, sodass der Collector immer die aktuellen Aufgaben durchsucht. Allgemeine Informationen zu allen CloudWatch Observability-Lösungen finden Sie unter. 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 ECS-Aufgaben (auf Amazon EC2 oder AWS Fargate), die Prometheus -kompatible Metriken bereitstellen.

  • Amazon ECS-Services, die Sie bei AWS Cloud Map für DNS-based die Serviceerkennung registrieren.

  • 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, den Metrik-Port Ihrer Aufgaben zu erreichen. Wenn sich Ihre Aufgaben und der Collector eine Sicherheitsgruppe teilen, fügen Sie eine selbstreferenzierende Eingangsregel für den Metrik-Port hinzu.

Aktivieren Prometheus Exporteure

Ein Prometheus Exporter ist ein Prozess, der Metriken im Prometheus Expositionsformat auf einem HTTP-Endpunkt verfügbar macht. /metrics Auf Amazon ECS führen Sie in der Regel einen Exporter als Sidecar-Container in derselben Aufgabendefinition wie Ihre Anwendung aus, oder Sie stellen die Anwendung so ein, dass Metriken direkt verfügbar gemacht werden. Die folgenden Exporteure werden häufig verwendet:

  • Node Exporter — Host-level Infrastrukturmetriken für Aufgaben auf dem Amazon EC2-Starttyp (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 (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

Fügen Sie den Exporter zu Ihrer Aufgabendefinition hinzu und geben Sie seinen Metrikport an, indem Sie der offiziellen Dokumentation des Exporters folgen. Einen vollständigen Katalog der verfügbaren Exporteure finden Sie in der Dokumentation unter Exporteure und Integrationen. Prometheus

Schritt 1: Sicherheitsgruppen einrichten

Vergewissern Sie sich, dass die Sicherheitsgruppe für Ihre Amazon ECS-Aufgaben eingehenden Datenverkehr vom Collector am Metrics-Port zulässt. Wenn sich Ihre Aufgaben und der Collector eine Sicherheitsgruppe teilen, fügen Sie eine selbstreferenzierende Eingangsregel hinzu, damit Ressourcen in derselben Sicherheitsgruppe kommunizieren können. Der folgende Befehl lässt eingehenden Datenverkehr auf Port 80 von derselben Sicherheitsgruppe zu:

aws ec2 authorize-security-group-ingress \ --group-id sg-security-group-id \ --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs='[{GroupId=sg-security-group-id}]'

Schritt 2: Richten Sie die Scrape-Konfiguration ein

Verwenden Sie für Amazon ECS-Aufgaben, die Sie bei AWS Cloud Map registrieren, DNS-based service discovery (dns_sd_configs), um Ihre Aufgaben automatisch zu finden und zu durchsuchen, wenn sie gestartet und beendet werden. dns_sd_configsIn diesem Abschnitt wird der Collector angewiesen, den AWS Cloud Map-DNS-Namen abzufragen und alle zurückgegebenen IP-Adressen zu löschen. Wenn Amazon ECS eine Aufgabe ersetzt, nimmt der Collector die Änderung bei seiner nächsten DNS-Abfrage auf. 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: 'ecs-payforadoption' dns_sd_configs: - names: ['payforadoption-go.Workshop-space'] type: A port: 80 metrics_path: '/metrics' relabel_configs: - target_label: service_name replacement: 'payforadoption-go' - target_label: cloudmap_namespace replacement: 'Workshop-space' - target_label: environment replacement: 'production' - target_label: compute_platform replacement: 'ecs-fargate'

Schritt 3: Richten Sie den Scraper ein

Erstellen Sie einen VPC-connected verwalteten Collector, der Ihre Amazon ECS-Aufgaben scrapft und Metriken an Ihren CloudWatch Datensatz übermittelt:

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

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": "ecs-payforadoption-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 "ecs-payforadoption-scraper" \ --source '{ "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }' \ --scrape-configuration configurationBlob=$(cat ecs-scraper.yml | base64 -w 0) \ --destination '{ "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }'

Überprüfen Sie die Erfassung der Messwerte

Nachdem der Collector mit der Bereitstellung von Metriken begonnen hat, 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 durchschnittlichen Anfragen pro Sekunde an die Amazon ECS-Aufgabe in den letzten fünf Minuten zurück:

rate(payforadoption_requests_total[5m])

Erstellen Sie ein benutzerdefiniertes Dashboard

Nachdem der Collector mit der Bereitstellung Ihrer Amazon ECS-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.