Avant de commencer
Préparez les informations suivantes :- La clé API de votre source de log. Si vous n’avez pas encore de source de log, créez d’abord une nouvelle source de log.
- Le nom du log group CloudWatch existant que vous souhaitez diffuser vers AppSignal.
- La région AWS où se trouve le log group. Déployez la stack dans la même région et le même compte que le log group.
Ce que crée le modèle
Le modèle CloudFormation crée les ressources suivantes :- Un bucket S3 pour stocker les enregistrements dont la livraison échoue, avec un chiffrement côté serveur, l’accès public bloqué, une expiration de cycle de vie de 30 jours et une politique de conservation à la suppression.
- Un rôle IAM qui permet à Amazon Data Firehose d’écrire les enregistrements échoués dans le bucket S3 et d’écrire ses propres logs d’erreurs de livraison dans CloudWatch.
- Un flux de livraison Firehose qui envoie les logs vers le point de terminaison AppSignal via HTTPS.
- Un rôle IAM qui permet à CloudWatch Logs d’écrire dans le flux de livraison Firehose.
- Un filtre d’abonnement de log CloudWatch sur votre log group existant qui transfère les événements de log vers le flux de livraison Firehose.
Modèle CloudFormation
Copiez le modèle suivant et enregistrez-le sousappsignal-cloudwatch-logs.yaml :
L’instruction
logs:PutLogEvents permet à Firehose d’écrire ses propres logs d’erreurs de livraison dans CloudWatch. Elle cible le log group d’erreurs de Firehose (/aws/kinesisfirehose/<STREAM_NAME>), qui est distinct du log group que vous voulez diffuser vers AppSignal. Consultez Controlling access with Amazon Data Firehose pour plus de détails.Déployer la stack
- Ouvrez la console AWS CloudFormation.
- Sélectionnez Create stack et choisissez With new resources (standard).
- Sous Specify template, sélectionnez Upload a template file et téléchargez
appsignal-cloudwatch-logs.yaml. - Sélectionnez Next.
- Entrez un nom de stack, par exemple
appsignal-cloudwatch-logs. - Pour LogSourceApiKey, entrez la clé API de votre source de log.
- Pour CloudWatchLogGroupName, entrez le nom exact du log group que vous souhaitez diffuser.
- Sélectionnez Next deux fois, puis cochez I acknowledge that AWS CloudFormation might create IAM resources et sélectionnez Submit.
Vérifier le déploiement
- Dans la console AWS, recherchez « CloudFormation » et sélectionnez Stacks. Ouvrez votre stack et sélectionnez l’onglet Resources pour confirmer que toutes les ressources affichent CREATE_COMPLETE.
- Dans la console AWS, recherchez « CloudWatch ». Dans la barre latérale gauche, ouvrez votre log group et sélectionnez l’onglet Subscription filters pour confirmer que le filtre
AppSignalest listé. - Dans la console AWS, recherchez « Firehose ». Ouvrez le flux de livraison et utilisez la fonction Test with demo data pour vérifier la connectivité.
- Dans AppSignal, ouvrez l’écran de gestion des logs et confirmez que les entrées de log de votre log group y apparaissent.
Déploiements multi-régions
Le modèle doit être déployé dans la même région et le même compte que le log group CloudWatch. Si vous avez des log groups dans plusieurs régions, déployez une copie distincte de cette stack dans chaque région.Nettoyage
Pour supprimer toutes les ressources créées par ce modèle, supprimez la stack dans la console CloudFormation. Le bucket S3 destiné aux livraisons échouées a uneDeletionPolicy à Retain, il est donc conservé lorsque la stack est supprimée afin d’éviter de perdre des enregistrements de livraison échoués. Les enregistrements de livraison échoués dans le bucket sont automatiquement supprimés après 30 jours par la règle de cycle de vie. Vous pouvez supprimer le bucket manuellement lorsque vous n’en avez plus besoin.