• /
  • EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Analizando datos log

Log parsing es el proceso de traducir datos log no estructurados en atributos (pares de valores principales) según las reglas que usted defina. Puede emplear estos atributos en su consulta NRQL para facetar o filtrar el registro de formas útiles.

New Relic analiza los datos log automáticamente de acuerdo con ciertas reglas de análisis. En este documento, aprenderá cómo funciona el análisis de registros y cómo crear sus propias reglas de análisis personalizadas.

También puede crear, consultar y administrar sus reglas de análisis de registros utilizando NerdGraph, nuestra API GraphQL. Una herramienta útil para esto es nuestro explorador de API Nerdgraph. Para obtener más información, consulte nuestro tutorial de NerdGraph para analizar.

Aquí hay un video de 5 minutos sobre análisis de registros:

Ejemplo de análisis

Un buen ejemplo es un log de acceso NGINX predeterminado que contiene texto no estructurado. Es útil para buscar pero no mucho más. A continuación se muestra un ejemplo de una línea típica:

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)"

En un formato no analizado, necesitaría realizar una búsqueda de texto completo para responder la mayoría de las preguntas. Después del análisis, el log se organiza en atributos, como response code y 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)"
}

El análisis facilita la creación de consultas personalizadas que incluyan esos valores. Esto le ayuda a comprender la distribución de códigos de respuesta por URL de solicitud y a encontrar rápidamente páginas problemáticas.

Cómo funciona el análisis de registros

Aquí hay una descripción general de cómo New Relic implementa el análisis de registros:

Análisis de registros

Cómo funciona

Qué

  • El análisis se aplica a un campo seleccionado específico. De forma predeterminada, se utiliza el campo message . Sin embargo, se puede elegir cualquier campo/atributo, incluso uno que no exista actualmente en sus datos.
  • Cada regla de análisis se crea mediante una cláusula NRQL WHERE que determina qué registro intentará analizar la regla.
  • Para simplificar el proceso de coincidencia, recomendamos agregar un atributo logtype a su registro. Sin embargo, no está limitado a utilizar logtype; Se pueden utilizar uno o más atributos como criterios coincidentes en la cláusula NRQL WHERE.

Cuando

  • El análisis solo se aplicará una vez a cada mensaje de log. Si varias reglas de análisis coinciden con el log, solo se aplicará la primera que tenga éxito.
  • Las reglas de análisis están desordenadas. Si más de una regla de análisis coincide con un log, se elige una al azar. Asegúrese de crear sus reglas de análisis para que no coincidan con el mismo registro.
  • El análisis se lleva a cabo durante la ingesta log , antes de que los datos se escriban en NRDB. Una vez que los datos se han escrito en el almacenamiento, ya no se pueden analizar.
  • El análisis se produce en el pipeline en la que se realizan before enriquecimientos de datos. Tenga cuidado al definir los criterios coincidentes para una regla de análisis. Si el criterio se basa en un atributo que no existe hasta que se realiza el análisis o el enriquecimiento, esos datos no estarán presentes en el registro cuando se produzca la coincidencia. Como resultado, no se realizará ningún análisis.

Cómo

  • Las reglas se pueden escribir en Grok, expresiones regulares o una combinación de ambos. Grok es una colección de patrones que abstraen expresiones regulares complicadas.
  • Admitimos la sintaxis Java Regex en nuestra UI de análisis. Para los nombres de atributos o campos en grupos de captura, Java Regex solo permite [A-Za-z0-9].

Analizar atributos usando Grok

Los patrones de análisis se especifican utilizando Grok, un estándar de la industria para analizar mensajes de registro. Cualquier log entrante con un campo logtype se comparará con nuestras reglas de análisis integradas y, si es posible, se aplicará el patrón Grok asociado al log.

Grok es un superconjunto de expresiones regulares que agrega patrones con nombre integrados para usarse en lugar de expresiones regulares complejas literales. Por ejemplo, en lugar de tener que recordar que un número entero puede coincidir con la expresión regular (?:[+-]?(?:[0-9]+)), puedes simplemente escribir %{INT} para usar el patrón de Grok INT, que representa la misma expresión regular.

Los patrones de Grok tienen la sintaxis:

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

