Skip to main content
🔐 Senden Sie keine personenbezogenen Daten (Personal Identifiable Information, PII) 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.

Für HIPAA-pflichtige Stellen finden Sie weitere Informationen zum Abschluss eines Business Associate Agreement (BAA) in unserer Business Add-Ons-Dokumentation.
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
  2. Einen S3-Bucket für fehlgeschlagene Zustellungen einrichten
  3. Eine IAM-Rolle für Data Firehose einrichten
  4. Einen Firehose-Delivery-Stream erstellen
  5. Eine IAM-Rolle für CloudWatch einrichten
  6. Ein CloudWatch-Log-Abonnement erstellen
Bevor Sie beginnen, halten Sie die folgenden Informationen bereit:
  • Den API-Schlüssel Ihrer Log-Quelle. Wenn Sie noch keine Log-Quelle haben, erstellen Sie zuerst eine neue Log-Quelle.
  • 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 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:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "firehose.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Weisen Sie der Rolle die folgende Berechtigungsrichtlinie als Inline-Policy zu.
Siehe Hinzufügen von IAM-Identitäts-Berechtigungen für Anweisungen zur Erstellung von Inline-Richtlinien für IAM-Rollen.
{
  "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>:*"
      ]
    }
  ]
}
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.
Siehe Controlling access with Amazon Data Firehose für mehr zu den Berechtigungen, die Data Firehose benötigt.

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:
https://appsignal-endpoint.net/logs/aws-kinesis
  1. Geben Sie Ihren AppSignal-Log-Source-API-Schlüssel aus dem Erstellen einer Log-Quelle als Access key ein. Dies ist ein AppSignal-Schlüssel, kein AWS-Access-Key.
  2. Aktivieren Sie unter „Content encoding” GZIP.
  3. Wählen Sie unter „Backup settings” den S3-Bucket aus, den Sie im vorherigen Schritt erstellt haben.
  4. 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.
  5. (Optional) Aktivieren Sie unter „Advanced settings > Amazon CloudWatch error logging” das Fehler-Logging, um die im vorherigen Schritt erteilte Berechtigung logs:PutLogEvents zu nutzen.
  6. 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:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { "Service": "logs.<AWS_REGION>.amazonaws.com" },
      "Action": "sts:AssumeRole"
    }
  ]
}
Weisen Sie der Rolle die folgende Berechtigungsrichtlinie als Inline-Policy zu.
Siehe Hinzufügen von IAM-Identitäts-Berechtigungen für Anweisungen zur Erstellung von Inline-Richtlinien für IAM-Rollen.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["firehose:*"],
      "Resource": [
        "arn:aws:firehose:<AWS_REGION>:<AWS_ACCOUNT_ID>:deliverystream/<FIREHOSE_DELIVERY_STREAM>"
      ]
    }
  ]
}
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 und die IAM-Rolle aus Schritt 5.
  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 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. 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 für Support.