Los plugins de procesamiento de campos agregan, eliminan, modifican, empaquetan, expanden y extraen campos.
Ejemplo de procesamiento de campos
La siguiente tabla detalla la estructura de datos de un registro sin procesar almacenado en SLS. Compara el uso del plugin de extracción de campos en modo ancla frente a no usar ningún plugin. Al utilizar este plugin se estructuran los datos, lo que simplifica las consultas posteriores.
|
Registro sin procesar |
Sin plugin |
Modo ancla |
|
Content: "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}" |
Utilice el modo ancla para extraer los valores de los campos y establezca los nombres de los campos como time, val_key1, val_key2, val_key3, value_key4_inner1, y value_key4_inner2.
|
Plugins de procesamiento de campos
SLS proporciona los siguientes tipos de plugins de procesamiento de campos. Seleccione el que mejor se adapte a sus necesidades.
|
Nombre del plugin |
Tipo |
Descripción |
|
Extraer campos |
Extendido |
Admite los siguientes modos:
|
|
Agregar campos |
Extendido |
Agrega nuevos campos a un registro. |
|
Eliminar campos |
Extendido |
Elimina los campos especificados. |
|
Cambiar nombre de campos |
Extendido |
Cambia el nombre de los campos. |
|
Empaquetar campos |
Extendido |
Empaqueta varios campos en un único objeto JSON. |
|
Expandir campos JSON |
Extendido |
Expande un campo de cadena JSON en campos independientes. |
|
Asignar valores de campos |
Extendido |
Reemplaza o transforma los valores de los campos con base en una tabla de asignación. |
|
Reemplazar cadenas |
Extendido |
Realiza reemplazos de texto completo, reemplazos basados en expresiones regulares o elimina caracteres de escape en los registros de texto. |
Punto de entrada
Para usar un plugin de Logtail en el procesamiento de registros, agréguelo al crear o modificar una configuración de Logtail. Para obtener más información, consulte Overview.
Limitaciones
Los registros de texto y la salida estándar de contenedores solo admiten la configuración basada en formularios, mientras que todas las demás fuentes de entrada únicamente son compatibles con la configuración basada en JSON.
-
Al extraer campos en modo regex aplican las siguientes limitaciones.
El motor de expresiones regulares de Go, basado en RE2, presenta las siguientes limitaciones en comparación con el motor PCRE:
-
Diferencias en la sintaxis de grupos con nombre
Go utiliza la sintaxis
(?P<name>...)en lugar de la sintaxis de PCRE(?<name>...). -
Patrones de expresiones regulares no admitidos
Aserción:
(?=...),(?!...),(?<=...)y(?<!...).Expresión condicional:
(?(condition)true|false).Coincidencia recursiva:
(?R)y(?0).Referencia a subrutina:
(?&name)y(?P>name).Grupo atómico:
(?>...).
Cuando depure expresiones regulares con herramientas como Regex101, evite los patrones no admitidos mencionados anteriormente, ya que el plugin no puede procesar registros que los utilicen.
-
Plugin de extracción de campos
Extrae un campo de registro mediante el modo regex, modo ancla, modo CSV, modo de delimitador de un solo carácter, modo de delimitador de varios caracteres, modo de pares clave-valor o modo Grok.
Modo regex
Modo ancla
Modo CSV
Modo de delimitador de un solo carácter
Modo de delimitador de varios caracteres
Modo de pares clave-valor
Modo Grok
Plugin para agregar campos
Use el plugin processor_add_fields para agregar campos de registro. Este tema describe los parámetros del plugin y proporciona ejemplos de configuración.
Configuración
El plugin processor_add_fields es compatible con Logtail 0.16.28 y versiones posteriores.
Form
-
Parámetros
Establezca Processor Type en Add Field. A continuación se describen los parámetros en una tabla.
Parámetro
Descripción
Add Field
Los pares clave-valor que se agregan como nuevos campos de registro.
Ignore New Fields with Same Name
Si se habilita, evita que un campo nuevo sobrescriba un campo existente con el mismo nombre.
-
Ejemplo de configuración
Este ejemplo muestra cómo agregar los campos
aaa2y aaa3.-
Registro sin procesar
"aaa1":"value1" Configuración del plugin de Logtail: agregue dos campos:
aaa2con el valorvalue2yaaa3con el valorvalue3.-
Resultado
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3"
-
JSON
-
Parámetros
Establezca
typeenprocessor_add_fields. A continuación se describen los parámetros del objetodetail.Parámetro
Tipo
Obligatorio
Descripción
Fields
Map
Sí
Los campos de registro que se van a agregar, especificados como un mapa de pares clave-valor.
IgnoreIfExist
Boolean
No
Especifica el comportamiento cuando un campo por agregar tiene el mismo nombre que un campo existente.
-
true: se ignora el campo nuevo.
-
false (predeterminado): el campo nuevo sobrescribe al campo existente.
-
-
Ejemplo de configuración
Este ejemplo muestra cómo agregar los campos aaa2 y aaa3.
-
Registro sin procesar
"aaa1":"value1" -
Configuración del plugin de Logtail
{ "processors":[ { "type":"processor_add_fields", "detail": { "Fields": { "aaa2": "value2", "aaa3": "value3" } } } ] } -
Resultado
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3"
-
Plugin para eliminar campos
El plugin processor_drop elimina los campos de registro especificados. Este tema aborda los parámetros del plugin y proporciona ejemplos de configuración.
Configuración
El plugin processor_drop es compatible con Logtail 0.16.28 y versiones posteriores.
Form
-
Parámetros
Establezca Processor Type en Drop Field.
Parámetro
Descripción
Drop Field
Los campos de registro que se van a eliminar. Puede especificar varios campos.
-
Ejemplo de configuración
Para eliminar los campos
aaa1yaaa2de un registro, configure el plugin de la siguiente manera:-
Registro sin procesar
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" Configuración del plugin de Logtail: elimine los campos
aaa1yaaa2.-
Resultado
"aaa3":"value3"
-
JSON
-
Parámetros
Establezca type en processor_drop. A continuación se describe el parámetro detail.
Parámetro
Tipo
Obligatorio
Descripción
DropKeys
Arreglo de cadenas
Sí
Las claves de los campos de registro que se van a eliminar. Puede especificar varias claves.
-
Ejemplo de configuración
Para eliminar los campos aaa1 y aaa2 de un registro, configure el plugin de la siguiente manera:
-
Registro sin procesar
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" -
Configuración del plugin de Logtail
{ "processors":[ { "type":"processor_drop", "detail": { "DropKeys": ["aaa1","aaa2"] } } ] } -
Resultado
"aaa3":"value3"
-
Plugin para renombrar campos
Puede usar el plugin processor_rename para renombrar campos. Este tema describe los parámetros y los ejemplos de configuración del plugin processor_rename.
Configuración
El plugin processor_rename requiere Logtail 0.16.28 o una versión posterior.
Console
-
Parámetros
Establezca Processor Type en Rename Fields y configure los parámetros que se describen a continuación.
Parámetro
Descripción
Original Field
El campo original que se va a renombrar.
New Field
El nuevo nombre del campo.
Report Original Field Missing Error
Indica si se reporta un error cuando el campo original especificado no se encuentra en el registro.
-
Ejemplo
Este ejemplo renombra el campo
aaa1a bbb1 y el campo aaa2 a bbb2.-
Registro sin procesar
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" Configuración del plugin de Logtail: renombre
aaa1abbb1yaaa2abbb2.-
Resultado
"bbb1":"value1" "bbb2":"value2" "aaa3":"value3"
-
JSON
-
Parámetros
Establezca
typeenprocessor_renamey configure los parámetros del objetodetailtal como se describe a continuación.Parámetro
Tipo
Obligatorio
Descripción
NoKeyErrorBoolean
No
Indica si se reporta un error cuando el campo original especificado no se encuentra en el registro.
-
true: se reporta un error.
-
false (predeterminado): no se reporta ningún error.
SourceKeysArreglo de cadenas
Sí
Los campos originales que se van a renombrar.
DestKeysArreglo de cadenas
Sí
Los nuevos nombres de los campos.
-
-
Ejemplo
Este ejemplo renombra el campo
aaa1abbb1y el campoaaa2abbb2.-
Registro sin procesar
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" -
Configuración del plugin de Logtail
{ "processors":[ { "type":"processor_rename", "detail": { "SourceKeys": ["aaa1","aaa2"], "DestKeys": ["bbb1","bbb2"], "NoKeyError": true } } ] } -
Resultado
"bbb1":"value1" "bbb2":"value2" "aaa3":"value3"
-
Plugin para empaquetar campos
Use el plugin processor_packjson para empaquetar uno o más campos de origen en un campo de destino como un objeto JSON. Este tema describe los parámetros del plugin processor_packjson y proporciona ejemplos de configuración.
Configuración
El plugin processor_packjson es compatible con Logtail 0.16.28 y versiones posteriores.
Console
-
Parámetros
Establezca Processor Type en Encapsulate Fields. A continuación se describen los parámetros en una tabla.
Parámetro
Descripción
Original Field
Los campos de origen que se van a empaquetar.
New Field
El campo de destino para el objeto JSON empaquetado.
Retain Original Field
Si selecciona esta opción, los campos de origen se conservan en el registro analizado.
Report Original Field Missing Error
Si selecciona esta opción, el plugin reporta un error cuando un campo de origen especificado no se encuentra en el registro sin procesar.
-
Ejemplo
Este ejemplo muestra cómo empaquetar los campos a y b en un campo de destino llamado d_key.
-
Registro sin procesar
"a":"1" "b":"2" Configuración del plugin de Logtail: establezca Source Field en
ayb, y establezca Destination Field end_key.-
Resultado
"a":"1" "b":"2" "d_key":"{\"a\":\"1\",\"b\":\"2\"}"
-
JSON
-
Parámetros
Establezca type en processor_packjson. A continuación se describen los parámetros del objeto detail.
Parámetro
Tipo
Obligatorio
Descripción
SourceKeys
Arreglo de cadenas (String array)
Sí
Campos de origen que se empaquetan.
DestKey
Cadena (String)
No
Campo de destino para el objeto JSON empaquetado.
KeepSource
Booleano (Boolean)
No
Indica si se conservan los campos de origen en el registro analizado.
-
true (predeterminado): se conservan los campos de origen.
-
false: se eliminan los campos de origen después del empaquetado.
AlarmIfIncomplete
Booleano (Boolean)
No
Indica si se reporta un error cuando no se encuentra un campo de origen especificado en el registro sin procesar.
-
true (predeterminado): se reporta un error.
-
false: no se reporta ningún error.
-
-
Ejemplo
Este ejemplo muestra cómo empaquetar los campos a y b en un campo de destino llamado d_key.
-
Registro sin procesar
"a":"1" "b":"2" -
Configuración del plugin de Logtail
{ "processors":[ { "type":"processor_packjson", "detail": { "SourceKeys": ["a","b"], "DestKey":"d_key", "KeepSource":true, "AlarmIfIncomplete":true } } ] } -
Resultado
"a":"1" "b":"2" "d_key":"{\"a\":\"1\",\"b\":\"2\"}"
-
Plugin para expandir campos JSON
Utilice el plugin processor_json para expandir un campo JSON. En este tema se describen los parámetros de dicho plugin y se proporcionan ejemplos de configuración.
Configuración
El plugin processor_json es compatible con Logtail 0.16.28 y versiones posteriores.
Console
-
Parámetros
Establezca Processor Type como Expand JSON Field. A continuación se describen los parámetros.
Parámetro
Descripción
Original Field
Nombre del campo de origen que se va a expandir.
JSON Expansion Depth
Profundidad máxima para expandir el objeto JSON. El valor predeterminado es 0, lo que significa que no hay límite de profundidad. Un valor de 1 expande únicamente los campos de nivel superior.
Character to Concatenate Expanded Keys
Carácter que se utiliza para unir las claves anidadas. El valor predeterminado es un guion bajo (_).
Name Prefix of Expanded Keys
Prefijo para los nombres de los campos expandidos.
Expand Array
Indica si se expanden los arreglos. Este parámetro es compatible con Logtail 1.8.0 y versiones posteriores.
Retain Original Field
Indica si se conserva el campo de origen en el registro después del análisis.
Report Original Field Missing Error
Indica si se reporta un error cuando no se encuentra el campo de origen especificado en el registro sin procesar.
Use Name of Original Field as Name Prefix of Expanded Keys
Indica si se usa el nombre del campo de origen como prefijo para todos los nombres de los campos expandidos.
Retain Raw Logs If Parsing Fails
Indica si se conserva el registro sin procesar cuando falla el análisis.
-
Ejemplo
En este ejemplo se expande el campo
s_key. Se empleajcomo prefijo personalizado y el nombre del campo de origens_keycomo prefijo adicional para los nombres de los campos expandidos. A continuación se muestra un ejemplo de configuración:-
Registro sin procesar (ruta del archivo que lee Logtail)
{"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"} -
Configuración del plugin de Logtail
Establezca SourceKey como
s_key, habilite NoKeyError, establezca ExpandDepth como0(sin límite), configure ExpandConnector con un guion (-), defina Prefix comoj, habilite UseSourceKeyAsPrefix y deshabilite KeepSource. -
Resultado
El registro expandido contiene los siguientes campos:
j_s_key-k1-k2-k3-k4-k51con el valor51,j_s_key-k1-k2-k3-k4-k52con el valor52yj_s_key-k1-k2-k3-k41con el valor41. El campo de origens_keyse elimina.
-
JSON
-
Parámetros
Establezca
typecomoprocessor_json. A continuación se describen los parámetros del objetodetail.Parámetro
Tipo
Obligatorio
Descripción
SourceKey
String
Sí
Nombre del campo de origen que se va a expandir.
NoKeyError
Boolean
No
Indica si se reporta un error cuando no se encuentra el campo de origen en el registro sin procesar.
-
true (predeterminado): se reporta un error.
-
false: no se reporta ningún error.
ExpandDepth
Int
No
Profundidad máxima para expandir el objeto JSON. El valor predeterminado es 0, lo que significa que no hay límite de profundidad. Un valor de 1 expande únicamente los campos de nivel superior.
ExpandConnector
String
No
Carácter que se utiliza para unir las claves anidadas. El valor predeterminado es un guion bajo (_).
Prefix
String
No
Prefijo que se agrega a los nombres de los nuevos campos después de la expansión.
KeepSource
Boolean
No
Indica si se conserva el campo de origen en el registro después del análisis.
-
true (predeterminado): se conserva el campo de origen.
-
false: no se conserva el campo de origen.
UseSourceKeyAsPrefix
Boolean
No
Indica si se usa el nombre del campo de origen como prefijo para todos los nombres de los campos expandidos.
KeepSourceIfParseError
Boolean
No
Indica si se conserva el registro sin procesar cuando falla el análisis.
-
true (predeterminado): se conserva el registro sin procesar.
-
false: no se conserva el registro sin procesar.
ExpandArray
Boolean
No
Indica si se expanden los arreglos. Este parámetro es compatible con Logtail 1.8.0 y versiones posteriores.
-
false (predeterminado): no se expanden los arreglos.
-
true: expande los arreglos. Por ejemplo,
{"k":["1","2"]}se expande a{"k[0]":"1","k[1]":"2"}.
-
-
Ejemplo
En este ejemplo se expande el campo
s_key. Se empleajcomo prefijo personalizado y el nombre del campo de origens_keycomo prefijo adicional para los nombres de los campos expandidos. A continuación se muestra un ejemplo de configuración:-
Registro sin procesar (ruta del archivo que lee Logtail)
{"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"} -
Configuración del plugin de Logtail
{ "processors":[ { "type":"processor_json", "detail": { "SourceKey": "s_key", "NoKeyError":true, "ExpandDepth":0, "ExpandConnector":"-", "Prefix":"j", "KeepSource": false, "UseSourceKeyAsPrefix": true } } ] } -
Resultado
El registro expandido contiene los siguientes campos:
j_s_key-k1-k2-k3-k4-k51con el valor51,j_s_key-k1-k2-k3-k4-k52con el valor52yj_s_key-k1-k2-k3-k41con el valor41. El campo de origens_keyse elimina.
-
Plugin de mapeo de valores de campo
El plugin processor_dict_map asigna valores a los campos mediante un mapeo. En este tema se describen los parámetros del plugin y se proporcionan ejemplos de configuración.
Configuración
Form
Establezca processor type como Field Value Mapping. A continuación se describen los parámetros.
|
Parámetro |
Descripción |
|
Original Field |
Nombre del campo de origen. |
|
New Field |
Nombre del campo resultante del mapeo. |
|
Mapping Dictionary |
Diccionario que asigna los valores de origen a los valores de destino. Para diccionarios pequeños, configure los mapeos directamente en este campo en lugar de usar un archivo de diccionario local. Importante
Si configura Local Dictionary, se omite la configuración de Mapping Dictionary. |
|
Local Dictionary |
Archivo CSV que contiene el diccionario de mapeo. En el archivo, los campos deben ir entre comillas dobles (") y separarse por comas (,). |
|
advanced parameters>process missing source field |
Si selecciona esta opción y a un registro sin procesar le falta el campo de origen, el plugin llena el campo resultante del mapeo con el valor de Value to Fill New Field. |
|
advanced parameters>Maximum Mapping Dictionary Size |
Número máximo de reglas permitidas en el diccionario de mapeo. El valor predeterminado es 1,000. Reduzca este valor para limitar el uso de memoria del servidor por parte del plugin. |
|
advanced parameters>Method to Process Raw Log |
Define qué hacer cuando el campo resultante del mapeo ya existe en un registro sin procesar.
|
JSON
Establezca type como processor_dict_map. A continuación se describen los parámetros de detail.
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
SourceKey |
String |
Sí |
Nombre del campo de origen. |
|
MapDict |
Map |
No |
Diccionario que asigna los valores de origen a los valores de destino. Para diccionarios pequeños, configure los mapeos directamente aquí en lugar de usar el parámetro DictFilePath. Importante
Si establece el parámetro DictFilePath, se omite el parámetro MapDict. |
|
DictFilePath |
String |
No |
Ruta al archivo CSV que contiene el diccionario de mapeo. En el archivo, los campos deben ir entre comillas dobles (") y separarse por comas (,). |
|
DestKey |
String |
No |
Nombre del campo resultante del mapeo. |
|
HandleMissing |
Boolean |
No |
Indica si se ejecuta alguna acción cuando falta el campo de origen en un registro sin procesar.
|
|
Missing |
String |
No |
Valor para el campo resultante del mapeo cuando falta el campo de origen. El valor predeterminado es Este parámetro surte efecto cuando HandleMissing se establece en true. |
|
MaxDictSize |
Int |
No |
Número máximo de reglas permitidas en el diccionario de mapeo. El valor predeterminado es 1,000. Reduzca este valor para limitar el uso de memoria del servidor por parte del plugin. |
|
Mode |
String |
No |
Define qué hacer cuando el campo resultante del mapeo (especificado por DestKey) ya existe en un registro sin procesar.
|
Reemplazo de cadenas
Utilice el plugin processor_string_replace para reemplazar texto completo o mediante expresiones regulares. También sirve para eliminar caracteres de escape de los registros sin procesar.
Configuración
El plugin processor_string_replace es compatible con Logtail 1.6.0 y versiones posteriores.
Formulario
Establezca Processor Type en String Replacement. A continuación se describen los parámetros.
|
Parámetro |
Descripción |
|
Original Field |
Nombre del campo de origen. |
|
Match Mode |
Método que se utiliza para buscar el contenido que se va a reemplazar. Valores válidos:
|
|
Matched Content |
Patrón o cadena que se debe buscar.
|
|
Replaced By |
Cadena que se utilizará como reemplazo.
|
|
New Field |
Campo donde se almacenará el resultado. Si no lo especifica, se sobrescribe el campo de origen. |
JSON
Establezca type en processor_string_replace. A continuación se describen los parámetros del objeto detail.
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
|
String |
Sí |
Nombre del campo de origen. |
|
|
String |
Sí |
Método de reemplazo. Valores válidos:
|
|
|
String |
No |
Patrón o cadena que se debe buscar.
|
|
|
String |
No |
Cadena que se utilizará como reemplazo. El valor predeterminado es una cadena vacía ("").
|
|
|
String |
No |
Campo donde se almacenará el resultado. Si no se especifica este parámetro, se sobrescribe el campo de origen. |
Ejemplos de configuración
Reemplazo de contenido mediante coincidencia de cadenas
En este ejemplo se muestra cómo usar una coincidencia de cadenas para reemplazar Error: en el campo content por una cadena vacía.
Formulario
-
Registro sin procesar:
"content": "2023-05-20 10:01:23 Error: Unable to connect to database." Configuración del plugin de Logtail: establezca match mode en String Match, source field en
content, match content enError:y deje replacement content vacío.-
Resultado:
"content": "2023-05-20 10:01:23 Unable to connect to database."
JSON
-
Registro sin procesar:
"content": "2023-05-20 10:01:23 Error: Unable to connect to database." -
Configuración del plugin de Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "const", "Match": "Error: ", "ReplaceString": "" } } ] } -
Resultado:
"content": "2023-05-20 10:01:23 Unable to connect to database."
Reemplazo de contenido mediante una expresión regular
En este ejemplo se muestra cómo usar una expresión regular para reemplazar por una cadena vacía las partes del campo content que coinciden con \\u\w+\[\d{1,3};*\d{1,3}m|N/A.
Formulario
-
Registro sin procesar:
"content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r" Configuración del plugin de Logtail: establezca match mode en Regex Match, source field en
content, match content en\\u\w+\[\d{1,3};*\d{1,3}m|N/Ay deje replacement content vacío.-
Resultado:
"content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"
JSON
-
Registro sin procesar:
"content": "2022-09-16 09:03:31.013 \u001b[32mINFO \u001b[0;39m \u001b[34m[TID: N/A]\u001b[0;39m [\u001b[35mThread-30\u001b[0;39m] \u001b[36mc.s.govern.polygonsync.job.BlockTask\u001b[0;39m : Block collection------end------\r" -
Configuración del plugin de Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "regex", "Match": "\\\\u\\w+\\[\\d{1,3};*\\d{1,3}m|N/A", "ReplaceString": "" } } ] } -
Resultado:
"content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"
Reemplazo de contenido mediante grupos de captura
En este ejemplo se utiliza un grupo de captura de expresión regular para reemplazar 16 en el campo content por */24. El resultado se almacena en un nuevo campo llamado new_ip.
Cuando utilice grupos de captura para el reemplazo, tenga en cuenta que la cadena de reemplazo no puede contener {}. Debe usar formatos como $1 y $2.
Formulario
-
Registro sin procesar:
"content": "10.10.239.16" Configuración del plugin de Logtail: establezca match mode en Regex Match, source field en
content, match content en(\d.*\.)\d+, replacement content en$1*/24y destination field ennew_ip.-
Resultado:
"content": "10.10.239.16", "new_ip": "10.10.239.*/24"
JSON
-
Registro sin procesar:
"content": "10.10.239.16" -
Configuración del plugin de Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "regex", "Match": "(\\d.*\\.)\\d+", "ReplaceString": "$1*/24", "DestKey": "new_ip" } } ] } -
Resultado:
"content": "10.10.239.16", "new_ip": "10.10.239.*/24"
Eliminación de caracteres de escape
Formulario
-
Registro sin procesar:
"content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}" Configuración del plugin de Logtail: establezca match mode en Remove Escape Characters y source field en
content.-
Resultado:
"content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"
JSON
-
Registro sin procesar:
"content": "{\\x22UNAME\\x22:\\x22\\x22,\\x22GID\\x22:\\x22\\x22,\\x22PAID\\x22:\\x22\\x22,\\x22UUID\\x22:\\x22\\x22,\\x22STARTTIME\\x22:\\x22\\x22,\\x22ENDTIME\\x22:\\x22\\x22,\\x22UID\\x22:\\x222154212790\\x22,\\x22page_num\\x22:1,\\x22page_size\\x22:10}" -
Configuración del plugin de Logtail:
{ "processors":[ { "type":"processor_string_replace", "detail": { "SourceKey": "content", "Method": "unquote" } } ] } -
Resultado:
"content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"
Documentación relacionada
-
Configure canalizaciones de Logtail mediante la API:
-
Configure plugins de procesamiento en la consola:
Collect cluster container logs (standard output and files) using a Kubernetes CRD