Dónde:

  • PATTERN_NAME es uno de los patrones Grok admitidos. El nombre del patrón es simplemente un nombre fácil de usar que representa una expresión regular. Son exactamente iguales a la expresión regular correspondiente.
  • OPTIONAL_EXTRACTED_ATTRIBUTE_NAME, si se proporciona, es el nombre del atributo que se agregará a su mensaje de registro con el valor que coincide con el nombre del patrón. Es equivalente a utilizar un grupo de captura con nombre utilizando expresiones regulares. Si no se proporciona esto, entonces la regla de análisis simplemente coincidirá con una región de su cadena, pero no extraerá un atributo con su valor.
  • OPTIONAL_TYPE especifica el tipo de valor de atributo que se extraerá. Si se omite, los valores se extraen como cadenas. Por ejemplo, para extraer el valor 123 de "File Size: 123" como un número en el atributo file_size, use value: %{INT:file_size:int}.
  • OPTIONAL_PARAMETER especifica un parámetro opcional para ciertos tipos. Actualmente, solo el tipo datetime toma un parámetro; consulte a continuación para obtener más detalles.

También puedes usar una combinación de expresiones regulares y nombres de patrones de Grok en tu cadena coincidente.

Haga clic en este enlace para obtener una lista de patrones de Grok compatibles y aquí para obtener una lista de tipos de Grok compatibles.

Tenga en cuenta que los nombres de las variables deben establecerse explícitamente y estar en minúsculas, como %{URI:uri}. Expresiones como %{URI} o %{URI:URI} no funcionarían.

Organizar por tipo de registro

New Relic log pipeline de ingesta de puede analizar datos haciendo coincidir un registro de evento con una regla que describe cómo log se debe analizar el . Hay dos formas de analizar el registro de eventos:

Las reglas son una combinación de lógica de coincidencia y lógica de análisis. La comparación se realiza definiendo una coincidencia de consulta en un atributo del registro. Las reglas no se aplican retroactivamente. Los registros recopilados antes de que se cree una regla no son analizados por esa regla.

La forma más sencilla de organizar su registro y cómo se analizan es incluir el campo logtype en su registro de eventos. Esto le dice New Relic qué regla incorporada aplicar al registro.

Importante

Una vez que una regla de análisis está activa, los datos analizados por la regla cambian permanentemente. Esto no se puede revertir.

Límites

El análisis es computacionalmente costoso, lo que introduce riesgos. El análisis se realiza para reglas personalizadas definidas en una cuenta y para hacer coincidir patrones con un log. Una gran cantidad de patrones o reglas personalizadas mal definidas consumirán una gran cantidad de memoria y recursos de CPU y, al mismo tiempo, tardarán mucho tiempo en completarse.

Para evitar problemas, aplicamos dos límites de análisis: por mensaje, por regla y por cuenta.

Límite

Descripción

Por mensaje por regla

El límite por mensaje por regla evita que el tiempo dedicado a analizar cualquier mensaje sea superior a 100 ms. Si se alcanza ese límite, el sistema dejará de intentar analizar el mensaje de registro con esa regla.

El pipeline de ingesta intentará ejecutar cualquier otro aplicable en ese mensaje, y el mensaje seguirá pasando a través del pipeline de ingesta y se almacenará en NRDB. El mensaje de registro estará en su formato original, no analizado.

Por cuenta

El límite por cuenta existe para evitar que las cuentas utilicen más recursos de los que les corresponden. El límite considera el tiempo total dedicado a procesar all mensaje de registro para una cuenta por minuto.

Sugerencia

Para comprobar fácilmente si se han alcanzado sus límites de tarifas, vaya a la página de su Limits sistema en la New Relic UI.

Reglas de análisis integradas

Los formatos log comunes ya tienen reglas de análisis bien establecidas creadas para ellos. Para aprovechar las reglas de análisis integradas, agregue el atributo logtype al reenviar el registro. Establezca el valor en algo que se enumera en la siguiente tabla y las reglas para ese tipo de log se aplicarán automáticamente.

Lista de reglas integradas

Los siguientes valores de atributo logtype se asignan a una regla de análisis predefinida. Por ejemplo, para consultar la aplicación Load Balancer:

  • Desde la New Relic UI, utilice el formato logtype:"alb".
  • Desde NerdGraph, use el formato logtype = 'alb'.

Para saber qué campos se analizan para cada regla, consulte nuestra documentación sobre reglas de análisis integradas.

logtype

Fuente log

Ejemplo de consulta coincidente

apache

Registro de acceso de Apache

logtype:"apache"

apache_error

Registro de errores de apache

logtype:"apache_error"

alb

Registro del balanceador de carga de la aplicación

logtype:"alb"

cassandra

Registro de casandra

logtype:"cassandra"

cloudfront-web

CloudFront (registro web estándar)

