Dépannage pour la collecte de logs

Plusieurs problèmes courants peuvent survenir lors de l’envoi de nouveaux logs à Datadog via le collecteur de logs dans dd-agent. Si vous rencontrez des problèmes lors de l’envoi de nouveaux logs à Datadog, la liste suivante peut vous aider à les corriger. Si vous ne parvenez pas à résoudre votre problème, contactez l’assistance Datadog pour obtenir de l’aide.

Redémarrez l’Agent

Les modifications de la configuration de datadog-agent prennent uniquement effet une fois l’Agent Datadog redémarré.

Le trafic sortant du port 10516 est bloqué

L’Agent Datadog envoie ses logs à Datadog par tcp via le port 10516. Si cette connexion n’est pas disponible, les logs ne sont pas envoyés et une erreur est enregistrée dans le fichier agent.log.

Testez manuellement votre connexion en exécutant une commande telnet ou openssl comme suit (le port 10514 fonctionne également, mais cette méthode est moins sécurisée) :

  • openssl s_client -connect intake.logs.datadoghq.com:10516
  • telnet intake.logs.datadoghq.com 10514

Envoyez ensuite un log comme suit :

<CLÉ_API> Ceci est un message test
  • Si vous ne pouvez pas ouvrir le port 10514 ou 10516, vous pouvez configurer l’Agent Datadog de façon à envoyer des logs via HTTPS en ajoutant ce qui suit à datadog.yaml :
logs_config:
  use_http: true

Consultez la section Envoyer des logs via HTTPS pour en savoir plus.

Vérifier le statut de l’Agent

Il est souvent utile de consulter les résultats de la commande statut de l’Agent pour mieux comprendre votre problème.

Aucun nouveau log créé

L’Agent Datadog recueille uniquement les logs qui ont été écrits une fois qu’il a commencé à les recueillir (en les suivant ou en les écoutant). Afin de vous assurer que la collecte de logs est bien configurée, vérifiez que de nouveaux logs ont été écrits.

Problèmes d’autorisation lors du suivi de fichiers de log

datadog-agent n’est pas exécuté en mode root (et le faire est déconseillé, de façon générale). C’est pourquoi lorsque vous configurez votre datadog-agent afin de suivre des fichiers de log (pour les logs personnalisés ou pour les intégrations), vous devez vous assurer que l’utilisateur datadog-agent bénéficie d’un accès en lecture aux fichiers de log dont vous souhaitez recueillir les données.

Le message d’erreur suivant devrait alors s’afficher lorsque vous consultez le statut de l’Agent :

==========
Logs Agent
==========

  test
  ----
    Type: file
    Path: /var/log/application/error.log
    Status: Erreur : le fichier /var/log/application/error.log n'existe pas

Lancez la commande namei pour obtenir plus d’informations sur les autorisations du fichier :

> namei -m /var/log/application/error.log
> f: /var/log/application/error.log
 drwxr-xr-x /
 drwxr-xr-x var
 drwxrwxr-x log
 drw-r--r-- application
 -rw-r----- error.log

Dans cet exemple, le dossier application n’est pas exécutable par l’Agent, ce dernier ne peut donc pas récupérer la liste de ses fichiers. De plus, l’Agent ne dispose pas des autorisations de lecture pour le fichier error.log. Ajoutez les autorisations manquantes via la commande chmod.

Remarque : lorsque vous ajoutez les autorisations de lecture appropriées, assurez-vous que ces autorisations sont correctement configurées dans votre configuration de rotation de log. Dans le cas contraire, à la prochaine rotation de log, l’Agent Datadog peut perdre ses autorisations de lecture. Définissez les autorisations sur 644 dans la configuration de la rotation de log pour vous assurer que l’Agent dispose d’un accès en lecture aux fichiers.

Problème d’autorisation et Journald

Lorsque vous recueillez des logs à partir de Journald, assurez-vous que l’utilisateur de l’Agent Datadog est ajouté au groupe systemd en suivant les instructions de l’intégration Journald.

Remarque : Journald envoie une charge utile vide si les autorisations du fichier sont incorrectes. Il n’est donc pas possible de générer ou d’envoyer un message d’erreur explicite dans ce cas.

Problèmes de configuration

Nous vous conseillons de vérifier plusieurs fois les problèmes de configuration les plus courants dans l’implémentation de votre datadog-agent :

  1. Vérifiez si la clé d’API api_key est définie dans datadog.yaml.

  2. Vérifiez que votre datadog.yaml contient la ligne logs_enabled: true

  3. Par défaut, l’Agent ne recueille aucun log. Vérifiez qu’au moins un fichier .yaml du répertoire conf.d/ de l’Agent inclut une section logs et les valeurs adéquates.

  4. Des erreurs peuvent se produire durant le parsing de vos fichiers de configuration .yaml. Le format YAML étant relativement rigide, utilisez un validateur YAML en cas de doute.

Rechercher des erreurs dans les logs de l’Agent

Les logs peuvent contenir une erreur capable d’expliquer le problème. Pour rechercher des erreurs, exécutez la commande suivante :

sudo cat /var/log/datadog/agent.log | grep ERROR

Environnement Docker

Consulter le Guide de dépannage pour la collecte de logs Docker

Environnement sans serveur

Consulter le guide de dépannage pour la collecte de logs Lambda

Filtrage inattendu de logs

Vérifiez que les logs apparaissent bien sur la page Live Tail de Datadog. Si c’est le cas, recherchez sur la page de configuration des index tout filtre d’exclusion qui pourrait entraîner le filtrage de vos logs.

Pour aller plus loin