Je souhaite résoudre les problèmes liés aux journaux Amazon CloudWatch Logs qui ne sont pas exportés vers des compartiments Amazon Simple Storage Service (Amazon S3).
Résolution
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de d’AWS CLI.
Résolvez les problèmes liés à l’échec de l’exportation de vos journaux vers des compartiments Amazon S3 en fonction de leur échec lors de la création de la tâche d’exportation ou après celle-ci.
Pendant la création de la tâche d’exportation
Pour résoudre les problèmes liés aux tâches qui échouent lorsque vous les créez, procédez comme suit :
- Région AWS : Vérifiez que vos flux de journaux CloudWatch et vos compartiments Amazon S3 se trouvent bien dans la même région.
- Politiques relative aux compartiments Amazon S3 : Par défaut, les compartiments et les objets Amazon S3 sont privés. Le propriétaire de la ressource n’a accès qu’au compartiment et aux objets qui y sont contenus. Pour en savoir plus, consultez la section Étape 3 : Définissez des autorisations sur un compartiment S3.
- Préfixes de compartiment Amazon S3 : Lorsque vous définissez la politique du compartiment Amazon S3, il est recommandé d’inclure une chaîne générée de manière aléatoire comme préfixe du compartiment. Si vous utilisez un préfixe, vous devez spécifier la chaîne générée dans les paramètres de préfixe du compartiment Amazon S3 lorsque vous créez la tâche d’exportation. Si vous ne spécifiez pas la chaîne générée, la création de la tâche d’exportation échoue.
- Politiques de gestion des identités et des accès (IAM) d’AWS : Vérifiez que l’utilisateur ou le rôle de gestion des identités et des accès (IAM) d’AWS qui a créé la tâche d’exportation a accès à Amazon S3 et aux journaux CloudWatch Logs. Pour en savoir plus, consultez la section Étape 2 : configurer les autorisations d’accès.
- Consultez les journaux CloudTrail : Recherchez l’événement CreateExportTask dans AWS CloudTrail pour identifier le message d’erreur. CreateExportTask est une opération asynchrone. Si vous fournissez toutes les informations nécessaires, une tâche d’exportation est lancée et renvoie l’ID de la tâche. Lorsque la tâche commence, utilisez DescribeExportTasks pour vérifier son statut. Pour en savoir plus, consultez la section Erreurs.
- Quotas de ressources : Le quota du service CloudWatch Logs n’autorise qu’une seule tâche d’exportation en cours ou en attente par compte AWS et par région. Vous ne pouvez pas modifier ce quota. Assurez-vous que vous respectez le quota autorisé.
- Type de chiffrement côté serveur : Assurez-vous d’utiliser un chiffrement côté serveur compatible à vos compartiments Amazon S3. Les chiffrements pris en charge incluent la norme Advanced Encryption Standard (AES)-256 et le chiffrage côté serveur qui utilise des clés AWS Key Management Service (AWS KMS). Ces chiffrements pris en charge sont connus sous le nom de SSE-KMS.
Après la création de la tâche d’exportation
Pour résoudre les problèmes liés aux tâches qui échouent après leur création, vérifiez les paramètres de la plage horaire. Si vous exportez des flux de journaux contenant de grandes quantités de données et spécifiez une longue plage horaire, la tâche d’exportation risque d’échouer. Pour résoudre ce problème, configurez des plages horaire de manière à ce qu’elles soient plus courtes afin d’exporter les flux de journaux contenant des volumes de données inférieurs.
Pour vérifier l’état du paramètre de plage horaire, exécutez la commande describe-export-tasks de l’interface de la ligne de commande AWS suivante :
aws logs describe-export-tasks --task-id example-task-id
Remarque : saisissez votre identifiant de tâche à la place de example-task-id.
Pour exporter des données vers Amazon S3, exécutez la commande create-export-task de l’interface de la ligne de commande AWS suivante :
aws logs create-export-task --task-name "example-task-name" --log-group-name "/aws/lambda/example-log-group-name" --destination "example-bucket-name --from 1710378735 --to 1710465135
Remarque : saisissez le nom de votre tâche à la place de example-task-name. Saisissez le nom de votre groupe de journaux à la place de example-log-group-name. Saisissez votre compartiment de destination à la place de example-bucket-name.
Pour vérifier l’état de la tâche d’exportation, exécutez la commande describe-export-tasks de l’interface de la ligne de commande AWS suivante :
aws logs describe-export-tasks --task-id example-task-id
Remarque : saisissez votre identifiant de tâche à la place de example-task-id.
Les journaux peuvent prendre une douzaine d’heures avant d’être disponibles pour l’exportation. Le traitement de la tâche d’exportation peut également durer quelques heures. Ce processus dépend de la taille des données que vous exportez. Il est recommandé d’utiliser des filtres d’abonnement au niveau des groupes de journaux pour les traiter en temps réel ou pour archiver en permanence les nouvelles données sur Amazon S3. Pour plus d’informations, consultez la section Traitement en temps réel des données du journal avec les abonnements.
Informations connexes
J’ai configuré Amazon CloudWatch pour exporter les données des journaux vers Amazon S3, mais les données du journal sont manquantes ou non valides. Comment résoudre ce problème ?
Comment récupérer les données des journaux à partir de CloudWatch Logs ?
Exportation de données des journaux vers Amazon S3