> ## 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 naar AppSignal sturen via Amazon Data Firehose

<Warning>
  🔐 Stuur geen <strong>Persoonlijk Identificeerbare Informatie (PII)</strong> naar AppSignal. Filter PII (bijv. namen, e-mailadressen) uit logs en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator. <br /> <br /> Voor **onder HIPAA vallende entiteiten** vindt u meer informatie over het ondertekenen van een Business Associate Agreement (BAA) in onze [documentatie over Business Add-Ons](/support/business-add-ons).
</Warning>

Voer de volgende stappen uit om CloudWatch-logs naar AppSignal te sturen via Amazon Data Firehose (voorheen Kinesis Data Firehose):

1. [Een logbron aanmaken](#create-a-log-source)
2. [Een S3-bucket opzetten voor mislukte afleveringen](#set-up-an-s3-bucket-for-failed-deliveries)
3. [Een IAM-rol opzetten voor Data Firehose](#set-up-an-iam-role-for-data-firehose)
4. [Een Firehose delivery stream aanmaken](#create-a-firehose-delivery-stream)
5. [Een IAM-rol opzetten voor CloudWatch](#set-up-an-iam-role-for-cloudwatch)
6. [Een CloudWatch log subscription aanmaken](#create-a-cloudwatch-log-subscription)

Houd voordat u begint de volgende informatie bij de hand:

* De [API-sleutel](https://appsignal.com/redirect-to/app?to=logs/sources) van uw logbron. Als u nog geen logbron heeft, [maak dan eerst een nieuwe logbron aan](/logging/configuration#creating-a-log-source).
* AWS-account-ID
* AWS-regio
* Naam van de S3-bucket voor opslag van mislukte afleveringen
* Naam van de Data Firehose-stream
* IAM-rolnaam voor de S3-bucket
* IAM-rolnaam voor de CloudWatch-subscription

## Een logbron aanmaken

Maak een logbron aan voordat u verder gaat. Zie [Logging-configuratie](/logging/configuration#creating-a-log-source) voor instructies.

## Een S3-bucket opzetten voor mislukte afleveringen

Amazon Data Firehose vereist een S3-bucket om records op te slaan die niet worden afgeleverd. Maak een S3-bucket aan via de AWS Console of CLI voordat u verder gaat; u kunt geen Firehose delivery stream aanmaken zonder bucket.

## Een IAM-rol opzetten voor Data Firehose

Maak een IAM-rol aan waarmee Data Firehose naar de S3-bucket kan schrijven en, optioneel, naar CloudWatch Logs voor het loggen van aflever-fouten. Gebruik de volgende trust policy:

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

Wijs de volgende permissions policy als inline policy aan de rol toe.

<Note>
  Zie [IAM-identiteitsmachtigingen
  toevoegen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
  voor instructies over het aanmaken van inline-policies voor 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>

Vervang de placeholders door uw eigen waarden:

* `<AWS_ACCOUNT_ID>` — uw AWS-account-ID.
* `<AWS_REGION>` — de regio waarin uw Firehose-stream wordt uitgevoerd.
* `<FIREHOSE_S3_BUCKET>` — de S3-bucket die u in de vorige stap heeft aangemaakt.
* `<FIREHOSE_LOG_GROUP>` — de loggroep die Firehose gebruikt voor **zijn eigen aflever-foutlogs** (los van de loggroep die u naar AppSignal wilt streamen). AWS gebruikt de conventie `/aws/kinesisfirehose/<FIREHOSE_STREAM_NAME>`, dus bepaal nu de naam van uw Firehose-stream — u hergebruikt deze in de volgende stap. Als u geen foutlogging op de Firehose-stream wilt inschakelen, kunt u de `logs:PutLogEvents`-statement volledig weglaten.

<Note>
  Zie [Controlling access with Amazon Data
  Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)
  voor meer informatie over de rechten die Data Firehose vereist.
</Note>

## Een Firehose delivery stream aanmaken

1. Open de Amazon Data Firehose-console en selecteer **Create Firehose stream**.
2. Selecteer **Direct PUT** als source.
3. Selecteer **HTTP Endpoint** als bestemming.
4. Laat onder "Transform records" datatransformatie uitgeschakeld.
5. Voer de volgende URL in als **HTTP endpoint URL**:

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

6. Voer de AppSignal-logbron-API-sleutel in van het [aanmaken van een logbron](/logging/configuration#creating-a-log-source) als de **Access key**. Dit is een AppSignal-sleutel, geen AWS access key.
7. Schakel onder "Content encoding" **GZIP** in.
8. Selecteer onder "Backup settings" de S3-bucket die u in de vorige stap heeft aangemaakt.
9. Selecteer onder "Advanced settings > Service access" de optie **Choose existing IAM role** en kies de IAM-rol die u in de vorige stap heeft aangemaakt.
10. (Optioneel) Schakel onder "Advanced settings > Amazon CloudWatch error logging" error logging in om gebruik te maken van de `logs:PutLogEvents`-rechten die u in de vorige stap heeft verleend.
11. Gebruik dezelfde Firehose-streamnaam waarnaar u verwees bij het opzetten van de IAM-rol en selecteer vervolgens **Create Firehose stream**.

Om de verbinding te verifiëren kunt u de knop **Test with demo data** in de Firehose-console gebruiken. De stock-ticker-JSON-payloads die het verstuurt verschijnen in AppSignal onder **Logging** als afzonderlijke logregels — een handige end-to-end-controle voordat u echte loggroepen koppelt. U kunt ook `DeliveryToHttpEndpoint.Success` zien stijgen op het tabblad **Monitoring** van de Firehose-stream.

## Een IAM-rol opzetten voor CloudWatch

Maak een IAM-rol aan waarmee CloudWatch logs naar de Firehose delivery stream kan sturen. Gebruik de volgende 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>

Wijs de volgende permissions policy als inline policy aan de rol toe.

<Note>
  Zie [IAM-identiteitsmachtigingen
  toevoegen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
  voor instructies over het aanmaken van inline-policies voor 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>

Vervang `<AWS_REGION>`, `<AWS_ACCOUNT_ID>` en `<FIREHOSE_DELIVERY_STREAM>` door uw eigen waarden.

## Een CloudWatch log subscription aanmaken

1. Navigeer in de CloudWatch-console naar de loggroep waarvan u de logs wilt streamen.
2. Open het tabblad **Subscription filters**.
3. Selecteer **Create Amazon Data Firehose subscription filter**.
4. Kies de Firehose delivery stream uit [stap 4](#create-a-firehose-delivery-stream) en de IAM-rol uit [stap 5](#set-up-an-iam-role-for-cloudwatch).
5. Voer een **Subscription filter name** in en selecteer **Start streaming**.

Nadat u de subscription heeft opgeslagen, verschijnen logs in AppSignal onder de logbron die u hierboven heeft geconfigureerd. Als u een fout ziet bij het opslaan van de subscription, controleer dan of de IAM-rol in [stap 5](#set-up-an-iam-role-for-cloudwatch) de juiste regio, account-ID en naam van de delivery stream gebruikt.

Als logs niet in AppSignal verschijnen:

* Open het tabblad **Monitoring** van uw Firehose-stream en controleer `DeliveryToHttpEndpoint.Success`. De waarde moet rond 1 blijven; een daling of nul wijst erop dat AppSignal records weigert.
* Controleer de S3-foutbucket uit [stap 2](#set-up-an-s3-bucket-for-failed-deliveries). Mislukte records komen daar terecht en elk object bevat de reden van de weigering.
* Als records mislukken met een autorisatiefout, controleer dan of de **Access key** op de Firehose-stream overeenkomt met uw AppSignal-logbron-API-sleutel.

Komt u er nog steeds niet uit, [neem dan contact met ons op](mailto:support@appsignal.com) voor ondersteuning.
