• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

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.

Créer un problème

analyser les données log

log parsing est le processus de traduction des données log non structurées en attributs (paires valeur-clé) en fonction des règles que vous définissez. Vous pouvez utiliser ces attributs dans votre requête NRQL pour facetter ou filtrer le log de manière utile.

New Relic analyse automatiquement les données log en fonction de certaines règles d'analyse. Dans ce document, vous apprendrez comment fonctionne l'analyse des logs et comment créer vos propres règles d'analyse personnalisées.

Vous pouvez également créer, interroger et gérer vos règles d'analyse des logen utilisant NerdGraph, notre API GraphQL . Un outil utile pour cela est notre explorateur d'API Nerdgraph. Pour plus d'informations, consultez notre tutoriel NerdGraph pour l'analyse.

Voici une vidéo de 5 minutes sur l'analyse des log :

Exemple d'analyse

Un bon exemple est un log d’accès NGINX par défaut contenant du texte non structuré. C'est utile pour la recherche mais pas pour grand chose d'autre. Voici un exemple d'une ligne typique :

127.180.71.3 - - [10/May/1997:08:05:32 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"

Dans un format non analysé, vous devrez effectuer une recherche en texte intégral pour répondre à la plupart des questions. Après analyse, le log est organisé en attributs, comme response code et request URL:

{
"remote_addr": "93.180.71.3",
"time": "1586514731",
"method": "GET",
"path": "/downloads/product_1",
"version": "HTTP/1.1",
"response": "304",
"bytesSent": 0,
"user_agent": "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"
}

analyse facilite la création de requêtes personnalisées qui s'appuient sur ces valeurs. Cela vous aide à comprendre la distribution des codes de réponse par URL de demande et à trouver rapidement les pages problématiques.

Comment fonctionne l'analyse des log

Voici un aperçu de la manière dont New Relic implémente l'analyse des logs :

analyser des logs

Comment ça marche

Quoi

  • L'analyse est appliquée à un champ sélectionné spécifique. Par défaut, le champ message est utilisé. Cependant, n'importe quel champ/attribut peut être choisi, même celui qui n'existe pas actuellement dans vos données.
  • Chaque règle d'analyse est créée à l'aide d'une clause NRQL WHERE qui détermine quel log la règle tentera d'analyser.
  • Pour simplifier le processus de correspondance, nous vous recommandons d'ajouter un attribut logtype à votre log. Cependant, vous n'êtes pas limité à l'utilisation de logtype; un ou plusieurs attributs peuvent être utilisés comme critères de correspondance dans la clause NRQL WHERE.

Quand

  • analyser ne sera appliqué qu'une seule fois à chaque message de log. Si plusieurs règles d'analyse correspondent au log, seule la première qui réussit sera appliquée.
  • Les règles d’analyse ne sont pas ordonnées. Si plusieurs règles d'analyse correspondent à un log, une est choisie au hasard. Assurez-vous de créer vos règles d’analyse de manière à ce qu’elles ne correspondent pas au même log.
  • L'analyse a lieu lors de l'ingestion log , avant que les données ne soient écrites dans NRDB. Une fois les données écrites sur le stockage, elles ne peuvent plus être analysées.
  • L'analyse se produit dans le pipeline before des enrichissements de données ont lieu. Soyez prudent lorsque vous définissez les critères de correspondance pour une règle d’analyse. Si les critères sont basés sur un attribut qui n'existe pas avant l'analyse ou l'enrichissement, ces données ne seront pas présentes dans le log lors de la correspondance. Par conséquent, aucune analyse n’aura lieu.

Comment

  • Les règles peuvent être écrites en Grok, regex ou un mélange des deux. Grok est une collection de modèles qui font abstraction des expressions régulières complexes.
  • Nous prenons en charge la syntaxe Java Regex dans notre interface utilisateur d'analyse. Pour les noms d'attributs ou de champs dans les groupes de capture, Java Regex autorise uniquement [A-Za-z0-9].

Analyser l'attribut à l'aide de Grok

Les modèles d'analyse sont spécifiés à l'aide de Grok, une norme industrielle pour l'analyse des messages de log. Tout log entrant avec un champ logtype sera vérifié par rapport à nos règles d'analyse intégrées et, si possible, le modèle Grok associé est appliqué au log.

Grok est un sur-ensemble d'expressions régulières qui ajoute des modèles nommés intégrés à utiliser à la place des expressions régulières complexes littérales. Par instance, au lieu de devoir se rappeler qu'un entier peut être associé aux expressions régulières (?:[+-]?(?:[0-9]+)), vous pouvez simplement écrire %{INT} pour utiliser le modèle Grok INT, qui représente les mêmes expressions régulières.

Les modèles Grok ont la syntaxe :

%{PATTERN_NAME[:OPTIONAL_EXTRACTED_ATTRIBUTE_NAME[:OPTIONAL_TYPE[:OPTIONAL_PARAMETER]]]}

Où:

  • PATTERN_NAME est l'un des modèles Grok pris en charge. Le nom du motif est juste un nom convivial représentant des expressions régulières. Elles sont exactement égales aux expressions régulières correspondantes.
  • OPTIONAL_EXTRACTED_ATTRIBUTE_NAME, s'il est fourni, est le nom de l'attribut qui sera ajouté à votre message de log avec la valeur correspondant au nom du modèle. Cela équivaut à utiliser un groupe de capture nommé à l’aide d’expressions régulières. Si cela n'est pas fourni, la règle d'analyse correspondra simplement à une région de votre chaîne, mais n'extrairea pas un attribut avec sa valeur.
  • OPTIONAL_TYPE spécifie le type de valeur d'attribut à extraire. Si elles sont omises, les valeurs sont extraites sous forme de chaînes. Par instance, pour extraire la valeur 123 de "File Size: 123" sous forme de nombre dans l'attribut file_size, utilisez value: %{INT:file_size:int}.
  • OPTIONAL_PARAMETER spécifie un paramètre facultatif pour certains types. Actuellement, seul le type datetime prend un paramètre, voir ci-dessous pour plus de détails.

Vous pouvez également utiliser un mélange d'expressions régulières et de noms de modèles Grok dans votre chaîne correspondante.

Cliquez sur ce lien pour une liste des modèles Grok pris en charge et ici pour une liste des types Grok pris en charge.

Notez que les noms de variables doivent être explicitement définis et être en minuscules comme %{URI:uri}. Des expressions telles que %{URI} ou %{URI:URI} ne fonctionneraient pas.

Organisation par type de log

Le pipeline d'ingestion de log de New Relic peut analyser les données en faisant correspondre un événement de log à une règle décrivant comment le log doit être analysé. Il existe deux façons d'analyser un événement de log :

Les règles sont une combinaison de logique de correspondance et de logique d'analyse. La correspondance est effectuée en définissant une correspondance de requête sur un attribut du log. Les règles ne sont pas appliquées rétroactivement. Les logs collectés avant la création d'une règle ne sont pas analysés par cette règle.

La manière la plus simple d'organiser votre log et la manière dont il est analysé est d'inclure le champ logtype dans votre événement de log. Cela indique à New Relic quelle règle intégrée appliquer au log.

Important

Une fois qu'une règle d'analyse est active, les données analysées par la règle sont modifiées de manière permanente. Cela ne peut pas être annulé.

Limites

L'analyse est coûteuse en termes de calcul, ce qui introduit des risques. l'analyse est effectuée pour les règles personnalisées définies dans un compte et pour faire correspondre les modèles à un log. Un grand nombre de modèles ou de règles personnalisées mal définies consommeront une énorme quantité de mémoire et de ressources CPU tout en prenant beaucoup de temps à exécuter.

Afin d'éviter les problèmes, nous appliquons deux limites d'analyse : par message, par règle et par compte.

Limite

Description

Par message et par règle

La limite par message et par règle empêche que le temps consacré à l'analyse d'un seul message soit supérieur à 100 ms. Si cette limite est atteinte, le système cessera de tenter d'analyser le message de log avec cette règle.

Le pipeline d'ingestion tentera d'exécuter tout autre élément applicable à ce message, et le message sera toujours transmis via le pipeline d'ingestion et stocké dans NRDB. Le message de log sera dans son format original, non analysé.

Par compte

La limite par compte existe pour empêcher les comptes d’utiliser plus que leur juste part de ressources. La limite prend en compte le temps total passé à traiter all message de log pour un compte par minute.

Conseil

Pour vérifier facilement si vos limites de débit ont été atteintes, accédez à la page Limits de votre système dans l'interface utilisateur de New Relic.

Règles d'analyse intégrées

Les formats log courants ont des règles d'analyse bien établies déjà créées pour eux. Pour bénéficier des règles d’analyse intégrées, ajoutez l’attribut logtype lors du transfert du log. Définissez la valeur sur une valeur répertoriée dans le tableau suivant et les règles pour ce type de log seront appliquées automatiquement.

Liste des règles intégrées

Les valeurs d’attribut logtype suivantes correspondent à une règle d’analyse prédéfinie. Par exemple, pour interroger l'équilibreur de charge d'application :

  • Depuis l'interface utilisateur de New Relic, utilisez le format logtype:"alb".
  • Depuis NerdGraph, utilisez le format logtype = 'alb'.

Pour savoir quels champs sont analysés pour chaque règle, consultez notre documentation sur les règles d'analyse intégrées.

logtype

source du log

Exemple de requête correspondante

apache

Log d'accès Apache

logtype:"apache"

apache_error

Log des erreurs Apache

logtype:"apache_error"

alb

Log de l'équilibreur de charge d'application

logtype:"alb"

cassandra

Log de Cassandre

logtype:"cassandra"

cloudfront-web

CloudFront (log Web standard)

logtype:"cloudfront-web"

cloudfront-rtl

CloudFront (log web temps réel)

logtype:"cloudfront-rtl"

elb

Log d' Elastic Load Balancer

logtype:"elb"

haproxy_http

Log HAProxy

logtype:"haproxy_http"

ktranslate-health

Log de santé du conteneur KTranslate

logtype:"ktranslate-health"

linux_cron

Cron Linux

logtype:"linux_cron"

linux_messages

Messages Linux

logtype:"linux_messages"

iis_w3c

Log du serveur Microsoft IIS - format W3C

logtype:"iis_w3c"

mongodb

Logs de MongoDB

logtype:"mongodb"

monit

Monit logs

logtype:"monit"

mysql-error

Log des erreurs MySQL

logtype:"mysql-error"

nginx

Log d'accès NGINX

logtype:"nginx"

nginx-error

Log des erreurs NGINX

logtype:"nginx-error"

postgresql

Log Postgresql

logtype:"postgresql"

rabbitmq

Log de Rabbitmq

logtype:"rabbitmq"

redis

Log Redis

logtype:"redis"

route-53

Log de la Route 53

logtype:"route-53"

syslog-rfc5424

Logs système au format RFC5424

logtype:"syslog-rfc5424"

Ajoutez le logtype

Lors de l'agrégation des logs, il est important de fournir des métadonnées qui facilitent l'organisation, la recherche et l'analyse de ces logs. Une façon simple de procéder consiste à ajouter l'attribut logtype au message de log lors de leur expédition. Les règles d’analyse intégrées sont appliquées par défaut à certaines valeurs logtype .

Conseil

Les champs logType, logtype et LOGTYPE sont tous pris en charge pour les règles intégrées. Pour faciliter la recherche, nous vous recommandons de vous aligner sur une syntaxe unique dans votre organisation.

Voici quelques exemples de la façon d'ajouter logtype au log envoyé par certaines de nos méthodes d'expédition prises en charge.

Créer et afficher des règles d'analyse personnalisées

De nombreux logs sont formatés ou structurés d’une manière unique. Afin de les analyser, une logique personnalisée doit être construite et appliquée.

Screenshot of log parsing in UI

Dans la navigation de gauche dans l'interface utilisateur du log, sélectionnez Parsing, puis créez votre propre règle d'analyse personnalisée avec une clause NRQL WHERE valide et un modèle Grok.

Pour créer et gérer vos propres règles d’analyse personnalisées :

  1. Allez à one.newrelic.com > All capabilities > Logs.
  2. À partir de Manage data dans la navigation de gauche de l’interface utilisateur du log, cliquez sur Parsing, puis sur Create parsing rule.
  3. Saisissez un nom pour la nouvelle règle d’analyse.
  4. Sélectionnez un champ existant à analyser (par défaut = message) ou entrez un nouveau nom de champ.
  5. Saisissez une clause NRQL WHERE valide pour correspondre au log que vous souhaitez analyser.
  6. Sélectionnez un log correspondant s'il existe, ou cliquez sur l'onglet Paste log pour coller un exemple log. Notez que si vous copiez du texte depuis l'interface utilisateur du log ou le générateur de requêtes pour le coller dans l'interface utilisateur d'analyse, assurez-vous qu'il s'agit de la version Unformatted .
  7. Saisissez la règle d'analyse et validez son fonctionnement en affichant les résultats dans la section Output . Pour en savoir plus sur Grok et les règles d'analyse personnalisées, lisez notre article de blog sur la façon d'analyser les logs avec les modèles Grok.
  8. Activez et enregistrez la règle d’analyse personnalisée.

Pour afficher les règles d’analyse existantes :

  1. Allez à one.newrelic.com > All capabilities > Logs.
  2. À partir de Manage data dans la barre de navigation de gauche de l’interface utilisateur du log, cliquez sur Parsing.

Dépannage

Si l'analyse ne fonctionne pas comme prévu, cela peut être dû à :

  • Logic: La logique de correspondance de la règle d'analyse ne correspond pas au log souhaité.
  • Timing: Si votre règle de correspondance d'analyse cible une valeur qui n'existe pas encore, elle échouera. Cela peut se produire si la valeur est ajoutée plus tard dans le pipeline dans le cadre du processus d’enrichissement.
  • Limits: Il y a une quantité de temps fixe disponible chaque minute pour traiter le log via l'analyse, les modèles, les filtres de suppression, etc. Si le temps maximum a été écoulé, l'analyse sera ignorée pour les enregistrements d'événements de log supplémentaires.

Pour résoudre ces problèmes, créez ou ajustez vos règles d'analyse personnalisées.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.