L'agent infrastructure de New Relic collecte ses propres données ainsi que le log d'intégration et les consolide dans une source unique. Par défaut, les logs apparaissent dans standard-output
et sont ajoutés à un fichier de log. Pour désactiver la connexion dans la sortie standard, consultez les options de configuration de l'agent.
Configuration de base
L'exemple suivant montre une configuration typique pour le log de l'agent dans un système Linux (modifier le chemin du fichier lors de l'exécution Windows ou d'une autre plateforme) :
log: level: info file: '/var/log/newrelic-infra/newrelic-infra.log' rotate: max_size_mb: 100 max_files: 5 compression_enabled: true file_pattern: YYYY-MM-DD_hh-mm-ss.log
Niveaux de gravité du logging
L'infrastructure utilise un sous-ensemble des niveaux de gravité standardSyslog :
ERROR
: Conditions d'erreur rempliesWARN
: Conditions d'avertissement rempliesINFO
:Messages d'informationDEBUG
:Contient des messages de niveau débogage (utiles lors du dépannage)
formatage du log
Pour l'agent infrastructure v1.4.9 ou supérieur, les messages de log sont alignés avec les valeurs de contexte. Cela offre un meilleur regroupement et un meilleur filtrage ; par exemple :
containerized agent found in container containerID: VALUE
Par défaut, les logs d’infrastructure sont formatés en texte :
En mode premier plan, la sortie log est colorée, sans horodatage :
DEBUG Sending deltas divided in blocks component=PatchSender mentityKey=ohaimaci mnumberOfBlocks=1En mode arrière-plan, les logs sont des sorties d'horodatage, utilisées lors de l'exécution en tant que service ou du vidage du log dans un fichier :
time="2019-07-12T09:54:15+02:00" level=info msg="Agent service manager shutdown completed successfully." component=AgentService service=newrelic-infra
Alternativement, le log peut être formaté sous forme de fichier JSON :
{"context":{},"level":"info","msg":"upstart_interval_sec: 0","timestamp":"2019-07-11T18:24:03+02:00"}{"context":{},"level":"info","msg":"plugin_dir: ","timestamp":"2019-07-11T18:24:03+02:00"}
Pour modifier le format du log, consultez les paramètres de configuration de l'agent.
Rotation log intégrée
Pour l'agent infrastructure v1.28.0 ou supérieur, un mécanisme de rotation et de compression log intégré est disponible dans l'agent.
Mode verbeux intelligent
Pour les versions d'agent infrastructure 1.9.0 ou supérieures, vous pouvez activer le mode verbeux intelligent pour le log.
Le mode verbeux intelligent empêche les messages de débogage d'être enregistrés jusqu'à ce qu'un message d'erreur soit détecté. Une fois qu'une erreur est détectée, les messages de débogage sont écrits dans le fichier log avant l'erreur. Notez que seul le nombre le plus récent de messages de débogage configurés est enregistré. Par exemple, si vous avez configuré une limite de 10, lorsqu'une erreur est détectée, les 10 messages de débogage les plus récents avant la détection de l'erreur sont enregistrés.
Pour plus d'informations sur l'activation du mode verbeux intelligent et de la limite des messages de débogage, consultez Paramètres de configuration de l'infrastructure.
intégration gestion des log
intégration écriture JSON charge dans STDOUT
et texte brut (JSON structuré dans le futur) log dans STDERR
.
L'agent infrastructure gère les lignes d'intégration STDERR
et transmet cette sortie dans le log de l'agent.
L'agent gère chaque ligne STDERR
comme suit :
- When agent runs in verbose mode: il transmet simplement la ligne
STDERR
complète en tant qu'entrée log d'agent DEBUG en plaçant les contextes de ligne d'intégration dans le champmsg
. - Otherwise:il analyse la ligne par rapport au format attendu (voir ci-dessous) et enregistre uniquement comme niveau d'ERREUR de l'agent, les entrées produites par l'intégration avec les niveaux de gravité
fatal
ouerror
. Dans ce cas, les champs sont extraits et transmis de manière structurée (donc si la sortie JSON est activée pour l'agent, les champs deviennent interrogeables).
Par défaut, l'agent infrastructure filtre toutes les erreurs d'intégration qui n'empêchent pas l'exécution de l'intégration. Vous ne verrez toutes les erreurs d'une intégration que si le niveau de log est défini sur DEBUG ou si l'intégration est spécifiquement répertoriée dans la log configuration. Par exemple, dans cette configuration, toutes les erreurs provenant de nri-mssql
seront affichées, même si le niveau de log est INFO :
log: include_filters: integration_name: - nri-mssql
intégration format attendu STDERR
Une ligne doit être une liste de paires valeur-clé séparées par un caractère égal. Les clés peuvent contenir n’importe quel caractère, tandis que les valeurs peuvent avoir trois formats différents :
- chaîne : <quote>tout caractère, y compris les guillemets échappés \"<quote>
- map: &{any character}
- mot : n'importe quel caractère sauf les espaces
En interne, l'agent a utilisé cette expression régulière pour extraire les champs :
([^\s]*?)=(".*?[^\\]"|&{.*?}|[^\s]*)
Par instance, cette ligne :
time="2015-03-26T01:27:38-04:00" level=error msg="Foo bar baz" foo=bar
Génèrera une ligne log d'agent structurée avec ces champs :
- "time": "2015-03-26T01:27:38-04:00"- "level": "error"- "msg": "Foo bar baz"- "foo": "bar"