Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Procesadores configurables tipo analizador
Esta sección contiene información sobre los procesadores analizadores de datos configurables que puede usar en un transformador de eventos de registro.
Contenido
parseJSON
El procesador parseJSON analiza los eventos del registro JSON e inserta los pares clave-valor JSON extraídos en el destino. Si no se especifica un destino, el procesador coloca el par clave-valor debajo del nodo raíz. Si se utiliza parseJSON como primer procesador, debe analizar todo el evento de registro con @message como el campo de origen. Tras el análisis inicial de JSON, se pueden manipular campos específicos en los procesadores posteriores.
El contenido @message original no se modifica, las nuevas claves se añaden al mensaje.
| Campo | Description (Descripción) | ¿Obligatorio? | Predeterminado | Límites de las s |
|---|---|---|---|---|
|
origen |
Ruta al campo del evento de registro que se analizará. Utilice la notación de puntos para acceder a los campos secundarios. Por ejemplo, store.book |
No |
|
Longitud máxima: 128 Profundidad máxima de clave anidada: 3 |
|
destination |
El campo de destino de JSON analizado |
No |
|
Longitud máxima: 128 Profundidad máxima de clave anidada: 3 |
Ejemplo
Supongamos que un evento de registro ingerido tiene un aspecto similar al siguiente:
{ "outer_key": { "inner_key": "inner_value" } }
Entonces, si tenemos este procesador parseJSON:
[ { "parseJSON": { "destination": "new_key" } } ]
El evento de registro transformado sería el siguiente.
{ "new_key": { "outer_key": { "inner_key": "inner_value" } } }
grok
Utilice el procesador grok para analizar y estructurar los datos no estructurados mediante la coincidencia de patrones. Este procesador también puede extraer campos de los mensajes de registro.
| Campo | Description (Descripción) | ¿Obligatorio? | Predeterminado | Límites de las s | Notas |
|---|---|---|---|---|---|
|
origen |
Ruta del campo al que se va a aplicar la coincidencia de grok |
No |
|
Longitud máxima: 128 Profundidad máxima de clave anidada: 3 |
|
|
match |
El patrón grok que coincide con el evento de registro |
Sí |
Longitud máxima: 512 Patrones grok máximos: 20 Algunos tipos de patrones grok tienen límites de uso individuales. Se puede usar cualquier combinación de los siguientes patrones hasta cinco veces: {URI, URIPARAM, URIPATHPARAM, SPACE, DATA, GREEDYDATA, GREEDYDATA_MULTILINE} Los patrones grok no admiten conversiones de tipos. Para los patrones de formato de registro comunes (APACHE_ACCESS_LOG, NGINX_ACCESS_LOG SYSLOG5424), solo se admite incluir los patrones DATA, GREEDYDATA o GREEDYDATA_MULTILINE después del patrón de registro común. |
Estructura de un patrón grok
Esta es la estructura del patrón grok compatible:
%{PATTERN_NAME:FIELD_NAME}
-
PATTERN_NAME: hace referencia a una expresión regular predefinida para hacer coincidir un tipo específico de datos. Solo se admiten los patrones grok predefinidos. No se permite crear patrones personalizados.
-
FIELD_NAME: asigna un nombre al valor extraído.
FIELD_NAMEes opcional, pero si no especifica este valor, los datos extraídos se eliminarán del evento de registro transformado. SiFIELD_NAMEutiliza una notación punteada (p. ej., “parent.child”), se considera una ruta JSON. -
Conversión de tipos: no se admiten las conversiones de tipos explícitos. Utilice el TypeConverter procesador para convertir el tipo de datos de cualquier valor extraído por grok.
Para crear expresiones coincidentes más complejas, puede combinar varios patrones grok. Se pueden combinar hasta 20 patrones grok para que coincidan con un evento de registro. Por ejemplo, esta combinación de patrones %{NUMBER:timestamp} [%{NUMBER:db}
%{IP:client_ip}:%{NUMBER:client_port}] %{GREEDYDATA:data} se puede usar para extraer campos de una entrada de registro lenta de Redis como esta:
1629860738.123456 [0 127.0.0.1:6379] "SET" "key1" "value1"
Ejemplos de grok
Ejemplo 1: Utilice grok para extraer un campo de registros no estructurados
Registros de ejemplo:
293750 server-01.internal-network.local OK "[Thread-000] token generated"
Transformador utilizado:
[ { "grok": { "match": "%{NUMBER:version} %{HOSTNAME:hostname} %{NOTSPACE:status} %{QUOTEDSTRING:logMsg}" } } ]
Salida:
{ "version": "293750", "hostname": "server-01.internal-network.local", "status": "OK", "logMsg": "[Thread-000] token generated" }
Registros de ejemplo:
23/Nov/2024:10:25:15 -0900 172.16.0.1 200
Transformador utilizado:
[ { "grok": { "match": "%{HTTPDATE:timestamp} %{IPORHOST:clientip} %{NUMBER:response_status}" } } ]
Salida:
{ "timestamp": "23/Nov/2024:10:25:15 -0900", "clientip": "172.16.0.1", "response_status": "200" }
Ejemplo 2: Utilice grok en combinación con parseJSON para extraer campos de un evento de registro JSON
Registros de ejemplo:
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1" }
Transformador utilizado:
[ { "parseJSON": {} }, { "grok": { "source": "logMsg", "match": "%{WORD:http_method} %{NOTSPACE:request} HTTP/%{NUMBER:http_version}" } } ]
Salida:
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1", "http_method": "GET", "request": "/page.html", "http_version": "1.1" }
Ejemplo 3: patrón grok con anotación punteada en FIELD_NAME
Registros de ejemplo:
192.168.1.1 GET /index.html?param=value 200 1234
Transformador utilizado:
[ { "grok": { "match": "%{IP:client.ip} %{WORD:method} %{URIPATHPARAM:request.uri} %{NUMBER:response.status} %{NUMBER:response.bytes}" } } ]
Salida:
{ "client": { "ip": "192.168.1.1" }, "method": "GET", "request": { "uri": "/index.html?param=value" }, "response": { "status": "200", "bytes": "1234" } }
Patrones grok admitidos
En las siguientes tablas se enumeran los patrones que admite el procesador grok.
Patrones grok generales
| Patrón grok | Description (Descripción) | Límite de patrones | Ejemplo |
|---|---|---|---|
| NOMBRE DE USUARIO o USUARIO | Coincide con uno o más caracteres que pueden incluir letras minúsculas (a-z), letras mayúsculas (A-Z), dígitos (0-9), puntos (.), guiones bajos (_) o guiones medios (-) | 20 |
Entrada: Patrón: Salida: |
| INT | Coincide con un signo más o menos opcional seguido de uno o más dígitos. | 20 |
Entrada: Patrón: Salida: |
| BASE10 NUM | Coincide con un número entero o un número de punto flotante con signo y coma decimal opcionales | 20 |
Entrada: Patrón: Salida: |
| BASE16NUM | Hace coincidir los números decimales y hexadecimales con un signo opcional (+ o -) y un prefijo 0x opcional | 20 |
Entrada: Patrón: Salida: |
| POSINT | Coincide con números enteros positivos sin ceros a la izquierda, compuestos por uno o más dígitos (del 1 al 9 seguido del 0 al 9) | 20 |
Entrada: Patrón: Salida: |
| NONNEGINT | Coincide con cualquier número entero (formado por uno o más dígitos del 0 al 9), incluido el cero y los números con ceros a la izquierda. | 20 |
Entrada: Patrón: Salida: |
| WORD | Coincide con palabras completas compuestas por uno o más caracteres verbales (\w), incluidas letras, dígitos y guiones bajos | 20 |
Entrada: Patrón: Salida: |
| NOTSPACE | Coincide con uno o más caracteres que no sean espacios en blanco. | 5 |
Entrada: Patrón: Salida: |
| SPACE | Coincide con 0 o más caracteres que son espacios en blanco. | 5 |
Entrada: Patrón: Salida: |
| DATA | Coincide con cualquier carácter (excepto la línea nueva) cero o más veces, no es codicioso. | 5 |
Entrada: Patrón: Salida: |
| GREEDYDATA | Coincide con cualquier carácter (excepto la línea nueva) cero o más veces, es codicioso. | 5 |
Entrada: Patrón: Salida: |
| GREEDYDATA_MULTILINE | Coincide con cualquier carácter (incluida la línea nueva) cero o más veces, es codicioso. | 1 |
Input:
Patrón: Salida: |
| QUOTEDSTRING | Busca cadenas entre comillas (comillas simples o dobles) con caracteres de escape. | 20 |
Entrada: Patrón: Salida: |
| UUID | Coincide con un formato UUID estándar: 8 caracteres hexadecimales, seguidos de tres grupos de 4 caracteres hexadecimales y termina con 12 caracteres hexadecimales, todos separados por guiones medios. | 20 |
Entrada: Patrón: Salida: |
| URN | Coincide con la sintaxis URN (nombre uniforme de recurso). | 20 |
Entrada: Patrón: Salida: |
AWS patrones de grok
| Patrón | Description (Descripción) | Límite de patrones | Ejemplo |
|---|---|---|---|
|
ARN |
Hace coincidir los nombres de los recursos de AWS Amazon (ARNs) y captura la partición ( |
5 |
Entrada: Patrón: Salida: |
Patrones de grok de redes
| Patrón grok | Description (Descripción) | Límite de patrones | Ejemplo |
|---|---|---|---|
| CISCOMAC | Coincide con una dirección MAC en formato hexadecimal 4-4-4. | 20 |
Entrada: Patrón: Salida: |
| WINDOWS/MAC | Coincide con una dirección MAC en formato hexadecimal con guiones medios | 20 |
Entrada: Patrón: Salida: |
| COMMONMAC | Coincide con una dirección MAC en formato hexadecimal con dos puntos. | 20 |
Entrada: Patrón: Salida: |
| MAC | Coincide con uno de los patrones grok de CISCOMAC, WINDOWSMAC o COMMONMAC | 20 |
Entrada: Patrón: Salida: |
| IPV6 | Coincide con IPv6 las direcciones, incluidos los formularios comprimidos y las direcciones IPv4 mapeadas IPv6 . | 5 |
Entrada: Patrón: Salida: |
| IPV4 | Coincide con una IPv4 dirección. | 20 |
Entrada: Patrón: Salida: |
| IP | Coincide con IPv6 las direcciones admitidas por% {IPv6} o con IPv4 las direcciones admitidas por% {IPv4} | 5 |
Entrada: Patrón: Salida: |
| HOSTNAME o HOST | Coincide con los nombres de dominio, incluidos los subdominios | 5 |
Entrada: Patrón: Salida: |
| IPORHOST | Coincide con un nombre de host o una dirección IP | 5 |
Entrada: Patrón: Salida: |
| HOSTPORT | Coincide con una dirección IP o un nombre de host, tal como lo admite el patrón %{IPORHOST} seguido de dos puntos y un número de puerto, y captura el puerto como “PORT” en el resultado. | 5 |
Entrada: Patrón: Salida: |
| URIHOST | Coincide con una dirección IP o un nombre de host, tal como lo admite el patrón %{IPORHOST}, con opción de seguido de dos puntos y un número de puerto, y captura el puerto como “PORT” en el resultado. | 5 |
Entrada: Patrón: Salida: |
Patrones grok de rutas
| Patrón grok | Description (Descripción) | Límite de patrones | Ejemplo |
|---|---|---|---|
| UNIXPATH | Coincide con las rutas URL y puede incluir parámetros de consulta. | 20 |
Entrada: Patrón: Salida: |
| WINPATH | Coincide con las rutas de archivos de Windows. | 5 |
Entrada: Patrón: Salida: |
| PATH | Coincide con las rutas URL o de los archivos de Windows | 5 |
Entrada: Patrón: Salida: |
| TTY | Coincide con las rutas de los dispositivos Unix para terminales y pseudoterminales. | 20 |
Entrada: Patrón: Salida: |
| URIPROTO | Coincide con las letras, seguidas opcionalmente por un carácter más (+) y letras adicionales o caracteres más (+) | 20 |
Entrada: Patrón: Salida: |
| URIPATH | Coincide con el componente de ruta de un URI | 20 |
Entrada: Patrón: Salida: |
| URIPARAM | Coincide con parámetros de consulta de URL | 5 |
Entrada: Patrón: Salida: |
| URIPATHPARAM | Coincide con una ruta URI seguida, opcionalmente, de parámetros de consulta | 5 |
Entrada: Patrón: Salida: |
| URI | Coincide con un URI completo | 5 |
Entrada: Patrón: Salida: |
Patrones grok de fecha y hora
| Patrón grok | Description (Descripción) | Límite de patrones | Ejemplo |
|---|---|---|---|
| MONTH | Hace coincidir los nombres de los meses completos o abreviados en inglés como palabras completas | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| MONTHNUM | Coincide con los números de los meses del 1 al 12, con el cero inicial opcional para los meses de un solo dígito. | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| MONTHNUM2 | Coincide con números mensuales de dos dígitos del 01 al 12. | 20 |
Entrada: Patrón: Salida: |
| MES/DÍA | Coincide con el día del mes del 1 al 31, con el cero inicial opcional. | 20 |
Entrada: Patrón: Salida: |
| YEAR | Coincide con el año en dos o cuatro dígitos | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| DAY | Coincide con los nombres de los días completos o abreviados. | 20 |
Entrada: Patrón: Salida: |
| HOUR | Coincide con la hora en formato de 24 horas con un cero (0) 0-23 a la izquierda opcional. | 20 |
Entrada: Patrón: Salida: |
| MINUTE | Coincide con los minutos (00-59). | 20 |
Entrada: Patrón: Salida: |
| SECOND | Coincide con un número que representa los segundos (0)0-60, seguido opcionalmente por una coma decimal o dos puntos y uno o más dígitos para las fracciones de minutos | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| TIME | Coincide con un formato de hora con horas, minutos y segundos en el formato (H)H:mm:(s)s. Los segundos incluyen los segundos intercalares (0)0-60. | 20 |
Entrada: Patrón: Salida: |
| DATE_US | Coincide con una fecha con el formato de (M)M/(d)d/(yy)yy or (M)M-(d)d-(yy)yy. | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| DATE_EU | Coincide con la fecha en el formato de (d)d/(M)M/(yy)yy, (d)d-(M)M-(yy)yy, or (d)d.(M)M.(yy)yy. | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| ISO8601_TIMEZONE | Coincide con el desplazamiento UTC “Z” o el desplazamiento de zona horaria con dos puntos opcionales en el formato [+-] (H)H(:)mm. | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| ISO8601_SECOND | Coincide con un número que representa los segundos (0)0-60, seguido opcionalmente por un punto decimal o dos puntos y uno o más dígitos para fracciones de segundo | 20 |
Entrada: Patrón: Salida: |
| TIMESTAMP_ 01 ISO86 | Coincide con el formato de fecha y hora ISO86 01 (yy) yy- (M) M- (d) dT (H) H:mm :mm :( (s) s) (Z| [+-] (H) H:mm) con segundos y zona horaria opcionales. | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| DATE | Coincide con una fecha en formato estadounidense usando %{DATE_US} o en formato UE usando %{DATE_EU} | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| DATESTAMP | Coincide con el patrón %{DATE} seguido del patrón %{TIME}, separado por un espacio o un guion medio. | 20 |
Entrada: Patrón: Salida: |
| TZ | Coincide con las abreviaturas de zonas horarias habituales (PST, PDT, MST, MDT, CST CDT, EST, EDT, UTC). | 20 |
Entrada: Patrón: Salida: |
| DATESTAMP_ RFC822 | Coincide con la fecha y la hora en el formato: Día MonthName (D) D (YY) YY (H) H:mm :( s) s Zona horaria | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| DATESTAMP_ RFC2822 | RFC2822 Coincide con el formato de fecha y hora: Día, (d) d MonthName (yy) yy (H) H:mm :( s) s Z| [+-] (H) H:mm | 20 |
Entrada: Patrón: Salida: Entrada: Patrón: Salida: |
| DATESTAMP_OTHER | Coincide con la fecha y la hora en el formato: Día MonthName (d) d (H) H:mm :( s) s Zona horaria (yy) yy | 20 |
Entrada: Patrón: Salida: |
| DATESTAMP_EVENTLOG | Coincide con el formato compacto de fecha y hora sin separadores: (yy)yyMM(d)d(H)Hmm(s)s | 20 |
Entrada: Patrón: Salida: |
Patrones grok largos
| Patrón grok | Description (Descripción) | Límite de patrones | Ejemplo |
|---|---|---|---|
| LOGLEVEL | Coincide con los niveles de registros estándar en distintas mayúsculas y abreviaturas, incluidas las siguientes: Alert/ALERT, Trace/TRACE, Debug/DEBUG, Notice/NOTICE, Info/INFO, Warn/Warning/WARN/WARNING, Err/Error/ERR/ERROR, Crit/Critical/CRIT/CRITICAL, Fatal/FATAL, Severe/SEVERE, Emerg/Emergency/EMERG/EMERGENCY |
20 |
Entrada: Patrón: Salida: |
| HTTPDATE | Coincide con el formato de fecha y hora que se utiliza con frecuencia en los archivos de registro. Formato: (d) MonthName d/ (yy) yy :( H) H:mm :( s) s Zona horaria: coincide con los nombres de los meses en inglés completos o abreviados (ejemplo MonthName: «enero» o «enero») Zona horaria: coincide con el patrón% {INT} grok | 20 |
Entrada: Patrón: Salida: |
| SYSLOGTIMESTAMP | Coincide con el formato de fecha con MonthName (d) d (H) H:mm :( s) s MonthName: Coincide con los nombres de los meses completos o abreviados en inglés (por ejemplo: «enero» o «enero») | 20 |
Entrada: Patrón: Salida: |
| PROG | Coincide con el nombre de un programa compuesto por una cadena de letras, dígitos, puntos, guiones bajos, barras diagonales, signos porcentuales y guiones. | 20 |
Entrada: Patrón: Salida: |
| SYSLOGPROG | Coincide con el patrón grok PROG seguido opcionalmente de un identificador de proceso entre corchetes. | 20 |
Entrada: Patrón: Salida: |
| SYSLOGHOST | Coincide con un patrón %{HOST} o %{IP} | 5 |
Entrada: Patrón: Salida: |
| SYSLOGFACILITY | Coincide con la prioridad de syslog en formato decimal. El valor debe estar entre corchetes angulares (<>). | 20 |
Entrada: Patrón: Salida: |
Patrones grok de registros comunes
Se pueden utilizar patrones grok personalizados y predefinidos para que coincidan con los formatos de registro de Apache, NGINX y Syslog Protocol (RFC 5424). Al usar estos patrones específicos, deben ser los primeros patrones de la configuración coincidente y ningún otro patrón puede precederlos. Además, solo puede seguirlos con exactamente un DATO. Patrón GREEDYDATA o GREEDYDATA_MULTILINE.
| Patrón de Grok | Description (Descripción) | Límite de patrones |
|---|---|---|
|
APACHE_ACCESS_LOG |
Coincide con los registros de acceso de Apache |
1 |
|
NGINX_ACCESS_LOG |
Coincide con los registros de acceso de NGINX |
1 |
|
SYSLOG5424 |
Coincide con los registros del protocolo Syslog (RFC 5424) |
1 |
A continuación se muestran ejemplos válidos y no válidos del uso de estos patrones de formato de registro comunes.
"%{NGINX_ACCESS_LOG} %{DATA}" // Valid "%{SYSLOG5424}%{DATA:logMsg}" // Valid "%{APACHE_ACCESS_LOG} %{GREEDYDATA:logMsg}" // Valid "%{APACHE_ACCESS_LOG} %{SYSLOG5424}" // Invalid (multiple common log patterns used) "%{NGINX_ACCESS_LOG} %{NUMBER:num}" // Invalid (Only GREEDYDATA and DATA patterns are supported with common log patterns) "%{GREEDYDATA:logMsg} %{SYSLOG5424}" // Invalid (GREEDYDATA and DATA patterns are supported only after common log patterns)
Ejemplos de formatos de registro
Ejemplo de registro de Apache
Registros de ejemplo:
127.0.0.1 - - [03/Aug/2023:12:34:56 +0000] "GET /page.html HTTP/1.1" 200 1234
Transformador:
[ { "grok": { "match": "%{APACHE_ACCESS_LOG}" } } ]
Salida:
{ "request": "/page.html", "http_method": "GET", "status_code": 200, "http_version": "1.1", "response_size": 1234, "remote_host": "127.0.0.1", "timestamp": "2023-08-03T12:34:56Z" }
Ejemplo de registro de NGINX
Registros de ejemplo:
192.168.1.100 - Foo [03/Aug/2023:12:34:56 +0000] "GET /account/login.html HTTP/1.1" 200 42 "https://www.amazon.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
Transformador:
[ { "grok": { "match": "%{NGINX_ACCESS_LOG}" } } ]
Salida:
{ "request": "/account/login.html", "referrer": "https://www.amazon.com/", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", "http_method": "GET", "status_code": 200, "auth_user": "Foo", "http_version": "1.1", "response_size": 42, "remote_host": "192.168.1.100", "timestamp": "2023-08-03T12:34:56Z" }
Ejemplo de registro del protocolo Syslog (RFC 5424)
Registros de ejemplo:
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource= "Application" eventID="1011"][examplePriority@32473 class="high"]
Transformador:
[ { "grok": { "match": "%{SYSLOG5424}" } } ]
Salida:
{ "pri": 165, "version": 1, "timestamp": "2003-10-11T22:14:15.003Z", "hostname": "mymachine.example.com", "app": "evntslog", "msg_id": "ID47", "structured_data": "exampleSDID@32473 iut=\"3\" eventSource= \"Application\" eventID=\"1011\"", "message": "[examplePriority@32473 class=\"high\"]" }
csv
El procesador de csv analiza los valores separados por comas (CSV) de los eventos del registro en columnas.
| Campo | Description (Descripción) | ¿Obligatorio? | Predeterminado | Límites de las s |
|---|---|---|---|---|
|
origen |
Ruta al campo del evento de registros que se analizará |
No |
|
Longitud máxima: 128 Profundidad máxima de clave anidada: 3 |
|
delimiter |
El carácter utilizado para separar cada columna del evento de registro de valores original separado por comas |
No |
|
Longitud máxima: 1, a menos que el valor sea |
|
quoteCharacter |
Carácter utilizado como calificador de texto para una sola columna de datos |
No |
|
Longitud máxima: 1 |
|
columns |
Lista de nombres que se utilizarán en las columnas del evento de registro transformado. |
No |
|
Número máximo de columnas de CSV: 100 Longitud máxima: 128 Profundidad máxima de clave anidada: 3 |
Si delimiter se establece en \t, se separará cada columna en un carácter de tabulación y \t separará cada columna en un solo carácter de espacio.
Ejemplo
Supongamos que parte de un evento de registro ingerido tiene este aspecto:
'Akua Mansa':28:'New York: USA'
Supongamos que utilizamos solo el procesador csv:
[ { "csv": { "delimiter": ":", "quoteCharacter": "'" } } ]
El evento de registro transformado sería el siguiente.
{ "column_1": "Akua Mansa", "column_2": "28", "column_3": "New York: USA" }
parseKeyValue
Utilice el parseKeyValueprocesador para analizar un campo específico en pares clave-valor. Puede personalizar el procesador para analizar la información del campo con las siguientes opciones.
| Campo | Description (Descripción) | ¿Obligatorio? | Predeterminado | Límites de las s |
|---|---|---|---|---|
|
origen |
Ruta al campo del evento de registros que se analizará |
No |
|
Longitud máxima: 128 Profundidad máxima de clave anidada: 3 |
|
destination |
El campo de destino en el que se van a colocar los pares clave-valor extraídos |
No |
Longitud máxima: 128 |
|
|
fieldDelimiter |
La cadena delimitadora de campo que se utiliza entre los pares clave-valor en los eventos de registro originales |
No |
|
Longitud máxima: 128 |
|
keyValueDelimiter |
La cadena delimitadora que se utilizará entre la clave y el valor de cada par del evento de registro transformado |
No |
|
Longitud máxima: 128 |
|
nonMatchValue |
Un valor para insertar en el campo de valores del resultado cuando un par clave-valor no se divide correctamente. |
No |
Longitud máxima: 128 |
|
|
keyPrefix |
Si se desea añadir un prefijo a todas las claves transformadas, especifíquelo aquí. |
No |
Longitud máxima: 128 |
|
|
overwriteIfExists |
Si se debe sobrescribir el valor si la clave de destino ya existe |
No |
|
Ejemplo
Ejemplo de evento de registro de muestra:
key1:value1!key2:value2!key3:value3!key4
Supongamos que se utiliza la siguiente configuración de procesador:
[ { "parseKeyValue": { "destination": "new_key", "fieldDelimiter": "!", "keyValueDelimiter": ":", "nonMatchValue": "defaultValue", "keyPrefix": "parsed_" } } ]
El evento de registro transformado sería el siguiente.
{ "new_key": { "parsed_key1": "value1", "parsed_key2": "value2", "parsed_key3": "value3", "parsed_key4": "defaultValue" } }