Pourquoi l'agent CloudWatch unifié ne transmet-il pas les événements de journaux ?

Date de la dernière mise à jour : 28/04/2020

J'utilise l'agent CloudWatch unifié pour transférer des journaux vers Amazon CloudWatch Logs. Toutefois, je ne vois pas les journaux dans la console CloudWatch Logs. Pourquoi l'agent CloudWatch unifié ne transmet-il pas les événements de journaux ?

Courte description

Les problèmes suivants peuvent empêcher l'agent CloudWatch unifié de transmettre les événements de journaux :

  • Métadonnées désynchronisées générées par la création d'une Amazon Machine Image (AMI) après l'installation de l'agent CloudWatch
  • Utilisation d'une version obsolète de l'agent CloudWatch
  • Échec de la connexion au point de terminaison CloudWatch Logs
  • Configuration de compte, de région ou de groupe de journaux incorrecte
  • Autorisations AWS Identity and Access Management (IAM) insuffisantes
  • Erreurs d'exécution de l'agent CloudWatch
  • Problèmes d'horodatage

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Important : les étapes de résolution des problèmes suivantes ne s'appliquent pas à Container Insights. Pour plus d'informations sur la résolution des problèmes liés à Container Insights, consultez Résolution des problèmes liés à Container Insights et Comment résoudre le problème de l'état du pod dans Amazon EKS ?

Vérifier la méthode d'installation de l'agent CloudWatch

Une bonne pratique consiste à installer l'agent CloudWatch lors du lancement à l'aide d'AWS CloudFormation, d'AWS Systems Manager Agent (SSM Agent), de scripts de données utilisateur ou d'AWS CLI. La création d'une AMI avec l'agent CloudWatch déjà installé n'est pas recommandée. Les AMI capturent généralement des informations uniques à partir de l'instance d'origine. Les métadonnées sont désynchronisées, et cet état amener l'agent CloudWatch ne pas fonctionner correctement. Les métadonnées désynchronisées sont la raison pour laquelle de nombreuses instances Windows nécessitent Sysprep lors de l'utilisation d'une AMI. Pour connaître les instructions, consultez Comment utiliser Sysprep pour créer et installer des AMI Windows réutilisables personnalisées ?

Confirmer que vous utilisez la dernière version de l'agent CloudWatch

Téléchargez et consultez les fichiers README pour accéder aux notes de mise à jour de l'agent CloudWatch et connaître le numéro de version le plus récent. Si vous utilisez une version antérieure de l'agent CloudWatch, veillez à effectuer une mise à niveau. La dernière version peut inclure des mises à jour qui permettent de résoudre le problème que vous rencontrez.

Tester la connectivité à votre point de terminaison CloudWatch Logs

Testez la connectivité au point de terminaison CloudWatch Logs à l'aide de l'une des commandes suivantes :

telnet logs.<region>.amazonaws.com 443
nc -zv logs.<region>.amazonaws.com 443

Si vous rencontrez des échecs de connectivité, vérifiez que :

  • Les règles de groupe de sécurité et de liste de contrôle d'accès (ACL) réseau permettent la connectivité.
  • Votre instance peut atteindre le point de terminaison public à l'aide d'une passerelle Internet ou d'une passerelle de traduction d'adresses réseau (NAT).
  • Si vous utilisez des points de terminaison VPC, le point de terminaison est résolu sur une adresse IP VPC et le groupe de sécurité du point de terminaison autorise l'accès à partir de l'instance source.

Vérifier les configurations de votre compte, région et groupe de journaux

Dans le fichier de configuration de l'agent CloudWatch :

  • Vérifiez que la région spécifiée correspond à la région de la console
  • Vérifier que les journaux sont enregistrés dans le compte approprié

Le cas échéant, vous pouvez utiliser le fichier common-config.toml pour remplacer les valeurs système par défaut de l'agent CloudWatch. Ces valeurs système par défaut incluent le proxy, la région et les informations d'identification de l'agent. Le fichier se trouve dans les emplacements suivants.

Linux :

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml

-OU-

/etc/amazon/amazon-cloudwatch-agent/common-config.toml

Windows :

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

Vérifier vos autorisations IAM

L'agent CloudWatch utilise les informations d'identification de l'utilisateur IAM ou de la politique de rôle IAM pour transmettre les événements de journaux au service CloudWatch. Pour qu'un événement de journal puisse être publié, vous devez créer un groupe de journaux et un flux de journaux. S'il n'en existe pas, l'agent CloudWatch les crée.

Vérifiez que votre politique inclut les autorisations IAM suivantes :

"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

Ajoutez les autorisations IAM manquantes à la politique utilisateur ou à la politique de rôle.

Remarque : lors de la création des rôles et des utilisateurs IAM, la bonne pratique consiste à utiliser les politiques CloudWatchAgentServerPolicy et CloudWatchAgentAdminPolicy créées par Amazon à la place de politiques personnalisées.

Résoudre les erreurs d'exécution de l'agent CloudWatch

Vérifiez que l'agent CloudWatch est en cours d'exécution. Si l'agent n'est pas en cours d'exécution, recherchez les erreurs dans le fichier journal et résolvez-les. Les fichiers journaux se trouvent dans les emplacements suivants.

Linux :

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows :

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

Remarque : les journaux peuvent être spécifiés dans un emplacement logfile personnalisé. Vérifiez le fichier de configuration de l'agent afin d'identifier les emplacements de journaux personnalisés.

Dans le fichier de configuration de l'agent, activez la journalisation de débogage détaillée à l'aide du paramètre debug. Si vous utilisez le paramètre run_as_user, vérifiez que l'utilisateur dispose des autorisations d'accès au chemin d'emplacement des journaux. Sans les autorisations nécessaires, l'agent CloudWatch ne peut pas écrire de journaux dans l'emplacement.

Résoudre les problèmes d'horodatage

Recherchez les horodatages d'événements de journaux de plus de 14 jours ou de plus de 2 heures dans le futur. La commande PutLogEvents n'autorise pas les lots de journaux dans les deux périodes.

Vérifiez aussi que le service d'heure système sur l'instance est correctement configuré. Pour plus d'informations, consultez :


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?