La collecte des journaux nécessite l’Agent Datadog v6.0+. Les versions antérieures de l’Agent n’incluent pas l’interface log collection. Si vous n’utilisez pas déjà l’Agent, suivez les instructions d’installation de l’Agent .
Consultez la section relative aux pipelines dʼobservabilité si vous souhaitez envoyer des logs en utilisant Collector ou Forwarder d’un autre fournisseur, ou si vous souhaitez prétraiter les données de vos logs dans votre environnement avant de les envoyer.
Activez la collecte des journaux
La collecte des journaux n’est pas activée par défaut dans l’Agent Datadog. Si vous exécutez l’Agent dans un environnement Kubernetes ou Docker, consultez la documentation dédiée à la Collecte des journaux Kubernetes ou à la Collecte des journaux Docker.
Pour activer la collecte des journaux avec un Agent fonctionnant sur votre hôte, changez logs_enabled: false en logs_enabled: true dans le fichier de configuration principal de l’Agent (datadog.yaml).
À partir de l'Agent v6.19+/v7.19+, le transport HTTPS est le transport par défaut utilisé. Pour plus de détails, voir Transport de l'Agent.
Pour envoyer des journaux avec des variables d’environnement, configurez ce qui suit :
DD_LOGS_ENABLED=true
Après avoir activé la collecte des journaux, l’Agent est prêt à transférer les journaux vers Datadog. Ensuite, configurez l’Agent pour indiquer d’où collecter les journaux.
Collecte de journaux personnalisée
L’Agent Datadog v6 peut recueillir des logs et les transférer à Datadog à partir des fichiers, du réseau (TCP ou UDP), de journald et des canaux Windows :
Dans le répertoire conf.d/ à la racine de votre répertoire de configuration de l’Agent, créez un nouveau dossier <CUSTOM_LOG_SOURCE>.d/ accessible par l’utilisateur Datadog.
Créez un nouveau fichier conf.yaml dans ce nouveau dossier.
Ajoutez un groupe de configuration de collecte de journaux personnalisé avec les paramètres ci-dessous.
Voici des exemples de configuration de collecte de logs personnalisée ci-dessous :
Pour rassembler les journaux de votre application <APP_NAME> stockée dans <PATH_LOG_FILE>/<LOG_FILE_NAME>.log, créez un fichier <APP_NAME>.d/conf.yaml à la racine de votre répertoire de configuration de l’Agent avec le contenu suivant :
Sur Windows, utilisez le chemin <DRIVE_LETTER>:\\<PATH_LOG_FILE>\\<LOG_FILE_NAME>.log et vérifiez que l’utilisateur ddagentuser a accès en lecture au fichier journal.
Remarque : Une ligne de journal doit se terminer par un caractère de nouvelle ligne, \n ou \r\n, sinon l’Agent attend indéfiniment et ne transmet pas la ligne de journal.
Pour capturer l’adresse IP de l’expéditeur et l’inclure dans la charge utile du message journal, ajoutez la configuration suivante à votre fichier datadog.yaml :
logs_config:use_sourcehost_tag:true
Pour rassembler les journaux de votre application <APP_NAME> qui transfère ses journaux vers le port TCP 10518, créez un fichier <APP_NAME>.d/conf.yaml à la racine de votre répertoire de configuration de l’Agent avec le contenu suivant :
Si vous utilisez Serilog, Serilog.Sinks.Network est une option pour se connecter avec UDP.
Depuis la version 7.31.0 de l’Agent, la connexion TCP reste ouverte indéfiniment même en cas d’inactivité.
Remarques :
L’Agent prend en charge les journaux au format brut, JSON et Syslog. Si vous envoyez des journaux par lots, utilisez des caractères de saut de ligne pour séparer vos journaux.
Une ligne de journal doit se terminer par un caractère de nouvelle ligne, \n ou \r\n, sinon l’Agent attend indéfiniment et ne transmet pas la ligne de journal.
Pour rassembler les journaux de journald, créez un fichier journald.d/conf.yaml à la racine de votre répertoire de configuration de l’Agent avec le contenu suivant :
logs:- type:journaldpath:/var/log/journal/
Consultez la documentation relative à l’intégration journald pour en savoir plus sur la configuration des environnements conteneurisés et du filtrage des unités.
Pour envoyer des événements Windows en tant que journaux à Datadog, ajoutez les canaux à conf.d/win32_event_log.d/conf.yaml manuellement ou utilisez le Gestionnaire d’Agent Datadog.
Pour consulter votre liste de canaux, exécutez la commande suivante dans PowerShell :
Get-WinEvent -ListLog *
Pour connaître les canaux les plus actifs, exécutez la commande suivante dans PowerShell :
Modifiez les paramètres <CHANNEL_X> avec le nom du canal Windows à partir duquel vous souhaitez collecter des événements.
Définissez le paramètre source correspondant au même nom de canal pour bénéficier de la configuration automatique du pipeline de traitement d’intégration.
Suivez les étapes de ces sections pour envoyer les journaux de l’emplacement privé Windows à Datadog :
Configurer l’Agent
Activez la collecte des journaux de l’Agent en définissant logs_enabled: true dans le fichier de configuration de l’Agent.
Accédez à C:\ProgramData\Datadog\conf.d et créez un dossier nommé synthetics_worker.d.
Dans le dossier synthetics_worker.d, créez un fichier nommé conf.yaml en utilisant l’exemple suivant comme modèle :
logs:- type:filepath:"C:\\Program Files\\Datadog-Synthetics\\Synthetics\\private-location-service.out.log"service:<YOUR_SERVICE>source:syntheticstags:# Defined per user preference- env:<YOUR_ENV>- private_location:<YOUR_PRIVATE_LOCATION>
Vérifiez l’utilisateur exécutant l’Agent
Étant donné que le dossier d’installation de l’emplacement privé est restreint à l’accès administrateur, l’Agent Datadog a besoin de l’autorisation d’accéder au fichier journal. Suivez ces étapes pour vérifier l’utilisateur exécutant l’Agent Datadog :
Appuyez sur la touche Windows et R, puis recherchez Run.
Trouvez l’Agent Datadog, faites un clic droit dessus et sélectionnez Properties.
Dans l’onglet Log On, vérifiez le compte (le défaut est ddagentuser).
Fermez la fenêtre.
Accordez l’autorisation à l’utilisateur exécutant l’Agent
Allez à C:\Program Files et trouvez le dossier synthetics_worker.d.
Faites un clic droit sur le dossier synthetics_worker.d et sélectionnez Properties.
Allez à l’onglet Security.
Cliquez sur Edit et ajoutez ddagentuser.
Accordez les autorisations nécessaires.
Redémarrez l’Agent Datadog via l’écran des Services ou la ligne de commande pour appliquer les modifications et commencer à envoyer des journaux à Datadog.
Liste complète des paramètres disponibles pour la collection de logs :
Paramètre
Requis
Description
type
Oui
Le type de source d’entrée de journal. Les valeurs valides sont : tcp, udp, file, windows_event, docker ou journald.
port
Oui
Si type est tcp ou udp, définissez le port pour écouter les journaux.
path
Oui
Si type est file ou journald, définissez le chemin du fichier pour rassembler les journaux.
channel_path
Oui
Si type est windows_event, listez les canaux d’événements Windows pour collecter les journaux.
service
Oui
Le nom du service possédant le journal. Si vous avez instrumenté votre service avec Datadog APM, cela doit être le même nom de service. Vérifiez les instructions de tagging de service unifié lors de la configuration de service à travers plusieurs types de données.
source
Oui
L’attribut qui définit quelle intégration envoie les journaux. Si les journaux ne proviennent pas d’une intégration existante, ce champ peut inclure un nom de source personnalisé. Cependant, il est recommandé d’aligner cette valeur sur l’espace de noms de toutes les métriques personnalisées que vous collectez, par exemple : myapp de myapp.request.count.
include_units
Non
Si type est journald, liste des unités journald spécifiques à inclure.
exclude_paths
Non
Si type est file, et path contient un caractère générique, listez le fichier ou les fichiers correspondants à exclure de la collecte de journaux. Ceci est disponible pour la version de l’Agent >= 6.18.
exclude_units
Non
Si type est journald, liste des unités journald spécifiques à exclure.
sourcecategory
Non
L’attribut utilisé pour définir la catégorie à laquelle appartient un attribut source, par exemple : source:postgres, sourcecategory:database ou source: apache, sourcecategory: http_web_access.
Si type est file, définissez l’encodage pour que l’Agent puisse lire le fichier. Définissez-le sur utf-16-le pour UTF-16 little-endian, utf-16-be pour UTF-16 big-endian, ou shift-jis pour Shift JIS. Si défini sur toute autre valeur, l’Agent lit le fichier comme UTF-8. Ajouté utf-16-le et utf-16be dans l’Agent v6.23/v7.23, shift-jis dans l’Agent v6.34/v7.34
Le paramètre start_position est pris en charge par les tailers de type file et journald. Le start_position est toujours beginning lors de la surveillance d’un conteneur.
Compatibilité :
Fichier: Agent 6.19+/7.19+
Journald: Agent 6.38+/7.38+
Si type est fichier :
Définissez la position à partir de laquelle l’Agent commence à lire le fichier.
Les valeurs valides sont beginning, end, forceBeginning et forceEnd (par défaut : end).
La position beginning ne prend pas en charge les chemins avec des caractères génériques.
Si type est journald :
Définissez la position à partir de laquelle l’Agent commence à lire le journal.
Les valeurs valides sont beginning, end, forceBeginning et forceEnd (par défaut : end).
Précédence
Pour les types de fichiers et de journald tailer, si une position end ou beginning est spécifiée, mais qu’un décalage est stocké, le décalage prend la priorité. L’utilisation de forceBeginning ou forceEnd oblige l’Agent à utiliser la valeur spécifiée même s’il y a un décalage stocké.
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: