

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.

# OpenTelemetry Sammler
<a name="CloudWatch-OTLPSimplesetup"></a>

Der OpenTelemetry Collector ist ein herstellerunabhängiger Open-Source-Agent, der Telemetriedaten empfängt, verarbeitet und exportiert. Es fungiert als zentrale Pipeline zwischen Ihren Anwendungen und Amazon CloudWatch, sammelt Metriken, Protokolle und Traces aus mehreren Quellen und sendet sie CloudWatch über das OpenTelemetry Protokoll (OTLP) an.

Die Verwendung des OpenTelemetry Collectors mit CloudWatch bietet die folgenden Vorteile:
+ Erfassen Sie Telemetriedaten von mehreren Anwendungen und Hosts über einen einzigen Agenten und reduzieren Sie so die Anzahl der Verbindungen zu CloudWatch.
+ Verarbeiten und filtern Sie Telemetriedaten vor dem Senden an CloudWatch, einschließlich des Hinzufügens oder Entfernens von Attributen, der Stapelverarbeitung von Daten und der Stichprobenverfolgung.
+ Verwenden Sie in AWS allen lokalen und anderen Cloud-Umgebungen dieselbe Collector-Konfiguration und sorgen Sie so für eine konsistente Telemetrie-Pipeline, unabhängig davon, wo Ihre Anwendungen ausgeführt werden.
+ Senden Sie Metriken CloudWatch mit umfangreichen Labels an, die mit der Prometheus Query Language (PromQL) in Query Studio abgefragt werden können. CloudWatch 

## Unterstützte Empfänger
<a name="CloudWatch-OTLPSupportedReceivers"></a>

Der OpenTelemetry Collector unterstützt eine Vielzahl von Empfängern für die Aufnahme von Telemetriedaten. Sie können OpenTelemetry Empfänger wie den OTLP-Empfänger für Anwendungen verwenden, mit denen instrumentiert wird OpenTelemetry SDKs, oder Prometheus-Empfänger, um Metriken aus vorhandenen Prometheus-Exportern zu extrahieren. Zu den häufig verwendeten Prometheus-Empfängern gehören: CloudWatch 
+ Prometheus-Empfänger, zum Scraping aller Prometheus-kompatiblen Endgeräte
+ Empfänger für Host-Metriken, zum Sammeln von Metriken auf Systemebene vom Host
+ Kubernetes-Cluster-Empfänger, zum Sammeln von Metriken auf Clusterebene vom Kubernetes-API-Server

Sie können mehrere Empfänger in einem einzigen Collector konfigurieren, sodass Sie sowohl OpenTelemetry Metriken als auch Prometheus-Metriken sammeln und CloudWatch über dieselbe Pipeline an sie senden können. [Die vollständige Liste der verfügbaren Empfänger finden Sie im Collector-Repository. OpenTelemetry ](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver)

## Erste Schritte
<a name="CloudWatch-OTLPSimplesetupGettingStarted"></a>

Voraussetzung — Wenn Sie den OTLP-Endpunkt für die Ablaufverfolgung verwenden, stellen Sie sicher, dass die Transaktionssuche aktiviert ist.

Schritte:

1. Laden Sie die neueste Version der OpenTelemetry Collector-Distribution herunter. Weitere Informationen finden Sie in den OpenTelemetry [Collector-Versionen](https://github.com/open-telemetry/opentelemetry-collector-releases/releases).

1. Installieren Sie den OpenTelemetry Collector auf Ihrem Host. Der Collector läuft auf jedem Betriebssystem und jeder Plattform. Weitere Informationen finden Sie unter [Installieren des Kollektors](https://opentelemetry.io/docs/collector/installation/).

1. Konfigurieren Sie AWS Anmeldeinformationen auf Ihrem Amazon EC2- oder lokalen Host. Der Collector verwendet diese Anmeldeinformationen zur Authentifizierung CloudWatch beim Senden von Telemetriedaten. Einzelheiten finden Sie weiter unten.

------
#### [ Setup IAM permissions for Amazon EC2 ]

**Befolgen Sie das nachstehende Verfahren, um die `CloudWatchAgentServerPolicy`-IAM-Richtlinie an die IAM-Rolle Ihrer Amazon-EC2-Instance anzufügen.**

   1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

   1. Wählen Sie **Rollen** und suchen Sie nach der Rolle, die von Ihrer Amazon-EC2-Instance verwendet wird.

   1. Wählen Sie auf der Registerkarte **Berechtigungen** die Option **Berechtigungen hinzufügen** und dann **Richtlinien anfügen**.

   1. Verwenden Sie das Suchfeld zur Suche nach der `CloudWatchAgentServerPolicy`-Richtlinie.

   1. Wählen Sie die **CloudWatchAgentServerPolicy**-Richtlinie und dann **Berechtigungen hinzufügen** aus.

------
#### [ Setup IAM permissions for on-premise hosts ]

**Sie können einen IAM-Benutzer erstellen, der verwendet werden kann, um Ihren On-Premises-Hosts Berechtigungen zu erteilen.**

   1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

   1. Wählen Sie **Benutzer** und **Neue Benutzer erstellen** aus.

   1. Geben Sie unter **Benutzerdetails** für **Benutzername** einen Namen für den neuen IAM-Benutzer ein. Dies ist der Anmeldename AWS , der zur Authentifizierung Ihres Hosts verwendet wird.

   1. Wählen Sie **Weiter** aus.

   1. Wählen Sie auf der Seite **Berechtigungen festlegen** für **Berechtigungsoptionen** die Option **Direktes Anfügen von Richtlinien** aus.

   1. Wählen Sie aus der Liste der **Berechtigungsrichtlinien** die **CloudWatchAgentServerPolicy**Richtlinie aus, die Sie Ihrem Benutzer hinzufügen möchten.

   1. Wählen Sie **Weiter** aus.

   1. Stellen Sie auf der Seite **Überprüfen und erstellen** sicher, dass Sie mit dem Benutzernamen zufrieden sind und dass die **CloudWatchAgentServerPolicy**Richtlinie in der **Übersicht der Berechtigungen aufgeführt** ist.

   1. Wählen Sie **Create user** (Benutzer erstellen) aus.

   1. ** AWS Zugriffsschlüssel und geheimen Schlüssel erstellen und abrufen** — Wählen Sie im Navigationsbereich der IAM-Konsole **Benutzer** und dann den Benutzernamen des Benutzers aus, den Sie im vorherigen Schritt erstellt haben.

   1. Wählen Sie auf der Seite des Benutzers die Registerkarte **Sicherheits-Anmeldeinformationen** aus.

   1. Wählen Sie im Abschnitt **Zugriffsschlüssel** **Zugriffsschlüssel erstellen**.

   1. Wählen Sie für **Zugriffsschlüssel erstellen – Schritt 1** die Option **Befehlszeilenschnittstelle (CLI)** aus.

   1. Geben Sie für **Zugriffsschlüssel erstellen – Schritt 2** ein optionales Tag ein und wählen Sie **Weiter** aus.

   1. Wählen Sie unter **Zugriffsschlüssel erstellen – Schritt 3** die Option **CSV-Datei herunterladen** aus, um eine CSV-Datei mit dem Zugriffsschlüssel und dem geheimen Zugriffsschlüssel Ihres IAM-Benutzers zu speichern. Diese Informationen sind für die nächsten Schritte erforderlich.

   1. Wählen Sie **Fertig** aus.

   1. Konfigurieren Sie Ihre AWS Anmeldeinformationen auf Ihrem lokalen Host, indem Sie den folgenden Befehl eingeben. Ersetzen Sie *ACCESS\$1KEY\$1ID* und *SECRET\$1ACCESS\$1ID* durch Ihren neu generierten Zugriffsschlüssel und den geheimen Zugriffsschlüssel aus der CSV-Datei, die Sie im vorherigen Schritt heruntergeladen haben.

      ```
      $ aws configure
      AWS Access Key ID [None]: ACCESS_KEY_ID
      AWS Secret Access Key [None]: SECRET_ACCESS_ID
      Default region name [None]: MY_REGION
      Default output format [None]: json
      ```

------

1. Richten Sie AWS Anmeldeinformationen für Ihre Amazon EKS- oder Kubernetes-Cluster ein. Der einfachste Weg, mit Amazon EKS zu beginnen, ist die Verwendung des EKS OTel Container Insights-Add-ons. Wenn Sie den OpenTelemetry Collector lieber direkt verwenden möchten, gehen Sie wie folgt vor, um AWS Anmeldeinformationen für Ihre Amazon EKS- oder Kubernetes-Cluster einzurichten, an die Telemetrie gesendet werden soll. CloudWatch

------
#### [ Setup IAM permissions for Amazon EKS ]

   1. Erstellen Sie einen IAM-OIDC-Identitätsanbieter für Ihren Cluster mit dem folgenden Befehl. 

      ```
      eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} --region ${REGION} --approve
      ```

   1. Weisen Sie dem Kubernetes-Dienstkonto für OTel Collector mithilfe des folgenden Befehls IAM-Rollen zu.

      ```
      eksctl create iamserviceaccount \
      --name ${COLLECTOR_SERVICE_ACCOUNT}\
      --namespace ${NAMESPACE} \
      --cluster ${CLUSTER_NAME} \
      --region ${REGION} \
      --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
      --approve \
      --override-existing-serviceaccounts
      ```

------
#### [ Setup IAM permissions for Kubernetes ]

   1. Konfigurieren Sie Ihre AWS Anmeldeinformationen auf Ihrem lokalen Host, indem Sie den folgenden Befehl eingeben. Ersetzen Sie *ACCESS\$1KEY\$1ID* und *SECRET\$1ACCESS\$1ID* durch Ihren neu generierten Zugriffsschlüssel und Ihren geheimen Zugriffsschlüssel aus der CSV-Datei, die Sie im vorherigen Schritt heruntergeladen haben. *Standardmäßig wird die Anmeldeinformationsdatei unter/gespeichert. home/user/.aws/credentials* .

      ```
      aws configure
      AWS Access Key ID [None]: ACCESS_KEY_ID 
      AWS Secret Access Key [None]: SECRET_ACCESS_ID 
      Default region name [None]: MY_REGION 
      Default output format [None]: json
      ```

   1. Bearbeiten Sie die OpenTelemetry Collector-Ressource, um das neu erstellte geheime AWS-Anmeldedatengeheimnis hinzuzufügen, indem Sie den folgenden Befehl verwenden: `kubectl edit OpenTelemetryCollector otel_collector` 

   1. Fügen Sie mithilfe des Dateieditors die AWS Anmeldeinformationen zum OpenTelemetryCollector Container hinzu, indem Sie die folgende Konfiguration am Anfang der Bereitstellung hinzufügen. Ersetzen Sie den Pfad */home/user/.aws/credentials* durch den Speicherort Ihrer lokalen AWS Anmeldeinformationsdatei. 

      ```
                           spec:
                          volumeMounts:
                          - mountPath: /rootfs
                          volumeMounts:
                          - name: aws-credentials
                          mountPath: /root/.aws
                          readOnly: true
                          volumes:
                          - hostPath:
                          path: /home/user/.aws/credentials
                          name: aws-credentials
      ```

------

1. Konfigurieren Sie den OTLP-Exporter in Ihrer Collector-Konfiguration so, dass Telemetrie an den Endpunkt gesendet wird. CloudWatch Siehe Beispiele unten.

## Beispiele für die Collector-Konfiguration
<a name="CloudWatch-OTLPSimplesetupConfigureCollector"></a>

Kopieren Sie den folgenden Inhalt und fügen Sie ihn ein, um Ihren Kollektor so zu konfigurieren, dass er Protokolle und Ablaufverfolgungen an die OTLP-Endpunkte sendet.

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlphttp/logs:
    compression: gzip
    logs_endpoint: logs_otlp_endpoint
    headers: 
      x-aws-log-group: ency_log_group
      x-aws-log-stream: default
    auth:
      authenticator: sigv4auth/logs
      
  otlphttp/traces:
    compression: gzip
    traces_endpoint: traces_otlp_endpoint
    auth:
      authenticator: sigv4auth/traces

extensions:
  sigv4auth/logs:
    region: "region"
    service: "logs"
  sigv4auth/traces:
    region: "region"
    service: "xray"

service:
  telemetry:
  extensions: [sigv4auth/logs, sigv4auth/traces]
  pipelines:
    logs:
      receivers: [otlp]
      exporters: [otlphttp/logs]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/traces]
```

Das Folgende ist ein Beispiel für das Senden von Protokollen und Ablaufverfolgungen mit sigv4 an us-east-1.

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlphttp/logs:
    compression: gzip
    logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs
    headers: 
      x-aws-log-group: MyApplicationLogs
      x-aws-log-stream: default
    auth:
      authenticator: sigv4auth/logs
      
  otlphttp/traces:
    compression: gzip
    traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces
    auth:
      authenticator: sigv4auth/traces

extensions:
  sigv4auth/logs:
    region: "us-east-1"
    service: "logs"
  sigv4auth/traces:
    region: "us-east-1"
    service: "xray"

service:
  telemetry:
  extensions: [sigv4auth/logs, sigv4auth/traces]
  pipelines:
    logs:
     receivers: [otlp]
      exporters: [otlphttp/logs]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/traces]
```

**Anmerkung**  
Konfigurieren Sie Ihre OpenTelemetry SDKs Sampling-Konfiguration auf *Always\$1on*, um Messbereiche zuverlässig zu 100% aufzuzeichnen und mit CloudWatch Application Signals einen vollständigen Einblick in Ihre kritischen Anwendungen zu erhalten. Weitere Informationen finden Sie in einem Beispielkonfigurationsbeispiel für ein [OpenTelemetry Java SDK](https://opentelemetry.io/docs/languages/java/sdk/#sampler). Ein Beispiel für die Einrichtung von OpenTelemetry Collector mit dem X-Ray-OTLP-Endpunkt finden Sie im [Demo-Repository für Anwendungssignale](https://github.com/aws-observability/application-signals-demo/blob/main/scripts/opentelemetry/otel_simple_setup/opentelemetry.yaml).

Kopieren Sie den folgenden Inhalt und fügen Sie ihn ein, um Ihren Collector so zu konfigurieren, dass er Metriken an die OTLP-Endpunkte sendet.

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    endpoint: metrics_otlp_endpoint
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "region"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```

Das Folgende ist ein Beispiel für das Senden von Metriken mit Sigv4 an us-east-1.

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics:443"
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "us-east-1"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```