logtype:"cloudfront-web"

cloudfront-rtl

CloudFront (registro web en tiempo real)

logtype:"cloudfront-rtl"

elb

Registro del equilibrador de carga elástico

logtype:"elb"

haproxy_http

Registro de HAProxy

logtype:"haproxy_http"

ktranslate-health

KTranslate registro de estado del contenedor

logtype:"ktranslate-health"

linux_cron

Cron de Linux

logtype:"linux_cron"

linux_messages

Mensajes de linux

logtype:"linux_messages"

iis_w3c

Registro del servidor Microsoft IIS: formato W3C

logtype:"iis_w3c"

mongodb

Registro de MongoDB

logtype:"mongodb"

monit

Registro de monitorización

logtype:"monit"

mysql-error

Registro de errores MySQL

logtype:"mysql-error"

nginx

Registro de acceso a NGINX

logtype:"nginx"

nginx-error

Registro de errores de NGINX

logtype:"nginx-error"

postgresql

Registro de postgresql

logtype:"postgresql"

rabbitmq

Log de Rabbitmq

logtype:"rabbitmq"

redis

Log de Redis

logtype:"redis"

route-53

Registro de la ruta 53

logtype:"route-53"

syslog-rfc5424

Syslogs con formato RFC5424

logtype:"syslog-rfc5424"

Agrega el logtype

Al agregar registros, es importante proporcionar metadatos que faciliten la organización, búsqueda y análisis de esos registros. Una forma sencilla de hacerlo es agregar el atributo logtype al mensaje de registro cuando se envían. Las reglas de análisis integradas se aplican de forma predeterminada a ciertos valores logtype .

Sugerencia

Los campos logType, logtype y LOGTYPE son compatibles con reglas integradas. Para facilitar la búsqueda, le recomendamos que se alinee con una única sintaxis en su organización.

A continuación se muestran algunos ejemplos de cómo agregar logtype al registro enviado mediante algunos de nuestros métodos de envío admitidos.

Crear y ver reglas de análisis personalizadas

Muchos registros tienen un formato o estructura únicos. Para analizarlos, se debe crear y aplicar una lógica personalizada.

Screenshot of log parsing in UI

Desde el navegador izquierdo en la UI de registro, seleccione Parsing y luego cree su propia regla de análisis personalizada con una cláusula NRQL WHERE válida y un patrón Grok.

Para crear y administrar sus propias reglas de análisis personalizadas:

  1. Vaya a one.newrelic.com > All capabilities > Logs.
  2. Desde Manage data en el panel de navegación izquierdo de la UI de log, haga clic en Parsing y luego haga clic en Create parsing rule.
  3. Introduzca un nombre para la nueva regla de análisis.
  4. Seleccione un campo existente para analizar (predeterminado = message) o ingrese un nuevo nombre de campo.
  5. Introduzca una cláusula NRQL WHERE válida que coincida con el log que desea analizar.
  6. Seleccione un log coincidente, si existe, o haga clic en la pestaña Paste log para pegar un log de muestra. Tenga en cuenta que si copia texto de la UI del registro o del generador de consultas para pegarlo en la UI usuario de análisis, cerciorar de que sea la versión Unformatted.
  7. Ingrese la regla de análisis y valide que esté funcionando viendo los resultados en la sección Output . Para obtener más información sobre Grok y las reglas de análisis personalizadas, lea nuestra publicación de blog sobre cómo analizar registros con patrones de Grok.
  8. Habilite y guarde la regla de análisis personalizada.

Para ver las reglas de análisis existentes:

  1. Vaya a one.newrelic.com > All capabilities > Logs.
  2. Desde Manage data en el panel de navegación izquierdo de la UI de registro, haga clic en Parsing.

Resolución de problemas

Si el análisis no funciona como esperaba, puede deberse a lo siguiente:

  • Logic: La lógica de coincidencia de reglas de análisis no coincide con el registro que desea.
  • Timing: Si su regla de coincidencia de análisis tiene como objetivo un valor que aún no existe, fallará. Esto puede ocurrir si el valor se agrega más adelante en el proceso como parte del proceso de enriquecimiento.
  • Limits: Hay una cantidad fija de tiempo disponible cada minuto para procesar el registro mediante análisis, patrones, filtros de eliminación, etc. Si se ha invertido la cantidad máxima de tiempo, se omitirá el análisis de registros de eventos adicionales.

Para resolver estos problemas, cree o ajuste sus reglas de análisis personalizadas.

Copyright © 2024 New Relic Inc.

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