

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
<a name="Solution-Prometheus-On-ECS"></a>

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](Monitoring-Solutions.md) Weitere Informationen zu verwalteten Collectors finden Sie unter[Amazon CloudWatch verwaltete Prometheus-Sammler](managed-prometheus-collectors.md).

**Topics**
+ [Voraussetzungen](#Solution-Prometheus-On-ECS-Requirements)
+ [Aktivieren Prometheus Exporteure](#Solution-Prometheus-On-ECS-Exporters)
+ [Schritt 1: Sicherheitsgruppen einrichten](#Solution-Prometheus-On-ECS-Security-Groups)
+ [Schritt 2: Richten Sie die Scrape-Konfiguration ein](#Solution-Prometheus-On-ECS-Scrape-Config)
+ [Schritt 3: Richten Sie den Scraper ein](#Solution-Prometheus-On-ECS-Create-Scraper)
+ [Überprüfen Sie die Erfassung der Messwerte](#Solution-Prometheus-On-ECS-Validate)
+ [Erstellen Sie ein benutzerdefiniertes Dashboard](#Solution-Prometheus-On-ECS-Dashboards)
+ [Kosten](#Solution-Prometheus-On-ECS-Costs)

## Voraussetzungen
<a name="Solution-Prometheus-On-ECS-Requirements"></a>

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
<a name="Solution-Prometheus-On-ECS-Exporters"></a>

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 ](https://github.com/prometheus/node_exporter) Exporter-Repository unter. GitHub
+ **JMX Exporter ** — JVM- und Java-Anwendungsmetriken für Java-Workloads. Weitere Informationen finden Sie im [ JMX Exporter-Repository unter. ](https://github.com/prometheus/jmx_exporter) GitHub
+ **NGINX Prometheus Exporter ** — NGINX-Webserver- und Reverse-Proxy-Metriken. Weitere Informationen finden Sie im NGINX Exporter-Repository unter[. Prometheus](https://github.com/nginx/nginx-prometheus-exporter) GitHub
+ **DCGM Exporter ** — NVIDIA-GPU-Metriken für GPU-Workloads (Standardport 9400). Weitere Informationen finden Sie im [ DCGM Exporter-Repository unter. ](https://github.com/NVIDIA/dcgm-exporter) GitHub
+ **HAProxy Exporter ** — HAProxy Load Balancer-Metriken. Weitere Informationen finden Sie im [ HAProxy Exporter-Repository unter. ](https://github.com/prometheus/haproxy_exporter) GitHub
+ **Apache Exporter ** — Apache HTTP-Server-Metriken. Weitere Informationen finden Sie im [ Apache ](https://github.com/Lusitaniae/apache_exporter) 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](https://prometheus.io/docs/instrumenting/exporters/). Prometheus

## Schritt 1: Sicherheitsgruppen einrichten
<a name="Solution-Prometheus-On-ECS-Security-Groups"></a>

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
<a name="Solution-Prometheus-On-ECS-Scrape-Config"></a>

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_configs`In 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 unter[Scraper-Konfiguration](managed-prometheus-collectors-scraper-configuration.md).

```
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
<a name="Solution-Prometheus-On-ECS-Create-Scraper"></a>

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

Sie können [GetDefaultScraperConfiguration](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_GetDefaultScraperConfiguration.html) 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
<a name="Solution-Prometheus-On-ECS-Validate"></a>

Nachdem der Collector mit der Bereitstellung von Metriken begonnen hat, führen Sie CloudWatch mithilfe von Query Studio eine [ Ad-hoc-Abfrage aus, ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-PromQL-QueryStudio.html) 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
<a name="Solution-Prometheus-On-ECS-Dashboards"></a>

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. ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)

## Kosten
<a name="Solution-Prometheus-On-ECS-Costs"></a>

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. ](https://aws.amazon.com/cloudwatch/pricing/)