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.
Log parsing transforma los datos de logs no estructurados en atributos de búsqueda que puede utilizar para obtener información más detallada de sus logs. Estos atributos le permiten filtrar, facetar y alertar sobre sus datos con precisión.
Selecciona tu estrategia de análisis
Decida si analizar los datos en el momento de la ingesta o al ejecutar una consulta:
Tipo de análisis
Descripción
Ideal para
Análisis en tiempo de consulta
Crea atributos temporales usando NRQL que solo existen durante la ejecución de la consulta. Ideal para el análisis instantáneo de datos existentes sin esperar a que ingresen nuevos logs. Obtenga más información sobre el análisis en tiempo de consulta.
Solución de problemas e investigaciones ad hoc
Análisis exploratorio en conjuntos de datos pequeños
Investigaciones puntuales
Extraer atributos de logs ya almacenados en NRDB
Análisis en tiempo de ingesta
Crea atributos permanentes almacenados en NRDB. Dos formas de crear reglas de análisis en tiempo de ingesta:
Reglas de análisis incorporadas: Patrones preconfigurados para fuentes de logs comunes (Apache, NGINX, CloudFront, MongoDB, etc.). Simplemente agregue un atributo logtype al reenviar logs. Consulte la lista completa de reglas integradas.
Reglas de análisis personalizadas: Cuando sus logs son únicos para su aplicación, las reglas de análisis personalizadas le permiten definir exactamente qué campos son importantes para su negocio.
No Code Log Parsing: Detecta patrones en sus logs de muestra. Ideal para usuarios que desean apuntar y hacer clic para extraer campos.
Grok/Regex: personalizado Ingreso manual de código para formatos de log altamente complejos.
Grandes volúmenes de logs
Atributos analizados necesarios para alertas, dashboards y monitoreo continuo
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.
/ Here's a 5-minute video about log parsing: <Video id="xPWM46yw3bQ" type="youtube" /> /
Cómo funciona el análisis personalizado en tiempo de ingesta
El análisis personalizado le permite definir exactamente cómo New Relic estructura sus logs entrantes. Antes de crear reglas, es importante comprender las limitaciones técnicas del pipeline de ingesta.
Análisis de registros
Cómo funciona
Qué
Las reglas de análisis son altamente específicas. Cuando crea una regla, define:
El campo objetivo: El análisis se aplica a un campo específico a la vez.
La lógica de coincidencia: Usa una cláusula WHERE de NRQL para filtrar exactamente qué logs debe evaluar esta regla.
El método de extracción: Puede utilizar No Code Log Parsing para una experiencia de detección de patrones automática y guiada, o escribir manualmente Grok/Regex para estructuras de logs complejas y altamente personalizadas.
Cuando
New Relic procesa los logs en orden secuencial. Esto afecta qué condiciones pueden coincidir.
El análisis ocurre mientras se ingieren los datos. Una vez que se escribe un log en la NRDB, los cambios realizados son permanentes.
Una vez que se guarda y habilita una regla, las reglas comienzan a procesar los logs entrantes inmediatamente.
El análisis ocurre antes del enriquecimiento de datos (como la síntesis de entidades), el descarte o la partición.
Validación
Para asegurarse de que sus reglas funcionen antes de que afecten los datos ingestados, puede previsualizar la salida con 10 muestras de logs almacenadas recientemente en la partición ‘Log’. Estas muestras representan datos recibidos en los últimos 30 minutos, en lugar de una transmisión en vivo en tiempo real.
Crear una regla personalizada
Puede crear reglas de análisis en contexto mientras investiga un log. Esto evita el cambio de contexto y reduce el tiempo medio de detección (MTTD). Alternativamente, puede crear reglas desde cero al incorporar una nueva aplicación o servicio.
No Code Log Parsing
Utilice No Code Log Parsing para detectar y extraer campos de sus logs de muestra. New Relic analiza sus logs de muestra y sugiere patrones que puede configurar.
Para crear una regla en contexto, vaya a one.newrelic.com > Logs y aplique un filtro (o seleccione cualquier entidad que tenga logs, como APM, Browser o Mobile, y navegue a Logs in Context).
Para crear una regla sin contexto, vaya a one.newrelic.com > Logs sin establecer un filtro, o vaya a Logs > Parsing y haga clic en Create a parsing rule.
En el proceso de creación de reglas en contexto:
Haz clic en un log para abrirlo Log details
Selecciona el atributo de log que deseas analizar (por ejemplo, message)
Haga clic en Create ingest time parsing rule y proporcione un nombre para su regla
Si ha aplicado un filtro en la IU de Logs antes de crear la regla, se completa automáticamente una condición de coincidencia basada en ese filtro.
En el flujo sin contexto, proporciona un nombre para tu regla y establece una condición de filtro NRQL o pega un log de muestra.
Si configura un filtro de logs, haga clic en Run your query, seleccione el campo que desea analizar y haga clic en Next.
Si pega un log de muestra, debe definir la cláusula WHERE de NRQL para que coincida con sus logs, seleccionar el campo que desea analizar y hacer clic en Next.
Revise el Patterns we detected en el log de muestra seleccionado y la regla que se creó. Haga clic en un patrón resaltado para ver y editar su configuración.
Nota
Al nombrar atributos, use minúsculas con guiones bajos. Evite los caracteres especiales excepto los guiones bajos y no comience un nombre de atributo con un número.
Para las subcadenas que desea evitar analizar que incluyen valores dinámicos, asegúrese de establecerlas como subcadenas dinámicas seleccionándolas y cambiando su configuración a Yes.
Para un control más granular sobre los campos a extraer, haga clic y arrastre para resaltar el log de muestra.
Puede interactuar con los patrones de las siguientes maneras:
Auto detect patterns: Para detectar patrones en cualquier parte del log de muestra que no esté resaltada, haga clic y arrastre para resaltar esa subcadena y haga clic en Auto detect patterns. New Relic encontrará y resaltará patrones en la porción seleccionada. Para obtener una lista de los nombres de patrones Grok admitidos, consulte Nombres de patrones Grok admitidos.
Select text to parse: Seleccione este modo para la experiencia guiada de creación de reglas. Este modo ofrece una configuración patrón por patrón. Una vez establecidas las configuraciones del patrón, haga clic en Add pattern to rule para ver la regla actualizada y la vista previa de la salida.
Si los patrones detectados no son relevantes o extraen datos no deseados, puede eliminarlos de la regla creada mediante:
Resalte el patrón no deseado en la ventana de log de muestra y haga clic en Remove selected patterns, o
Haga clic en un patrón y seleccione Remove.
Revise el panel Preview output. Verifique que los logs de muestra muestren una marca de verificación verde, indicando que coinciden con su regla y que los campos se extraerán al momento de la ingesta.
Para cambiar su muestra, expanda cualquier log en el panel Preview output y haga clic en Use as sample.
Si seleccionó un log sin coincidencias: La muestra seleccionada aparecerá en la ventana de logs de muestra, se detectarán nuevos patrones y se creará una nueva regla.
Si seleccionó un log coincidente: La muestra seleccionada aparecerá en la ventana de logs de muestra.
Haga clic en Save rule para activar de inmediato o en Save as draft para activar más tarde.
Escriba su propio personalizado Grok/Regex
Para formatos únicos, los usuarios avanzados pueden hacer clic en Write your own rule en la página Create a parsing rule para cambiar al editor de código y modificar patrones directamente en el editor de reglas.
Una vez que termine de editar la regla, haga clic en Preview para ver la salida de la vista previa actualizada y haga clic en Save rule para activarla.
Nota
Para cambiar al editor heredado, haga clic en Switch to original editor en la esquina superior derecha de la página Create a parsing rule.
Patrones de datos admitidos
New Relic admite el análisis de varios tipos de datos y formatos de datos mediante patrones Grok. Los patrones de análisis se especifican mediante Grok, un estándar de la industria para analizar mensajes de log. Grok es un superconjunto de expresiones regulares que agrega patrones con nombre integrados para usarse en lugar de expresiones regulares complejas literales.
Las reglas de análisis pueden incluir una combinación de expresiones regulares y nombres de patrones Grok en su cadena de coincidencia. Haga clic en este enlace para ver una lista de patrones Grok compatibles, y aquí para ver una lista de tipos de Grok compatibles.
Los patrones Grok siguen una sintaxis predefinida:
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.
El campo OPTIONAL_TYPE especifica el tipo de valor de atributo que se extraerá. Si se omite, los valores se extraen como cadenas.
Los tipos admitidos son:
Tipo especificado en Grok
Tipo almacenado en la base de datos de New Relic
boolean
boolean
byteshortintinteger
integer
long
long
float
float
double
double
string (por defecto) text
string
datedatetime
El tiempo como long
De forma predeterminada, se interpreta como ISO 8601. Si OPTIONAL_PARAMETER está presente, especifica la cadena de patrón de fecha y horaque se usará para interpretar el datetime.
Si tiene un registro de varias líneas, tenga en cuenta que el patrón GREEDYDATA Grok no coincide con las nuevas líneas (es equivalente a .*).
Entonces, en lugar de usar %{GREEDYDATA:some_attribute} directamente, necesitarás agregar la bandera multilínea delante: (?s)%{GREEDYDATA:some_attribute}
El pipeline de logs de New Relic analiza sus mensajes de log JSON de forma predeterminada, pero a veces tiene mensajes de log JSON mezclados con texto sin formato. En esta situación, es posible que desee analizarlos y luego poder filtrar utilizando los atributos JSON. Si ese es el caso, puede utilizar el tipo Grokjson, que analizará el JSON capturado por el patrón Grok. Este formato se basa en 3 partes principales: la sintaxis Grok, el prefijo que desee asignar a los atributos JSON analizados y el jsontipo de Grok. Al usar el jsontipo Grok, puede extraer y analizar JSON de logs que no tienen el formato correcto; por ejemplo, si sus logs están precedidos por una cadena de fecha/hora:
Puede definir la lista de atributos a extraer o soltar con las opciones keepAttributes o dropAttributes. Por ejemplo, con la siguiente expresión de Grok:
Si desea omitir el prefijo my_attribute_prefix y conservar solo el atributo status , puede incluir "noPrefix": true y "keepAttributes: ["status"] en la configuración.
Si se escapó su JSON, puede usar la opción isEscaped para poder analizarlo. Si su JSON se escapó y luego se citó, también debe hacer coincidir las comillas, como se muestra a continuación. Por ejemplo, con la siguiente expresión de Grok:
Para configurar el tipo jsonGrok, emplee :json(_CONFIG_):
json({"dropOriginal": true}): elimine el fragmento JSON que se utilizó en el análisis. Cuando se establece en true (valor predeterminado), la regla de análisis eliminará el fragmento JSON original. Tenga en cuenta que el atributo JSON permanecerá en el campo del mensaje.
json({"dropOriginal": false}): Esto mostrará la carga útil JSON que se extrajo. Cuando se establece en false, la carga útil completa solo JSON se mostrará bajo un atributo denominado en my_attribute_prefix arriba. Tenga en cuenta que el atributo JSON permanecerá aquí en el campo de mensaje y también brindará al usuario 3 vistas diferentes de los datos JSON. Si le preocupa el almacenamiento de las tres versiones, se recomienda utilizar el valor predeterminado true aquí.
json({"depth": 62}): Niveles de profundidad que desea analizar el valor JSON (predeterminado en 62).
json({"keepAttributes": ["attr1", "attr2", ..., "attrN"]}): Especifica qué atributo se extraerá del JSON. La lista proporcionada no puede estar vacía. Si esta opción de configuración no está configurada, se extraen todos los atributos.
json({"dropAttributes": ["attr1", "attr2", ..., "attrN"]}): Especifica qué atributo se eliminará del JSON. Si esta opción de configuración no está configurada, no se elimina ningún atributo.
json({"noPrefix": true}): establezca esta opción en true para eliminar el prefijo del atributo extraído del JSON.
json({"isEscaped": true}): Establezca esta opción en true para analizar JSON que se escapó (lo que normalmente se ve cuando JSON está encadenado, por ejemplo, {\"key\": \"value\"}).
Si su sistema envía un registro de valores separados por comas (CSV) y necesita analizarlos en New Relic, puede usar el tipo csv Grok, que analiza el CSV capturado por el patrón Grok. Este formato se basa en 3 partes principales: la sintaxis de Grok, el prefijo que le gustaría asignar al atributo CSV analizado y el tipocsv de Grok. Usando el tipo csvGrok, puede extraer y analizar CSV del registro.
Es obligatorio indicar las columnas en la configuración del tipo CSV Grok (que debe ser un JSON válido).
Puede ignorar cualquier columna estableciendo "_" (guión bajo) como nombre de la columna para eliminarla del objeto resultante.
Opciones de configuración opcionales:
Si bien la configuración de "columnas" es obligatoria, es posible cambiar el análisis del CSV con las siguientes configuraciones.
dropOriginal: (El valor predeterminado es true) Suelte el fragmento CSV utilizado en el análisis. Cuando se establece en true (valor predeterminado), la regla de análisis descarta el campo original.
noPrefix: (El valor predeterminado es false) No incluye el nombre del campo Grok como prefijo en el objeto resultante.
separator: (Predeterminado en ,) Define el carácter/cadena que divide cada columna.
Otro escenario común son los valores separados por tabulaciones (TSV), para eso debes indicar \t como separador, ej. %{GREEDYDATA:log:csv({"columns": ["timestamp", "status", "method", "url", "time", "bytes"], "separator": "\t"})
quoteChar: (Predeterminado en ") Define el carácter que opcionalmente rodea el contenido de una columna.
Si su sistema envía registros que contienen direcciones IPv4, New Relic puede ubicarlas geográficamente y enriquecer el registro de eventos con el atributo especificado. Puede utilizar el tipogeo Grok, que encuentra la posición de una dirección IP capturada por el patrón Grok. Este formato se puede configurar para devolver uno o más campos relacionados con la dirección, como la ciudad, el país y la latitud/longitud de la IP.
Es obligatorio especificar los campos lookup deseados devueltos por la acción geo . Se requiere al menos un elemento de las siguientes opciones.
city: Nombre de la ciudad
countryCode: Abreviatura de país
countryName: Nombre del país
latitude: Latitud
longitude: Longitud
postalCode: Código postal, código postal o similar
region: Abreviatura de estado, provincia o territorio
regionName: Nombre del estado, provincia o territorio
La canalización de logs de New Relic analiza su mensaje de log de manera predeterminada, pero a veces tiene mensajes de log que están formateados como pares principales de valores. En esta situación, es posible que desees poder analizarlos y luego filtrarlos empleando el atributo valor principal.
En ese caso, puede utilizar el keyvaluetipo Grok, que analizará los pares clave-valor capturados por el patrón Grok. Este formato se basa en 3 partes principales: la sintaxis Grok, el prefijo que desea asignar a los atributos clave-valor analizados y el keyvaluetipo de Grok. Al usar el tipo Grokkeyvalue, puede extraer y analizar pares clave-valor de logs que no tienen el formato correcto; por ejemplo, si sus logs tienen un prefijo de cadena de fecha/hora:
"my_attribute_prefix.message": "'This message contains information with spaces",
"my_attribute_prefix.nbn_demo": "INFO",
"my_attribute_prefix.sessionId": "abc123"
Parrilla con patrón Grok
Puede personalizar el comportamiento de análisis con las siguientes opciones para adaptarlo a sus formatos de log:
delimitador
Descripción: Cadena que separa cada par principal de valores.
Valor predeterminado:, (coma)
Anular: establezca el campo delimiter para cambiar este comportamiento.
separador de valor-clave
Descripción: Cadena empleada para asignar valores a las claves.
Valor predeterminado:=
Anulación: establezca el campo keyValueSeparator para el uso del separador personalizado.
Cita Char
Descripción: Carácter empleado para encerrar valores con espacios o caracteres especiales.
Valor predeterminado:" (comillas dobles)
Anulación: define un carácter personalizado empleando quoteChar.
soltarOriginal
Descripción: Elimina el mensaje de log original luego del análisis. Útil para reducir el almacenamiento de logs.
Valor predeterminado:true
Anulación: Establezca dropOriginal en false para conservar el mensaje de log original.
Sin prefijo
Descripción: Cuando true, excluye el nombre del campo Grok como prefijo en el objeto resultante.
Valor predeterminado:false
Anulación: habilítelo estableciendo noPrefix en true.
escapeChar
Descripción: Define un carácter de escape personalizado para manejar caracteres de log especiales.
Valor predeterminado: "" (barra invertida)
Anular: Personalizar con escapeChar.
valores de recorte
Descripción: Permite recortar valores que contienen espacios en blanco.
Valor predeterminado:false
Anulación: Establezca trimValues en true para activar el recorte.
Teclas de ajuste
Descripción: Permite recortar teclas que contienen espacios en blanco.
Valor predeterminado:true
Anulación: Establezca trimKeys en true para activar el recorte.
New Relic admite los siguientes patrones Grok:
IP
TIMESTAMP_ISO8601
HTTPDATE
TIME
UUID
MONTH
SPACE
DATESTAMP
DATE
COMBINEDAPACHELOG
ISO8601_TIMEZONE
MAC
DATE_EU
TZ
DATE_US
DAY
LOGLEVEL
NUMBER
INT
QUOTEDSTRING
SYSLOGTIMESTAMP
PATH
SYSLOGBASE
COMMONAPACHELOG
IPV6
COMMONMAC
DATESTAMP_OTHER
ISO8601_SECOND
DATESTAMP_EVENTLOG
SYSLOGBASE2
HAPROXYHTTP
RUBY_LOGGER
WINDOWSMAC
WORD
DATA
GREEDYDATA
NOTSPACE
BASE16FLOAT
QS
BASE10NUM
USER
IPORHOST
USERNAME
IPV4
MONTHDAY
YEAR
HOSTNAME
POSINT
URIPATHPARAM
URI
URIPATH
MONTHNUM
NONNEGINT
MINUTE
SECOND
HOUR
URIHOST
URIPROTO
URIPARAM
SYSLOGHOST
BASE16NUM
SYSLOGPROG
ANFITRIÓN
HOSTPORT
JAVACLASS
PROG
UNIXPATH
WINPATH
MONTHNUM2
RUBY_LOGLEVEL
SYSLOGFACILITY
CRON_ACTION
HAPROXYCAPTUREDREQUESTHEADERS
HAPROXYCAPTUREDRESPONSEHEADERS
HAPROXYDATE
CISOMAC
Administrar reglas de análisis
Después de crear reglas de análisis, puede gestionarlas desde Logs > Parsing. Las reglas en borrador están guardadas pero aún no activadas. Puede activarlos cuando esté listo para aplicarlos a los logs entrantes.
Para editar una regla de análisis:
En su lista de reglas de análisis, haga clic en el nombre de la regla o haga clic en ... > Edit y realice los cambios necesarios. Para cambiar al editor de código, haga clic en Write your own rule para escribir o modificar patrones Grok/Regex directamente.
Haga clic en Save rule (o Save as draft si desea mantenerlo desactivado).
Los cambios se aplican a los logs ingeridos después de la actualización. Para habilitar, deshabilitar o eliminar una regla de análisis:
Busque la regla en su lista de reglas de análisis y haga clic en el menú ....
Seleccione una acción:
Enable: Activa la regla en borrador (se aplica inmediatamente a los logs recién ingestados)
Disable: Pausa temporalmente la regla activa
Delete: Elimina la regla por completo
Límites
El análisis es computacionalmente intensivo. Para garantizar la estabilidad de la plataforma, New Relic aplica lo siguiente:
Límite por mensaje: Una regla tiene 100ms para analizar un solo mensaje. Si supera esto, el análisis se detiene para ese mensaje.
Límite por cuenta: El tiempo total de procesamiento está limitado por minuto. Si alcanza esto, los logs permanecerán sin analizar (almacenados en su formato original).
Tiempos del pipeline: El análisis ocurre antes del enriquecimiento. No puedes hacer coincidir una regla de análisis con un atributo que aún no se ha agregado (como una etiqueta agregada más adelante en el pipeline).
La regla de la primera coincidencia: Las reglas de análisis no están ordenadas. Si múltiples reglas coinciden con un solo log, New Relic aplica una al azar. Asegúrese de que sus cláusulas WHERE de NRQL sean lo suficientemente específicas para evitar coincidencias superpuestas.
Sugerencia
Para comprobar fácilmente si se han alcanzado sus límites de tarifas, vaya a la página de su Limitssistema en la New Relic UI.
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.