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 ?

Brève 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

Solution

Remarque : 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 statut 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 de l'interface de ligne de commande AWS (CLI AWS). 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é, assurez-vous 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 :

  • Assurez-vous 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 source 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 pour 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 de débogage . Si vous utilisez le paramètre run_as_user , vérifiez que l'utilisateur dispose des autorisations d’accès au chemin de l'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 également 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 ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?