Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Transférez votre log à l'aide de l'agent infrastructure
La transmission de votre log à New Relic rend toutes vos données de logging disponibles en un seul emplacement, offrant une visibilité plus approfondie sur les données de performances de votre application et de votre plateforme. Avec votre log en un seul endroit, vous pouvez collecter, traiter, explorer, interroger et alerter sur les erreurs ou les anomalies détectées dans vos données log .
Depuis l'interface de votre hôte, vos logs sont placés dans le contexte de l'événement pour la période sélectionnée. Vous pouvez accéder aux données détaillées pour n’importe lequel des attributs mis en surbrillance.
La manière dont vous transférez votre log dépend de la manière dont vous avez installé l'agent infrastructure , puisque l'agent infrastructure active la fonctionnalité de transfert de log . Vous pouvez installer l'agent d'infrastructure via :
installation guidée (recommandé pour la plupart des utilisateurs)
Installation manuelle
tarballLinux
Important
La version Linux de l'agent d'infrastructure, en particulier la version 1.42.0, est passée de l'utilisation du package td-agent-bit au package fluent-bit. Ce changement a été rendu nécessaire par le fait que fluent-bit n'est plus distribué dans la version td-agent-bit après la mise à jour majeure de la version 2.x.
Pour garantir un fonctionnement fluide et offrir la possibilité de revenir à td-agent-bit en cas de problème avec le package fluent-bit, l'agent infrastructure installe désormais les deux packages (td-agent-bit et fluent-bit). Par défaut, l'agent est configuré pour utiliser fluent-bit.
Consultez Retour à Fluent Bit 1.9 pour plus d'informations sur la procédure de restauration.
Agent d'infrastructure version 1.11.4 ou supérieure
Fluent Bit. L'agent d'infrastructure installe déjà la dernière version pour vous. Pour le mettre à jour ou le rétrograder vers une version spécifique, reportez-vous aux procédures d'installation de Fluent Bit .
Bibliothèque OpenSSL 1.1.0 ou supérieur
Prise en charge intégrée de l'architecture ARM64 sur le système Linux (par exemple, l'architecture AWS Graviton ) ajoutée dans l'agent infrastructure 1.20.6.
Amazon Linux 2 et 2023
CentOS version 8 et 9 Stream (Rocky Linux et AlmaLinux sont également pris en charge)
RedHat versions 8 et 9
Version Debian 11 (Bullseye) et 12 (Bookworm).
SUSE Linux Enterprise Server (SLES) version 12 et 15 (ARM64 non pris en charge).
Windows Server 2016, 2019 et 2022, ainsi que leurs Service Packs.
Windows 10, Windows 11.
Transférer automatiquement le log avec l'installation guidée
Lorsque vous utilisez notre guide d'installation pour installer l'agent infrastructure , la fonctionnalité de transfert de logest automatiquement configurée pendant le processus d'installation.
Pour lancer votre installation, choisissez votre méthode de déploiement :
Pour transférer le log d'un conteneur Docker , utilisez cette imageDocker comme image de base à utiliser avec l'intégration du log Kubernetes , ou vous pouvez créer votre propre conteneur avec une configuration personnalisée pour différents environnements.
Activer le transfert de logsur l'agent installé manuellement
les fichiers de configuration dirigent votre système pour transmettre les sources log que vous souhaitez voir apparaître dans New Relic. Vous pouvez ajouter autant de fichiers de configuration que vous le souhaitez. Notre agent d'infrastructure utilise des fichiers .yml pour configurer le logging. Si vous installez l'agent infrastructure via l'intégration et les agents dans l'interface utilisateur, le fichier logging.yml est créé automatiquement.
Pour ajouter un nouveau fichier configuration pour la fonctionnalité de transfert de log :
Accédez au dossier du redirecteur de log configuration:
Créez un fichier de configuration logging.yml et ajoutez les paramètres dont vous avez besoin. Le répertoire logging.d contient divers fichiers .yml.example que vous pouvez utiliser comme référence ou point de départ. Pour des exemples Windows , consultez notre référentiel Github (dépôt).
# Log forwarder configuration file example
# Source: file
# Available customization parameters: attributes, max_line_kb, pattern
logs:
# Basic tailing of a single file
-name: basic-file
file: /var/log/logFile.log
# File with spaces in its path. No need to use quotes.
-name: file-with-spaces-in-path
file: /var/log/folder with spaces/logFile.log
# Specify a list of custom attributes, as key-value pairs, to be included
# in each log record
-name: file-with-attributes
file: /var/log/logFile.log
attributes:
application: tomcat
department: sales
maintainer: example@mailprovider.com
# Use wildcards to refer to multiple files having a common extension or
# prefix. Newly generated files will be automatically detected every 60
# seconds.
#
# WARNING: avoid using wildcards that include the file extension, since
# it'll cause logs to be forwarded repeatedly if log rotation is enabled.
-name: log-files-in-folder
file: /var/log/logF*.log
# Lines longer than 128 KB will be automatically skipped. Use 'max_line_kb'
# to increase this limit.
-name: log-file-with-long-lines
file: /var/log/logFile.log
max_line_kb:256
# Use 'pattern' to filter records using a regular expression
-name: only-records-with-warn-and-error
file: /var/log/logFile.log
pattern: WARN|ERROR
L'agent traite automatiquement les nouveaux fichiers configuration sans avoir à redémarrer le service de monitoring d'infrastructure . La seule exception à cette règle concerne la configuration d’une configuration Fluent Bit personnalisée.
Étape 2. Définir les paramètres de transfert de log
Vous devez configurer un name et un paramètre de source log dans le fichier de configuration de transfert de log .yml. Pour commencer, définissez un name du log ou du log que vous souhaitez transmettre à New Relic.
Ce que vous utilisez comme source log dépend de l'emplacement d'où provient votre log. Les options disponibles pour la source log incluent :
Chemin vers le fichier de log ou les fichiers. L'agent suit les modifications sur le fichier de log d'une manière similaire au shell tail -f.
Example:
logs:
-name: example-log
file: /var/log/example.log # Path to a single log file
-name: example-log-two
file: /var/log/example-two.log # Path to another single log file
Le paramètre file peut pointer vers un fichier log spécifique ou vers plusieurs fichiers en utilisant des caractères génériques appliqués aux noms et aux extensions ; par exemple, /logs/*.log. Vous pouvez utiliser des caractères génériques à la place des répertoires dans un chemin de fichier, ce qui peut être utilisé pour suivre des fichiers situés dans différents répertoires.
Example:
logs:
-name: docker-logs
file: /var/lib/docker/containers/*/*.log# Path to multiple folders and files
Important
L'utilisation de caractères génériques peut augmenter considérablement le nombre de descripteurs de fichiers et de surveillances inotify que le processus Fluent Bit maintient ouverts, ce qui peut interférer avec la collecte log si la limite de descripteur de fichier de l'hôte est atteinte. Le suivi d'un grand nombre de fichiers peut nécessiter d'augmenter le nombre maximum de descripteurs de fichiers et d'ignorer les observateurs autorisés par le système d'exploitation. Veuillez vous référer aux Erreurs lors du suivi d'une grande quantité de fichier log pour plus de détails sur la façon de les augmenter.
Utilisez le paramètre systemd pour transférer les messages de log collectés par le daemon journald dans les environnements Linux. Ce type d'entrée nécessite que l'agent s'exécute en mode racine.
Example:
logs:
-name: systemd-example
systemd: cupsd
Source de données Syslog.
Parameters:
uri: Prise Syslog. Le format varie selon le protocole :
Sockets de domaine Unix : unix_[tcp/udp]:// + /socket/path
parser: Analyseur Syslog. La valeur par défaut est rfc3164. Utilisez rfc5424 si vos messages incluent des secondes fractionnaires. Remarque : rfc3164 ne fonctionne actuellement pas sur SuSE.
unix_permissions: La valeur par défaut est 0644 pour les sockets de domaine. Cela limite les entrées aux processus exécutés en tant que root. Vous pouvez utiliser 0666 pour écouter les processus non root (à vos risques et périls).
Lors de l'exécution de l'agent en mode privilégié, les ports et les sockets doivent être disponibles ou détenus par nri-agent et avec des autorisations de fichier 0666 afin que d'autres processus puissent écrire le log sur les sockets.
logs:
# TCP network socket
-name: syslog-tcp-test
syslog:
uri: tcp://0.0.0.0:5140# Use the tcp://LISTEN_ADDRESS:PORT format
parser: rfc5424 # Default syslog parser is rfc3164
# UDP network socket
-name: syslog-udp-test
syslog:
uri: udp://0.0.0.0:6140# Use the udp://LISTEN_ADDRESS:PORT format
max_line_kb:35
# Unix TCP domain socket
-name: syslog-unix-tcp-test
syslog:
uri: unix_tcp:///var/unix-tcp-socket-test
unix_permissions:0666# Default is 0644. Change at your own risk
# Unix UDP domain socket
-name: syslog-unix-udp-test
syslog:
uri: unix_udp:///var/unix-udp-socket-test
parser: rfc5424
Logs récupérés via des connexions TCP.
Parameters:
uri: Socket TCP/IP pour écouter les données entrantes. Le format de l'URI est tcp://LISTEN_ADDRESS:PORT.
format: Format des données. Cela peut être json ou none.
separator: Si format: none est utilisé, vous pouvez définir une chaîne de séparation pour diviser les enregistrements (par défaut : \n).
logs:
-name: tcp-simple-test
tcp:
uri: tcp://0.0.0.0:1234# Use the tcp://LISTEN_ADDRESS:PORT format
format: none # Raw text - this is default for 'tcp'
separator: \t # String for separating raw text entries
max_line_kb:32
-name: tcp-json-test
tcp:
uri: tcp://0.0.0.0:2345# Use the tcp://LISTEN_ADDRESS:PORT format
format: json
Important
Disponible depuis l'agent d'infrastructure v.1.24.3 Compatible uniquement avec Windows Server 2019 et versions ultérieures. Utilisez plutôt winlog pour les versions antérieures.
Collectez les événements à partir des Windows log canaux à Windows l'aide de la nouvelle API de Log des événements à l'aide winevtlog Fluent Bit du plugin .
Parameters:
channel: Le nom du log de canal sera collecté.
collect-eventids:Liste des identifiants d'événements Windows à collecter et à transmettre à New Relic. Les plages d’ID d’événement sont prises en charge.
exclude-eventids:Liste des ID d'événements Windows à exclure de la collection. Les plages d’ID d’événement sont prises en charge.
use-ansi:Utilisez le codage ANSI sur winlog messages. Nous utilisons le codage ANSI par défaut sur Windows Server 2016 et les versions antérieures, et UTF-8 sur les versions plus récentes. Vous pouvez remplacer ce comportement avec ce paramètre de configuration si ces valeurs par défaut ne conviennent pas à votre cas d'utilisation. Cela résout le problème du log des codes de caractères ANSI qui sont des chaînes vides. Ce n'est pas une fonction permettant de convertir un code de caractères multi-octets en code de caractères ANSI en UTF-8.
Tous les événements sont collectés à partir du canal spécifié par défaut. Configurez les sections collect-eventids et exclude-eventids pour éviter d'envoyer des logs indésirables à votre compte New Relic.
Ajoutez des identifiants ou des plages d'événements à collect-eventids ou exclude-eventids pour transférer ou supprimer un événement spécifique. exclude-eventids a priorité sur collect-eventids si le même ID d'événement est présent dans les deux sections.
Example:
logs:
# Example winevtlog security log ingestion with eventId filters.
-name: windows-security
winevtlog:
channel: Security
collect-eventids:
-4624
-4265
- 4700-4800
exclude-eventids:
-4735
attributes:
logtype: windows_security
# Example entries for the application and system channels
-name: windows-application
winevtlog:
channel: Application
attributes:
logtype: windows_application
# Example entries for the application use-ansi
-name: windows-application
winevtlog:
channel: Application
attributes:
logtype: windows_application
use-ansi:true
-name: windows-system
winevtlog:
channel: System
attributes:
logtype: windows_system
# Example/Optional entry for Windows Defender Logs
Winlog ne peut collecter que le log des événements classiques. Tenter de capturer d'autres personnes collectera silencieusement le log d'application.
Collectez les événements à partir des Windows log canaux .
Parameters:
channel: Le nom du log de canal sera collecté. Cela ne fonctionne pas pour les chaînes personnalisées.
collect-eventids:Liste des identifiants d'événements Windows à collecter et à transmettre à New Relic. Les plages d’ID d’événement sont prises en charge.
exclude-eventids:Liste des ID d'événements Windows à exclure de la collection. Les plages d’ID d’événement sont prises en charge.
use-ansi:Utilisez le codage ANSI sur winlog messages. Nous utilisons le codage ANSI par défaut sur Windows Server 2016 et les versions antérieures, et UTF-8 sur les versions plus récentes. Vous pouvez remplacer ce comportement avec ce paramètre de configuration si ces valeurs par défaut ne conviennent pas à votre cas d'utilisation. Cela résout le problème du log des codes de caractères ANSI qui sont des chaînes vides. Ce n'est pas une fonction permettant de convertir un code de caractères multi-octets en code de caractères ANSI en UTF-8.
Tous les événements sont collectés à partir du canal spécifié par défaut. Configurez les sections collect-eventids et exclude-eventids pour éviter d'envoyer des logs indésirables à votre compte New Relic.
Ajoutez des identifiants ou des plages d'événements à collect-eventids ou exclude-eventids pour transférer ou supprimer un événement spécifique. exclude-eventids a priorité sur collect-eventids si le même ID d'événement est présent dans les deux sections.
Example:
logs:
# Example winlog security log ingestion with eventId filters.
-name: windows-security
winlog:
channel: Security
collect-eventids:
-4624
-4265
- 4700-4800
exclude-eventids:
-4735
attributes:
logtype: windows_security
# Example entries for the application and system channels
-name: windows-application
winlog:
channel: Application
attributes:
logtype: windows_application
-name: windows-system
winlog:
channel: System
attributes:
logtype: windows_system
# Example entries for the application use-ansi
-name: windows-application
winlog:
channel: Application
attributes:
logtype: windows_application
use-ansi:true
# Example/Optional entry for Windows Defender Logs
Bien que ces paramètres configuration ne soient pas obligatoires, nous vous recommandons tout de même d'appliquer ces configurations à votre fichier logging.yml afin de tirer le meilleur parti du transfert de log .
Liste d'attributs personnalisés spécifiés comme paires valeur-clé qui peuvent être utilisés pour envoyer des données supplémentaires avec le log que vous pouvez ensuite interroger. Le paramètre configuration attributes peut être utilisé avec n'importe quelle source log .
Important
Le attributes configuration paramètre n'ajoute pas d'attribut personnalisé au log transmis via externe Fluent Bit configuration (par exemple, à l'aide du fluentbit configuration paramètre). Dans ce scénario, vous devez vous référer à l'option record_modifier dans la documentation Fluent Bit.
Une utilisation courante du paramètre de configuration attributes consiste à spécifier l’attribut logtype . Cet attribut permet d'exploiter l'une des règles d'analyse intégrées prises en charge par les fonctionnalités de New Relic.
Example:
logs:
-name: example-file-attributes
file: /var/log/example.log
attributes:
logtype: nginx
region: example-us-02
team: A-team
-name: example-tcp-attributes
tcp:
uri: tcp://0.0.0.0:2345
format: json
attributes:
logtype: nginx
region: example-us-02
team: B-team
L'agent infrastructure insère automatiquement l'attribut log pour votre commodité. Certains d'entre eux sont insérés pour n'importe quel enregistrement log , tandis que d'autres dépendent des paramètres configuration que vous avez utilisés lors de la configuration du redirecteur de log .
Nom de l'attribut
Description
entity.guids
Toujours inséré.
L'agent d'infrastructure insère le GUID d'entité attribué par New Relic pour identifier l'hôte sur lequel il s'exécute. Il est disponible dans le champ entity.guids .
Remarque : si le log capturé appartient à une application instrumentée utilisant APM, le champ entity.guids contient à la fois le GUID entité de infrastructure, ainsi que le GUID d'APM, séparés par un délimiteur de barre verticale ( | ).
fb.input
Toujours inséré.
Le type de plug-in d’entréeFluent Bit sous-jacent utilisé pour capturer le log. Actuellement, ses valeurs sont tail, systemd, winlog, syslog et tcp.
filePath
Inséré lors de l'utilisation du type d'entrée file .
Chemin absolu du fichier monitoré.
hostname
Toujours inséré.
Le nom d’hôte de la machine/VM/conteneur exécutant l’agent d’infrastructure.
plugin.type
Toujours inséré.
Indique l'utilitaire utilisé pour capturer le log. Dans ce cas, il s’agit de l’agent d’infrastructure lui-même, donc cet attribut a toujours la valeur nri-agent.
expressions régulières pour filtrer les enregistrements. Uniquement pris en charge pour les sources file, systemd, syslog et tcp (uniquement avec le format none).
Ce champ fonctionne de manière similaire à grep -E dans le système Unix. Par exemple, pour un fichier donné en cours de capture, vous pouvez filtrer les enregistrements contenant soit WARN soit ERROR en utilisant :
-name: only-records-with-warn-and-error
file: /var/log/logFile.log
pattern: WARN|ERROR
Aucun filtrage n'est appliqué par défaut.
Taille maximale des entrées/lignes log en Ko. Si les entrées log dépassent la limite, elles sont ignorées. La valeur par défaut est 128, la valeur minimale autorisée est 33.
Fichiers de configuration et d'analyse externes Fluent Bit . S'ils sont définis, ils sont fusionnés avec les fichiers de configuration et d'analyse existants générés par l'agent d'infrastructure.
infrastructure L'agent traite les configuration fichiers situés dans le logging.d répertoire et génère un fichier de temps d'exécution Fluent Bit configuration contenant les [INPUT][FILTER][OUTPUT] sections, et appropriées. En option, il déclarera également un @INCLUDE au cas où vous auriez fourni un fichier de configuration Fluent Bit externe via l'option fluentbit .
Le fichier d'exécution ne définit pas de section[SERVICE], laissant toutes les valeurs de configuration Fluent Bit par défaut. Vous pouvez toujours remplacer les paramètres par défaut de Fluent Bit en définissant votre propre section [SERVICE] dans votre fichier de configuration Fluent Bit externe et en l'incluant via l'option fluentbit .
Parameters:
config_file: chemin vers un fichier de configuration Fluent Bit existant. Notez que toute source qui se chevauche entraîne des messages en double dans notre interface utilisateur de log.
parsers_file: chemin vers un fichier d'analyse Fluent Bit existant. Les noms d'analyseurs suivants sont réservés : rfc3164, rfc3164-local et rfc5424.
Important
L'agent infrastructure permet de transférer les logs pour les cas d'utilisation les plus courants en définissant une configuration simple de transfert de logdans les fichiers YAML du répertoire logging.d/, comme décrit dans ce document. Ces fichiers sont traduits en interne en fichiers de configuration Fluent Bit avec le format correct et des valeurs de configuration par défaut saines. New Relic fournit un support officiel pour ces options de configuration puisque nous garantissons que les fichiers de configuration générés sont corrects et opérationnels.
Néanmoins, pour les cas d'utilisation non couverts par nos options de configuration prises en charge, nous offrons la possibilité d'utiliser un fichier de configuration et d'analyse Fluent Bit généré en externe à l'aide des options fluentbit, config_file et parsers_file .
Remarque : nous ne pouvons pas garantir le bon fonctionnement du log transmis dans ce cas, étant donné que la configuration fournie est complètement arbitraire et n'est pas générée/validée par l'agent. Par conséquent, New Relic ne fournit pas de support officiel pour la configuration externe spécifiée via ces options.
file: /var/log/test.log # Path to a single file or pattern
attributes:# You can use custom attributes to enrich your data
logtype: nginx
team: The A Team
pattern: Error # Regular expression to filter log entries
# Example of 'systemd' source (Linux only)
-name: systemd-example
systemd: cupsd
# Examples of 'syslog' source, one per protocol
# TCP network socket
-name: syslog-tcp-test
syslog:
uri: tcp://0.0.0.0:5140# Use the tcp://LISTEN_ADDRESS:PORT format
parser: rfc5424 # Default syslog parser is rfc3164
# UDP network socket
-name: syslog-udp-test
syslog:
uri: udp://0.0.0.0:6140# Use the udp://LISTEN_ADDRESS:PORT format
max_line_kb:35
# Paths for Unix sockets are defined by combining protocol and path:
# unix_udp:// + /path/socket - for example, unix_udp:///tmp/socket
# Unix TCP domain socket
-name: syslog-unix-tcp-test
syslog:
uri: unix_tcp:///var/unix-tcp-socket-test
unix_permissions:0666# Default is 0644. Change at your own risk
# Unix UDP domain socket
-name: syslog-unix-udp-test
syslog:
uri: unix_udp:///var/unix-udp-socket-test
parser: rfc5424
# Examples of 'tcp' source for formats 'none' and 'json'
-name: tcp-simple-test
tcp:
uri: tcp://0.0.0.0:1234# Use the tcp://LISTEN_ADDRESS:PORT format
format: none # Raw text - this is default for 'tcp'
separator: \t # String for separating raw text entries
attributes:# You can add custom attributes to any source of logs
tcpFormat: none
someOtherAttribute: associatedValue
max_line_kb:32
-name: tcp-json-test
tcp:
uri: tcp://0.0.0.0:2345# Use the tcp://LISTEN_ADDRESS:PORT format
format: json
attributes:
tcpFormat: json
yetAnotherAttribute:12345
# Example of Fluent Bit configuration import
-name: fluentbit-import
fluentbit:
config_file: /path/to/fluentbit.config
parsers_file: /path/to/fluentbit/parsers.conf
Étape 4. Affichez vos données log
Si tout est configuré correctement et que vos données sont collectées, vous devriez voir le log et les données télémétriques associées à ces endroits :
Dans l'interface utilisateur infrastructure , à partir de la table des hôtes, cliquez sur l'icône icône pour un hôte spécifique, puis cliquez sur View logs.
Nos outils pour exécuter des requêtes NRQL . Par exemple, vous pouvez exécuter une requête comme celle-ci :
SELECT*FROM Log
Activer le logging pour votre intégration sur hôte
Avec l'agent infrastructure installé, vous pouvez activer l'analyse automatique des loget leur transfert pour notre intégration sur hôte la plus populaire en une seule étape. Pour activer cette fonctionnalité, renommez le fichier on-host-log.yml.example en on-host-log.yml. Une fois terminé, le log de votre intégration est automatiquement analysé et envoyé à New Relic.
Pour activer la fonctionnalité d'intégration sur hôte transfert de log :
Copiez ou renommez le elasticsearch-log.yml.example fichier en elasticsearch-log.yml pour activer Elasticsearch l'analyse automatique des au format JSON loget leur transmission vers New Relic. Pas besoin de redémarrer l'agent.
Copiez ou renommez le mysql-log.yml.example fichier en pour mysql-log.yml MySQL logactiver l'analyse automatique des et la transmission à New Relic. Pas besoin de redémarrer l'agent.
Copiez ou renommez le fichier nginx-log.yml.example en nginx-log.yml pour activer l'accès automatique à NGINX et l'analyse des erreurs des loget leur transmission à New Relic. Pas besoin de redémarrer l'agent.
Copiez ou renommez le fichier rabbitmq-log.yml.example en rabbitmq-log.yml pour activer l'analyse automatique des erreurs Rabbitmq et la logà New Relic. Pas besoin de redémarrer l'agent.
Copiez ou renommez le fichier redis-log.yml.example en redis-log.yml pour activer l'analyse automatique des erreurs Redis et logtransmission à New Relic. Pas besoin de redémarrer l'agent.
Activer le transfert de logsur l'agent installé à l'aide tarballLinux
Notre processus d'installation Linux personnalisé pour monitoring d'infrastructure vous permet de personnaliser tous les aspects du processus d'installation et de placer des fichiers et des dossiers sur votre machine. Si vous choisissez le processus d'installation assisté ou manuel tarball , suivez ces étapes pour implémenter la fonctionnalité de redirecteur logde :
Téléchargez le plugin fluentbit de New Relic et enregistrez-le sous /var/db/newrelic-infra/newrelic-integrations/logging/out_newrelic.so.
Téléchargez ou copiez le fichier parsers.conf depuis ce référentiel Github et enregistrez-le sous /var/db/newrelic-infra/newrelic-integrations/logging/parsers.conf.
Ce document vous a-t-il aidé lors de votre installation ?
Dépannage
Si vous rencontrez des problèmes avec la configuration de votre redirecteur de log , essayez ces conseils de dépannage.
La fonctionnalité de transfert de lognécessite que l'agent ait l'autorisation de lire les sources de données. Lorsque vous exécutez l'agent infrastructure en mode privilégié ou non privilégié, assurez-vous que le fichier de log que vous souhaitez transférer (et tout répertoire intermédiaire sur son chemin) est lisible par l'utilisateur exécutant nri-agent.
Example: Check file access under Linux
Vérifions si le fichier /var/log/restrictedLogs/logFile.log peut être monitoré par l'utilisateur nri-agent . Sous Linux, vous pouvez effectuer une vérification rapide avec la commande namei :
Cette commande a échoué car le fichier n'est pas visible pour l'utilisateur nri-agent . En inspectant la sortie précédente, nous pouvons détecter que le répertoire restrictedLogs ne possède pas l'indicateur d'exécution pour others.
Le fichier est désormais visible pour l'utilisateur nri-agent . Vous devez vous assurer que le fichier est également lisible par l'utilisateur nri-agent . Pour vérifier cela, utilisez :
bash
$
sudo-u nri-agent head /var/log/restrictedLogs/logFile.log
head: cannot open '/var/log/restrictedLogs/logFile.log' for reading: Permission denied
Dans cet exemple, le fichier ne dispose pas des droits de lecture pour le groupe others (utilisateur autre que vagrant et le groupe utilisateur vagrant ). Vous pouvez résoudre ce problème en accordant des autorisations de lecture à others, mais l'application pourrait modifier ces autorisations au redémarrage.
Pour éviter cela, une meilleure approche consiste à ajouter l’utilisateur nri-agent au groupe d’utilisateurs vagrant .
La fonctionnalité de transfert de lognécessite que l'agent ait l'autorisation de lire les sources de données. Lors de l'exécution de l'agent d'infrastructure en mode privilégié ou non privilégié:
Si vous utilisez des fichiers de socket de domaine Unix, assurez-vous que l'utilisateur nri-agent peut accéder à ces fichiers (veuillez vous référer à la section précédente) et qu'il dispose des autorisations de lecture et d'écriture (666) afin que d'autres utilisateurs que nri-agent puissent y écrire.
Si vous utilisez des sockets IP, assurez-vous que le port que vous utilisez n'est pas un port réservé au système (comme le port 80, par exemple).
Comme expliqué dans les directivesinfrastructure de configuration l'agent , le proxy paramètre doit utiliser HTTP ou HTTPS et être sous la forme.https://user:password@hostname:port L'agent peut analyser le paramètre sans HTTP ou HTTPS, mais le redirecteur de logne le peut pas. Vous verrez une erreur comme celle-ci dans le log détaillé de l'agent :
[ERROR] building HTTP transport: parse \"hostname:port\":
first path segment in URL cannot contain colon
Pour résoudre ce problème, vérifiez votre fichier newrelic-infra.yml et assurez-vous que le paramètre proxy adhère à ce formulaire.
Si vous utilisez caBundleFile ou caBundleDir pour spécifier un certificat, nous vous recommandons de suivre les règles ci-dessous pour chaque système d'exploitation :
Linux
Pour les proxys HTTP vous n'avez pas besoin de configurer de certificats. Le plugin charge les certificats système et New Relic envoie le log au point de terminaison de logging. Cependant, vous pouvez spécifier le certificat auto-signé proxy (fichier PEM) à l'aide des paramètres caBundleFile ou caBundleDir .
Windows
Pour les proxys HTTP vous n'avez pas besoin de configurer de certificats. Le plugin charge les certificats système.
Pour HTTPS, vous pouvez le configurer de l'une des manières suivantes :
(Recommandé) Importez le certificat proxy dans le pool système. Importez le certificat auto-signé proxy (fichier PEM) à l'aide de l'outil MMC. Reportez-vous à ce lien et dans Step 2 assurez-vous de l'importer dans votre Trusted Root Certification Authorities plutôt que dans le Intermediate Certification Authorities.
Utiliser les paramètres caBundleFile et caBundleDir Sous Windows, nous ne pouvons pas charger à la fois les certificats du pool de certificats système et ceux spécifiés avec les paramètres caBundleFilecaBundleDir . Ainsi, si vous utilisez caBundleFile ou caBundleDir, assurez-vous que les certificats suivants sont placés dans le même fichier PEM (lorsque vous utilisez caBundleFile) ou dans le même répertoire (lorsque vous utilisez caBundleDir) :
Le certificat proxy (car c'est un proxy HTTPS ).
Le certificat du point de terminaison de logging (par exemple. https://log-api.newrelic.com/log/v1).
Le certificat de l'agent d'infrastructure (par exemple. https://infra-api.newrelic.com).
Vous pouvez vérifier les certificats en exécutant :
Vous pouvez configurer l'agent infrastructure pour envoyer son propre log à New Relic. Ceci est utile pour les problèmes de dépannage avec le transfert de log , l'agent ou lors de la prise de contact avec le support.
Important
Le logging des traces génère beaucoup de données très rapidement. Pour réduire la consommation d'espace disque et l'ingestion de données, une fois la génération du log terminée, assurez-vous de définir level: info (ou moins).
Pour transférer le log de l'agent infrastructure vers New Relic :
Modifiez votre fichier newrelic-infra.yml .
Activez le transfert des logs vers New Relic en ajoutant le snippet de configuration suivant :
log:
level: trace # Recommended: Helps with troubleshooting
forward:true# Enables sending logs to New Relic
format: json # Recommended: Enable agent logging in JSON format
stdout:false# On Windows and systems that don't use `systemd` or where `journald` is inaccessible
Cette configuration met en place l'agent en mode dépannage, mais le redirecteur de log (basé sur Fluent Bit) continuera en mode non verbeux.
Parfois, vous pouvez avoir des problèmes avec le redirecteur de loglui-même. Par exemple, il peut y avoir des problèmes d'accès à un canal spécifique lors de l'envoi Windows d'un log événement de ou lors de l'accès à un fichier de log particulier. Dans ces situations, vous pouvez également activer le mode verbeux pour le redirecteur de log .
Important
Le logging des traces génère beaucoup de données très rapidement. Pour réduire la consommation d'espace disque et l'ingestion de données, une fois la génération du log terminée, assurez-vous de définir level: info (ou moins).
Modifiez votre fichier newrelic-infra.yml .
Activez le log détaillé de Fluent Bit en ajoutant le snippet de configuration suivant :
log:
level: trace
forward:true# Enables sending logs to New Relic
format: json # Recommended: Enable agent logging in JSON format
stdout:false# On Windows and systems that don't use `systemd` or where `journald` is inaccessible
include_filters:
traces:
- supervisor # Required to see verbose logs from Fluent Bit
Le plugin tail de Fluent Bit ne prend pas en charge les lecteurs réseau.
Pour les versions Linux antérieures à 2016, vous devrez peut-être mettre à jour la bibliothèque OpenSSL vers la version 1.1.0 (ou supérieur). Pour vérifier si vous avez ce problème :
Vérifiez si infra-agent a démarré Fluent Bit en exécutant :
bash
$
ps-aux|grep fluent-bit
S'il ne fonctionne pas, accédez à /var/db/newrelic-infra/newrelic-integrations/logging et exécutez :
bash
$
./fluent-bit -i systemd -o stdout
Si vous obtenez l’erreur suivante :
error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
Assurez-vous de mettre à jour OpenSSL vers la version 1.1.0 ou supérieur.
L'un des messages d'erreur suivants peut apparaître lors de l'activation du transfert de logsous Windows:
The code execution cannot proceed because VCRUNTIME140.dll was not found.
OU
error="exit status 3221225781" process=log-forwarder
Il est courant de rencontrer l'un des messages d'erreur suivants lorsque vous tentez de suivre une grande quantité de fichiers :
Too many open files
The user limit on the total number of inotify watches was reached or the kernel failed to allocate a needed resource
Le système d'exploitation définit un nombre maximal de descripteurs de fichiers allouables (généralement 1024 par défaut) et un nombre maximal de surveillances inotify allouables (généralement 8192 par défaut). Tout processus tentant de dépasser ces limites échouera et renverra l’une des erreurs ci-dessus.
La technologie sous-jacente que nous utilisons pour transférer les logs, Fluent Bit, ouvre un descripteur de fichier et définit une surveillance inotify pour chaque fichier que vous configurez pour être transféré. De plus, au moment de la rédaction de cette section, Fluent Bit utilise un ensemble supplémentaire de 32 descripteurs de fichiers pour son fonctionnement normal, avec un autre descripteur de fichier supplémentaire lorsqu'il s'arrête. Par conséquent, to capture a large amount of files you need to ensure that both the file descriptor and inotify watch limits are slightly greater than the amount of log files you wish to tail.
Les instructions suivantes résument comment augmenter ces limites si vous souhaitez limiter à 10 000 le fichier de log. En outre, il suppose que l'agent d'infrastructure est installé en mode d'exécutionroot et doit donc être exécuté à l'aide de l'utilisateur root .
Vérifiez quelle est la limite stricte actuelle pour la quantité de descripteurs de fichiers par processus. En règle générale, cette limite devrait être assez élevée et ne devrait pas avoir besoin d’être modifiée.
bash
$
ulimit-Hn
Ajoutez la ligne suivante à /etc/security/limits.conf. Nous avons spécifié ici une limite de 10100 au lieu de seulement 10000 pour permettre à Fluent Bit d'allouer les descripteurs de fichiers supplémentaires dont il pourrait avoir besoin pour fonctionner.
bash
$
root soft nofile 10100# replace root by nri-agent for non-root (privileged and unprivileged) installations
Ajoutez la ligne suivante à /etc/pam.d/common-session afin que la limite précédente soit appliquée au redémarrage :
bash
$
session required pam_limits.so
Ajoutez la ligne suivante à /etc/sysctl.conf pour augmenter le nombre d’observateurs inotify autorisés par utilisateur. Nous avons spécifié ici une limite de 18192 au lieu de seulement 10000 afin que l'utilisateur root ait toujours 8192 montres inotify disponibles (la valeur par défaut).
bash
$
fs.inotify.max_user_watches=18192
Redémarrez votre système.
Assurez-vous que les nouvelles limites ont été appliquées en exécutant :
bash
$
ulimit-Sn# Should return 10100
$
cat /proc/sys/fs/inotify/max_user_watches # Should return 18192
Avant la version 1.19.0 (ou la version 1.20.3 pour SLES 12.5), l'agent d'infrastructure Linux était fourni avec un binaire Fluent Bit. À partir de cette version, Fluent Bit est désormais inclus en tant que dépendance de package recommended distincte.
Cela signifie que vous pouvez installer, mettre à jour ou rétrograder Fluent Bit séparément de l'agent. Pour votre commodité, nous avons inclus plusieurs packages Fluent Bit dans le même référentiel où réside l' infrastructure , vous n'avez donc pas besoin d'installer de référentiel supplémentaire pour mettre à niveau Fluent Bit.
Notez que l'agent installe automatiquement Fluent Bit lors de la première installation, en utilisant la dernière version disponible. Après la première installation, vous pouvez mettre à niveau Fluent Bit comme vous le feriez normalement avec n'importe quel package Linux.
Vous pouvez lister les versions de Fluent Bit disponibles en exécutant :
TR/MIN :
bash
$
sudo yum check-update
$
yum list fluent-bit --showduplicates
DÉB:
bash
$
sudoapt update
$
apt-cache showpkg fluent-bit
Pour mettre à niveau vers la dernière version de Fluent Bit, exécutez ces commandes :
TR/MIN :
bash
$
# Remove command only required when downgrading to a previous version
$
# sudo yum remove fluent-bit
$
sudo yum install fluent-bit
DÉB:
bash
$
sudoaptinstall fluent-bit
Veuillez noter que td-agent-bit n'est pas disponible pour les distributions suivantes, les restaurations sur celles-ci ne sont donc pas possibles :
Flux CentOS 9 (y compris Rocky Linux et AlmaLinux)
RedHat 9
Ubuntu 22.04.x
Open Suse (SLES) 15.4
Amazon Linux 2023
Si vous souhaitez revenir à td-agent-bit, vous pouvez suivre les étapes décrites ci-dessous :
Ouvrez le fichier /etc/newrelic-infra.yml en utilisant votre éditeur de texte préféré.
Ajoutez la ligne suivante à la fin du fichier : fluent_bit_exe_path: /opt/td-agent-bit/bin/td-agent-bit.
Enregistrez les modifications.
Redémarrez l’agent d’infrastructure en exécutant la commande suivante : sudo systemctl restart newrelic-infra.
En effectuant ces étapes, l’agent d’infrastructure sera configuré pour utiliser td-agent-bit au lieu de fluent-bit.
Obtenez une visibilité plus approfondie sur les données de performances de votre application et de votre plateforme en transmettant votre log avec nos capacités de logs en contexte .
Pour désactiver les fonctionnalités de transfert de log , accédez à votre répertoire logging.d et supprimez les fichiers avec l'extension .yml qui ont été ajoutés à l'origine lors du processus configuration .