Pourquoi ne parviens-je pas à envoyer des données de journaux vers CloudWatch Logs avec l'agent awslogs ?

Dernière mise à jour : 06/11/2020

Je ne parviens pas à envoyer des données de journaux vers Amazon CloudWatch Logs avec l'agent CloudWatch Logs (awslogs). Comment puis-je résoudre ce problème ?

Résolution

Avant de commencer, vérifiez que l'agent awslogs peut se connecter au point de terminaison de l'API CloudWatch Logs.

Vérifiez que votre configuration dispose des éléments suivants :

  • Connectivité Internet
  • Configurations de groupe de sécurité valides
  • Listes de contrôle d'accès réseau (listes ACL réseau) valides

Problèmes d'empreinte

Vérifiez les lignes d'en-tête du fichier journal source. Vous définissez le chemin d'accès de ce fichier lors de la configuration des données à envoyer à CloudWatch.

  • Si les quelques premières lignes sont vides ou contiennent des données non liées à des événements qui restent identiques, il se peut que vous ayez des problèmes liés au hachage d'identification de journal.
  • Si les lignes d'en-tête sont les mêmes, mettez à jour l'option file_fingerprint_lines dans le fichier de configuration de l'agent. Assurez-vous de spécifier quelles sont les lignes de chaque fichier utilisées pour la génération du hachage d'identification.

Vérifier les erreurs dans le fichier journal awslogs

Vérifiez le fichier journal /var/log/awslogs.log. Le cas échéant, notez les messages d'erreur.

Les erreurs d'autorisation incluent :

  • NoCredentialsError: Unable to locate credentials : si vous n'avez pas ajouté de rôle IAM (AWS Identity and Access Management) à l'instance, créez et attachez un rôle IAM. Si vous avez déjà ajouté un rôle IAM à l'instance, mettez à jour les informations d'identification de l'utilisateur IAM dans le fichier /etc/awslogs/awscli.conf.
  • ClientError: An error occurred (AccessDeniedException) when calling the PutLogEvents operation: User: arn:aws:iam::012345678910:<rôle/utilisateur>/<nom_utilisateur_iam> is not authorized to perform: logs:PutLogEvents[...] :configurez le rôle ou l'utilisateur IAM avec les autorisations requises pour CloudWatch Logs.

Les erreurs d'horodatage incluent :

  • Fall back to previous event time: {'timestamp': 1492395793000, 'start_position': 17280L, 'end_position': 17389L}, previousEventTime: 1492395793000, reason: timestamp could not be parsed from message. : vérifiez que les événements de journal commencent par un horodatage. Vérifiez si l'élément datetime_format spécifié dans /etc/awslogs/awslogs.conf correspond au format d'horodatage des événements de journal. Modifiez l'élément datetime_format de sorte qu'il corresponde au format d'horodatage requis.
  • No file is found with given path '<CHEMIN_FICHIER>' : mettez à jour le chemin d'accès au fichier journal dans le fichier de configuration de l'agent pour spécifier le chemin correct.
  • Caught exception: An error occurred (InvalidSequenceTokenException) when calling the PutLogEvents operation: The given sequenceToken is invalid[…] ou Multiple agents might be sending log events to log stream[…] : vous ne pouvez pas envoyer des journaux à partir de plusieurs fichiers journaux vers un flux de journaux unique. Mettez à jour votre configuration pour envoyer chaque journal vers une combinaison flux de journal/groupe de journaux.

Autres problèmes awslogs

  • Si les journaux ont cessé l'envoi après une rotation des journaux, vérifiez les méthodes de rotation des journaux prises en charge. Pour plus d'informations, consultez FAQ sur l'agent CloudWatch Logs.
  • Si les journaux sont envoyés uniquement peu de temps après le redémarrage de l'agent awslogs, vérifiez les doublons dans la section [logstream] du fichier de configuration de l'agent. Chaque section doit avoir un nom unique.
  • Si le fichier journal awslogs.log occupe trop d'espace disque, recherchez les erreurs et corrigez-les. Si le fichier journal contient uniquement des messages d'information, spécifiez un niveau de consignation moins élevé pour l'option logging_config_file dans le fichier de configuration de l'agent.

Dépannage plus approfondi

Pour un dépannage plus approfondi, notez l'instance-id (ID de votre instance). Ensuite, collectez et examinez les éléments suivants en fonction de votre configuration.

Installations Yum :

  • Version de yum
$ yum info awslogs
$ yum info aws-cli-plugin-cloudwatch-logs
  • Fichier /etc/awslogs/awslogs.conf
  • Fichier /etc/awslogs/awscli.conf
  • Autres fichiers pertinents dans /etc/awslogs/
  • Fichier /var/log/awslogs.log

Installations basées sur un script :

  • Version d'awslogs, obtenue par l'intermédiaire de la commande suivante :
$ /var/awslogs/bin/awslogs-version.sh
  • Fichier /var/awslogs/etc/awslogs.conf
  • Fichier /var/awslogs/etc/awscli.conf
  • Autres fichiers pertinents dans /var/awslogs/etc/
  • /var/log/awslogs.log
  • Fichier /var/log/awslogs-agent-setup.log

Pour les problèmes liés à la rotation, collectez et vérifiez :

  • Un extrait des journaux source.
  • Une liste du contenu du répertoire cible de surveillance. Utilisez la commande ls -la avec le chemin d'accès au répertoire pour obtenir ceci :
$ ls -la <Monitoring-Target-Directory-Path>

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


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