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.
- Den Namen der bestehenden CloudWatch-Log-Gruppe, die Sie an AppSignal streamen möchten.
- Die AWS-Region, in der die Log-Gruppe liegt. Deployen Sie den Stack in derselben Region und demselben Konto wie die Log-Gruppe.
Was die Vorlage erstellt
Die CloudFormation-Vorlage erstellt die folgenden Ressourcen:- Einen S3-Bucket zur Speicherung von Datensätzen, deren Zustellung fehlschlägt, mit serverseitiger Verschlüsselung, blockiertem öffentlichem Zugriff, einer Lebenszyklus-Verfallsfrist von 30 Tagen und einer Retain-on-Delete-Richtlinie.
- Eine IAM-Rolle, die es Amazon Data Firehose erlaubt, fehlgeschlagene Datensätze in den S3-Bucket zu schreiben und eigene Zustellfehler-Logs in CloudWatch zu schreiben.
- Einen Firehose-Delivery-Stream, der Logs über HTTPS an den AppSignal-Endpunkt sendet.
- Eine IAM-Rolle, die es CloudWatch Logs erlaubt, in den Firehose-Delivery-Stream zu schreiben.
- Einen CloudWatch-Log-Abonnementfilter für Ihre bestehende Log-Gruppe, der Log-Ereignisse an den Firehose-Delivery-Stream weiterleitet.
CloudFormation-Vorlage
Kopieren Sie die folgende Vorlage und speichern Sie sie alsappsignal-cloudwatch-logs.yaml:
Die Anweisung
logs:PutLogEvents erlaubt es Firehose, eigene Zustellfehler-Logs in CloudWatch zu schreiben. Sie zielt auf die Firehose-Fehler-Log-Gruppe (/aws/kinesisfirehose/<STREAM_NAME>), die getrennt von der Log-Gruppe ist, die Sie an AppSignal streamen möchten. Siehe Controlling access with Amazon Data Firehose für weitere Details.Den Stack deployen
- Öffnen Sie die AWS-CloudFormation-Konsole.
- Wählen Sie Create stack und dann With new resources (standard).
- Wählen Sie unter Specify template die Option Upload a template file und laden Sie
appsignal-cloudwatch-logs.yamlhoch. - Wählen Sie Next.
- Geben Sie einen Stack-Namen ein, zum Beispiel
appsignal-cloudwatch-logs. - Geben Sie bei LogSourceApiKey den API-Schlüssel Ihrer Log-Quelle ein.
- Geben Sie bei CloudWatchLogGroupName den exakten Namen der Log-Gruppe ein, die Sie streamen möchten.
- Wählen Sie zweimal Next, aktivieren Sie dann I acknowledge that AWS CloudFormation might create IAM resources und wählen Sie Submit.
Das Deployment überprüfen
- Suchen Sie in der AWS-Konsole nach „CloudFormation” und wählen Sie Stacks. Öffnen Sie Ihren Stack und wählen Sie den Tab Resources, um zu bestätigen, dass alle Ressourcen CREATE_COMPLETE anzeigen.
- Suchen Sie in der AWS-Konsole nach „CloudWatch”. Öffnen Sie in der linken Seitenleiste Ihre Log-Gruppe und wählen Sie den Tab Subscription filters, um zu bestätigen, dass der Filter
AppSignalaufgeführt ist. - Suchen Sie in der AWS-Konsole nach „Firehose”. Öffnen Sie den Delivery-Stream und nutzen Sie die Funktion Test with demo data, um die Konnektivität zu überprüfen.
- Öffnen Sie in AppSignal den Log-Management-Bildschirm und bestätigen Sie, dass dort Log-Einträge aus Ihrer Log-Gruppe erscheinen.
Multi-Region-Deployments
Die Vorlage muss in derselben Region und demselben Konto wie die CloudWatch-Log-Gruppe deployt werden. Wenn Sie Log-Gruppen in mehreren Regionen haben, deployen Sie eine separate Kopie dieses Stacks in jeder Region.Aufräumen
Um alle von dieser Vorlage erstellten Ressourcen zu entfernen, löschen Sie den Stack in der CloudFormation-Konsole. Der S3-Bucket für fehlgeschlagene Zustellungen hat eineDeletionPolicy von Retain, sodass er beim Löschen des Stacks erhalten bleibt, um keine fehlgeschlagenen Zustell-Datensätze zu verlieren. Fehlgeschlagene Zustell-Datensätze im Bucket werden durch die Lebenszyklus-Regel automatisch nach 30 Tagen gelöscht. Sie können den Bucket manuell löschen, sobald Sie ihn nicht mehr benötigen.