> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CloudWatch-Logs über Amazon Data Firehose an AppSignal senden

<Warning>
  🔐 Senden Sie keine <strong>personenbezogenen Daten (Personal Identifiable Information, PII)</strong> an AppSignal. Filtern Sie PII (z. B. Namen, E-Mail-Adressen) aus Logs und verwenden Sie stattdessen eine ID, einen Hash oder einen pseudonymisierten Bezeichner. <br /> <br /> Für **HIPAA-pflichtige Stellen** finden Sie weitere Informationen zum Abschluss eines Business Associate Agreement (BAA) in unserer [Business Add-Ons-Dokumentation](/support/business-add-ons).
</Warning>

Führen Sie die folgenden Schritte aus, um CloudWatch-Logs über Amazon Data Firehose (ehemals Kinesis Data Firehose) an AppSignal zu senden:

1. [Eine Log-Quelle erstellen](#create-a-log-source)
2. [Einen S3-Bucket für fehlgeschlagene Zustellungen einrichten](#set-up-an-s3-bucket-for-failed-deliveries)
3. [Eine IAM-Rolle für Data Firehose einrichten](#set-up-an-iam-role-for-data-firehose)
4. [Einen Firehose-Delivery-Stream erstellen](#create-a-firehose-delivery-stream)
5. [Eine IAM-Rolle für CloudWatch einrichten](#set-up-an-iam-role-for-cloudwatch)
6. [Ein CloudWatch-Log-Abonnement erstellen](#create-a-cloudwatch-log-subscription)

Bevor Sie beginnen, halten Sie die folgenden Informationen bereit:

* Den [API-Schlüssel](https://appsignal.com/redirect-to/app?to=logs/sources) Ihrer Log-Quelle. Wenn Sie noch keine Log-Quelle haben, [erstellen Sie zuerst eine neue Log-Quelle](/logging/configuration#creating-a-log-source).
* AWS-Konto-ID
* AWS-Region
* Name des S3-Buckets für die Speicherung fehlgeschlagener Zustellungen
* Name des Data-Firehose-Streams
* IAM-Rollenname für den S3-Bucket
* IAM-Rollenname für das CloudWatch-Abonnement

## Eine Log-Quelle erstellen

Erstellen Sie eine Log-Quelle, bevor Sie fortfahren. Siehe [Logging-Konfiguration](/logging/configuration#creating-a-log-source) für Anweisungen.

## Einen S3-Bucket für fehlgeschlagene Zustellungen einrichten

Amazon Data Firehose benötigt einen S3-Bucket, um Datensätze zu speichern, deren Zustellung fehlschlägt. Erstellen Sie einen S3-Bucket über die AWS-Konsole oder CLI, bevor Sie fortfahren; ohne einen Bucket können Sie keinen Firehose-Delivery-Stream erstellen.

## Eine IAM-Rolle für Data Firehose einrichten

Erstellen Sie eine IAM-Rolle, die es Data Firehose erlaubt, in den S3-Bucket zu schreiben und optional in CloudWatch Logs für Zustellfehler-Logging. Verwenden Sie die folgende Trust-Policy:

<CodeGroup>
  ```json JSON theme={null}
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "firehose.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
  ```
</CodeGroup>

Weisen Sie der Rolle die folgende Berechtigungsrichtlinie als Inline-Policy zu.

<Note>
  Siehe [Hinzufügen von IAM-Identitäts-Berechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
  für Anweisungen zur Erstellung von Inline-Richtlinien für IAM-Rollen.
</Note>

<CodeGroup>
  ```json JSON theme={null}
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "s3:AbortMultipartUpload",
          "s3:GetBucketLocation",
          "s3:GetObject",
          "s3:ListBucket",
          "s3:ListBucketMultipartUploads",
          "s3:PutObject"
        ],
        "Resource": [
          "arn:aws:s3:::<FIREHOSE_S3_BUCKET>",
          "arn:aws:s3:::<FIREHOSE_S3_BUCKET>/*"
        ]
      },
      {
        "Effect": "Allow",
        "Action": ["logs:PutLogEvents"],
        "Resource": [
          "arn:aws:logs:<AWS_REGION>:<AWS_ACCOUNT_ID>:log-group:<FIREHOSE_LOG_GROUP>:*"
        ]
      }
    ]
  }
  ```
</CodeGroup>

Ersetzen Sie die Platzhalter durch Ihre eigenen Werte:

* `<AWS_ACCOUNT_ID>` — Ihre AWS-Konto-ID.
* `<AWS_REGION>` — die Region, in der Ihr Firehose-Stream laufen wird.
* `<FIREHOSE_S3_BUCKET>` — der S3-Bucket, den Sie im vorherigen Schritt erstellt haben.
* `<FIREHOSE_LOG_GROUP>` — die Log-Gruppe, die Firehose für **seine eigenen Zustellfehler-Logs** verwendet (getrennt von der Log-Gruppe, die Sie an AppSignal streamen möchten). AWS verwendet die Konvention `/aws/kinesisfirehose/<FIREHOSE_STREAM_NAME>`, entscheiden Sie also jetzt über den Namen Ihres Firehose-Streams – Sie werden ihn im nächsten Schritt wiederverwenden. Wenn Sie das Fehler-Logging am Firehose-Stream nicht aktivieren möchten, können Sie die Anweisung `logs:PutLogEvents` vollständig weglassen.

<Note>
  Siehe [Controlling access with Amazon Data
  Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)
  für mehr zu den Berechtigungen, die Data Firehose benötigt.
</Note>

## Einen Firehose-Delivery-Stream erstellen

1. Öffnen Sie die Amazon-Data-Firehose-Konsole und wählen Sie **Create Firehose stream**.
2. Wählen Sie **Direct PUT** als Quelle.
3. Wählen Sie **HTTP Endpoint** als Ziel.
4. Lassen Sie unter „Transform records" die Datentransformation deaktiviert.
5. Geben Sie die folgende URL als **HTTP endpoint URL** ein:

<CodeGroup>
  ```shell Shell theme={null}
  https://appsignal-endpoint.net/logs/aws-kinesis
  ```
</CodeGroup>

6. Geben Sie Ihren AppSignal-Log-Source-API-Schlüssel aus dem [Erstellen einer Log-Quelle](/logging/configuration#creating-a-log-source) als **Access key** ein. Dies ist ein AppSignal-Schlüssel, kein AWS-Access-Key.
7. Aktivieren Sie unter „Content encoding" **GZIP**.
8. Wählen Sie unter „Backup settings" den S3-Bucket aus, den Sie im vorherigen Schritt erstellt haben.
9. Wählen Sie unter „Advanced settings > Service access" die Option **Choose existing IAM role** und wählen Sie die IAM-Rolle aus, die Sie im vorherigen Schritt erstellt haben.
10. (Optional) Aktivieren Sie unter „Advanced settings > Amazon CloudWatch error logging" das Fehler-Logging, um die im vorherigen Schritt erteilte Berechtigung `logs:PutLogEvents` zu nutzen.
11. Verwenden Sie denselben Firehose-Stream-Namen, auf den Sie beim Einrichten der IAM-Rolle verwiesen haben, und wählen Sie dann **Create Firehose stream**.

Um die Verbindung zu überprüfen, können Sie die Schaltfläche **Test with demo data** in der Firehose-Konsole verwenden. Die JSON-Payloads mit Aktienkursen, die sie sendet, erscheinen in AppSignal unter **Logging** als einzelne Log-Zeilen – eine nützliche End-to-End-Prüfung, bevor Sie echte Log-Gruppen anbinden. Sie können auch beobachten, wie `DeliveryToHttpEndpoint.Success` im Tab **Monitoring** des Firehose-Streams ansteigt.

## Eine IAM-Rolle für CloudWatch einrichten

Erstellen Sie eine IAM-Rolle, die es CloudWatch erlaubt, Logs an den Firehose-Delivery-Stream zu senden. Verwenden Sie die folgende Trust-Policy:

<CodeGroup>
  ```json JSON theme={null}
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": { "Service": "logs.<AWS_REGION>.amazonaws.com" },
        "Action": "sts:AssumeRole"
      }
    ]
  }
  ```
</CodeGroup>

Weisen Sie der Rolle die folgende Berechtigungsrichtlinie als Inline-Policy zu.

<Note>
  Siehe [Hinzufügen von IAM-Identitäts-Berechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
  für Anweisungen zur Erstellung von Inline-Richtlinien für IAM-Rollen.
</Note>

<CodeGroup>
  ```json JSON theme={null}
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": ["firehose:*"],
        "Resource": [
          "arn:aws:firehose:<AWS_REGION>:<AWS_ACCOUNT_ID>:deliverystream/<FIREHOSE_DELIVERY_STREAM>"
        ]
      }
    ]
  }
  ```
</CodeGroup>

Ersetzen Sie `<AWS_REGION>`, `<AWS_ACCOUNT_ID>` und `<FIREHOSE_DELIVERY_STREAM>` durch Ihre eigenen Werte.

## Ein CloudWatch-Log-Abonnement erstellen

1. Navigieren Sie in der CloudWatch-Konsole zu der Log-Gruppe, deren Logs Sie streamen möchten.
2. Öffnen Sie den Tab **Subscription filters**.
3. Wählen Sie **Create Amazon Data Firehose subscription filter**.
4. Wählen Sie den Firehose-Delivery-Stream aus [Schritt 4](#create-a-firehose-delivery-stream) und die IAM-Rolle aus [Schritt 5](#set-up-an-iam-role-for-cloudwatch).
5. Geben Sie einen **Subscription filter name** ein und wählen Sie **Start streaming**.

Nach dem Speichern des Abonnements erscheinen die Logs in AppSignal unter der Log-Quelle, die Sie oben konfiguriert haben. Wenn beim Speichern des Abonnements ein Fehler auftritt, überprüfen Sie, ob die IAM-Rolle in [Schritt 5](#set-up-an-iam-role-for-cloudwatch) die korrekte Region, Konto-ID und den korrekten Delivery-Stream-Namen verwendet.

Wenn keine Logs in AppSignal erscheinen:

* Öffnen Sie den Tab **Monitoring** Ihres Firehose-Streams und prüfen Sie `DeliveryToHttpEndpoint.Success`. Der Wert sollte bei etwa 1 bleiben; ein Abfall oder Null deutet darauf hin, dass AppSignal Datensätze ablehnt.
* Prüfen Sie den S3-Fehler-Bucket aus [Schritt 2](#set-up-an-s3-bucket-for-failed-deliveries). Fehlgeschlagene Datensätze landen dort, und jedes Objekt enthält den Ablehnungsgrund.
* Wenn Datensätze mit einem Autorisierungsfehler fehlschlagen, überprüfen Sie, ob der **Access key** am Firehose-Stream mit Ihrem AppSignal-Log-Source-API-Schlüssel übereinstimmt.

Wenn Sie immer noch nicht weiterkommen, [kontaktieren Sie uns](mailto:support@appsignal.com) für Support.
