Todos los productos
Search
Centro de documentos

Simple Log Service:Plugins de procesamiento de campos

Última actualización: Sep 18, 2026

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

"time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"

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.

"time" : "2022.09.12 20:55:36"
"val_key1" : "xx"
"val_key2" : "false"
"val_key3" : "123.456"
"value_key4_inner1" : "1"
"value_key4_inner2" : "false"

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:

  • Modo regex: extrae campos mediante coincidencias de expresiones regulares.

  • Modo ancla: extrae campos por posición o marcador.

  • Modo CSV: extrae campos con formato CSV.

  • Modo de delimitador de un solo carácter: extrae campos mediante un delimitador de un solo carácter.

  • Modo de delimitador de varios caracteres: extrae campos mediante un delimitador de varios caracteres.

  • Modo de pares clave-valor: extrae campos a partir de un formato de pares clave-valor.

  • Modo Grok: extrae campos estructurados mediante la sintaxis de Grok.

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

Extrae campos mediante una expresión regular.

Formulario

  • Parámetros

    Establezca processor type como Extract Field (Regex Mode). A continuación se describen los parámetros correspondientes.

    Parámetro

    Descripción

    Original Field

    El nombre del campo de origen.

    Regular Expression

    La expresión regular. Debe usar paréntesis () para especificar los campos que desea extraer.

    New Field

    Los nombres que se asignarán al contenido extraído. Es posible agregar varios nombres de campo.

    Report Original Field Missing Error

    Seleccione esta opción para reportar un error si el campo de origen especificado no se encuentra en el registro sin procesar.

    Report Regex Mismatch Error

    Seleccione esta opción para reportar un error si el valor del campo de origen no coincide con la expresión regular.

    Retain Original Field

    Seleccione esta opción para conservar el campo de origen en el registro analizado.

    Retain Original Field If Parsing Fails

    Seleccione esta opción para conservar el campo de origen en el registro analizado si el análisis falla.

    Full Regex Match

    Seleccione esta opción para extraer valores únicamente si la expresión regular encuentra coincidencias para todos los campos definidos en New Field.

  • Ejemplo de configuración

    Utilice el modo regex para extraer el valor del campo content y establezca los nombres de los campos como ip, time, method, url, request_time, request_length, status, length, ref_url y browser. A continuación se muestra un ejemplo de configuración:

    • Registro sin procesar

      "content" : "10.200.**.** - - [10/Aug/2022:14:57:51 +0800] \"POST /PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1\" 0.024 18204 200 37 \"-\" \"aliyun-sdk-java"
    • Configuración del plugin de Logtail: establezca source field como content, configure la expresión regular y defina los nombres de result field como ip, time, method, url, request_time, request_length, status, length, ref_url y browser. Seleccione las opciones report error if source field is missing y report error on regex mismatch.

    • Resultado

      "ip" : "10.200.**.**"
      "time" : "10/Aug/2022:14:57:51"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

JSON

  • Parámetros

    Establezca type como processor_regex. A continuación se describen los parámetros del objeto detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    SourceKey

    String

    Sí

    El nombre del campo de origen.

    Regex

    String

    Sí

    La expresión regular. Debe usar paréntesis () para especificar los campos que desea extraer.

    Keys

    Array of strings

    Sí

    Los nombres que se asignarán al contenido extraído. Ejemplo: ["ip", "time", "method"].

    NoKeyError

    Boolean

    No

    Indica si se reporta un error cuando el campo de origen no se encuentra en el registro sin procesar.

    • true: reporta un error.

    • false (predeterminado): no reporta ningún error.

    NoMatchError

    Boolean

    No

    Indica si se reporta un error cuando el valor del campo de origen no coincide con la expresión regular.

    • true (predeterminado): reporta un error.

    • false: no reporta ningún error.

    KeepSource

    Boolean

    No

    Indica si se conserva el campo de origen en el registro analizado.

    • true: conserva el campo de origen.

    • false (predeterminado): no conserva el campo de origen.

    FullMatch

    Boolean

    No

    Indica si se requiere una coincidencia completa para la extracción.

    • true (valor predeterminado): los valores de los campos se extraen únicamente si la expresión regular del parámetro Regex encuentra una coincidencia para todos los campos especificados en el parámetro Keys dentro del valor del campo de origen.

    • false: los valores de los campos se extraen incluso si solo se encuentra una coincidencia parcial.

    KeepSourceIfParseError

    Boolean

    No

    Indica si se conserva el campo de origen en el registro analizado cuando el análisis falla.

    • true (predeterminado): conserva el campo de origen.

    • false: no conserva el campo de origen.

  • Ejemplo de configuración

    Este ejemplo muestra cómo usar el modo regex para extraer valores del campo content y asignarlos a los campos de resultado ip, time, method, url, request_time, request_length, status, length, ref_url y browser.

    • Registro sin procesar

      "content" : "10.200.**.** - - [10/Aug/2022:14:57:51 +0800] \"POST /PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1\" 0.024 18204 200 37 \"-\" \"aliyun-sdk-java"
    • Configuración del plugin de Logtail

      {
          "type" : "processor_regex",
          "detail" : {"SourceKey" : "content",
               "Regex" : "([\\d\\.]+) \\S+ \\S+ \\[(\\S+) \\S+\\] \"(\\w+) ([^\\\"]*)\" ([\\d\\.]+) (\\d+) (\\d+) (\\d+|-) \"([^\\\"]*)\" \"([^\\\"]*)\" (\\d+)",
               "Keys"   : ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"],
               "NoKeyError" : true,
               "NoMatchError" : true,
               "KeepSource" : false
          }
      }
    • Resultado

      "ip" : "10.200.**.**"
      "time" : "10/Aug/2022:14:57:51"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

Modo ancla

Extrae campos al especificar palabras clave de inicio y fin. Si un campo tiene formato JSON, también es posible realizar su expansión.

Console

  • Parámetros

    Establezca processor type como Extract Field (Anchor Mode). A continuación se describen los parámetros correspondientes.

    Parámetro

    Descripción

    Original Field

    El nombre del campo original.

    Anchor Parameters

    Una lista de configuraciones de ancla para la extracción de campos.

    Start Keyword

    La palabra clave que marca el inicio del texto que se va a extraer. Si se deja vacía, la extracción comienza desde el inicio del valor del campo original.

    End Keyword

    La palabra clave que marca el final del texto que se va a extraer. Si se deja vacía, la extracción continúa hasta el final del valor del campo original.

    New Field

    El nombre del campo donde se almacena el contenido extraído.

    Field Type

    El tipo de datos del campo. Los valores válidos son string y json.

    JSON Expansion

    Indica si se realiza la expansión JSON.

    Character to Concatenate Expanded Keys

    El carácter utilizado para unir las claves durante la expansión JSON. El valor predeterminado es un guion bajo (_).

    Maximum Depth of JSON Expansion

    La profundidad máxima de recursión para la expansión JSON. El valor predeterminado es 0, lo que indica que no hay límite.

    Report Original Field Missing Error

    Si se habilita, reporta un error cuando el campo original especificado no se encuentra en el registro sin procesar.

    Report Keywords Missing Error

    Si se habilita, reporta un error cuando no se encuentra ninguna ancla coincidente en el registro sin procesar.

    Retain Original Field

    Si se habilita, conserva el campo original en el registro analizado.

  • Ejemplo de configuración

    Este ejemplo muestra cómo usar el modo ancla para extraer valores del campo content y crear los campos de resultado time, val_key1, val_key2, val_key3, value_key4_inner1 y value_key4_inner2.

    • Registro sin procesar

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Configuración del plugin de Logtail: configure dos reglas. Para la primera regla, establezca source field name como time, start delimiter como \t, destination field name como time y destination type como string. Para la segunda regla, establezca source field name como json, destination field name como val, destination type como json y habilite JSON expansion.

    • Resultado

      "time" : "2022.09.12 20:55:36"
      "val_key1" : "xx"
      "val_key2" : "false"
      "val_key3" : "123.456"
      "value_key4_inner1" : "1"
      "value_key4_inner2" : "false"

JSON

  • Parámetros

    Establezca type como processor_anchor. En la siguiente tabla se describe el parámetro detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    SourceKey

    String

    Sí

    El nombre del campo original.

    Anchors

    Array of Anchor objects

    Sí

    La lista de parámetros de ancla.

    Start

    String

    Sí

    La palabra clave de inicio. Si se deja vacía, la coincidencia comienza al principio de la cadena.

    Stop

    String

    Sí

    La palabra clave de fin. Si se deja vacía, la coincidencia se extiende hasta el final de la cadena.

    FieldName

    String

    Sí

    El nombre del campo para el contenido extraído.

    FieldType

    String

    Sí

    El tipo de datos del campo. Los valores válidos son string y json.

    ExpandJson

    Boolean

    No

    Indica si se expande el JSON.

    • true: expande el JSON.

    • false (predeterminado): no expande el JSON.

    Válido solo cuando FieldType es json.

    ExpandConnector

    String

    No

    El carácter que se usa para unir las claves durante la expansión de JSON. El valor predeterminado es un guion bajo (_).

    MaxExpandDepth

    Int

    No

    La profundidad máxima de la expansión de JSON. El valor predeterminado es 0, lo que indica que no hay límite.

    NoAnchorError

    Boolean

    No

    Indica si se reporta un error cuando no se encuentra ninguna ancla coincidente.

    • true: reporta un error.

    • false (predeterminado): no reporta ningún error.

    NoKeyError

    Boolean

    No

    Indica si se reporta un error cuando el campo original especificado no se encuentra en el registro sin procesar.

    • true: reporta un error.

    • false (predeterminado): no reporta ningún error.

    KeepSource

    Boolean

    No

    Indica si se conserva el campo original después del análisis sintáctico.

    • true: conserva el campo original.

    • false (predeterminado): descarta el campo original.

  • Ejemplo de configuración

    Utilice el modo de ancla para extraer el valor del campo content y establezca los nombres de los campos como time, val_key1, val_key2, val_key3, value_key4_inner1 y value_key4_inner2. A continuación se muestra un ejemplo de configuración:

    • Registro sin procesar

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Configuración del plugin de Logtail

      {
         "type" : "processor_anchor",
         "detail" : {"SourceKey" : "content",
            "Anchors" : [
                {
                    "Start" : "time:",
                    "Stop" : "\t",
                    "FieldName" : "time",
                    "FieldType" : "string",
                    "ExpandJson" : false
                },
                {
                    "Start" : "json:",
                    "Stop" : "",
                    "FieldName" : "val",
                    "FieldType" : "json",
                    "ExpandJson" : true 
                }
            ]
        }
      }
    • Resultado

      "time" : "2022.09.12 20:55:36"
      "val_key1" : "xx"
      "val_key2" : "false"
      "val_key3" : "123.456"
      "value_key4_inner1" : "1"
      "value_key4_inner2" : "false"

Modo CSV

Utilice el modo CSV para analizar sintácticamente registros con formato CSV.

Form

  • Parámetros

    Establezca Processor type como Extract Field (CSV Mode). En la siguiente tabla se describen los parámetros.

    Parámetro

    Descripción

    Original Field

    El nombre del campo de origen.

    New Field

    Especifique uno o más nombres de campo para los valores extraídos.

    Importante

    Si la cantidad de campos por dividir es menor que la cantidad de campos en New Field, los campos excedentes en New Field se ignoran.

    Delimiter

    El delimitador que se usa para separar los valores. El valor predeterminado es una coma (,).

    Retain Excess Part

    Si selecciona esta opción y la cantidad de campos por dividir es mayor que la cantidad de campos en New Field, el sistema conserva la parte excedente.

    Parse Excess Part

    Seleccione esta opción para analizar sintácticamente el contenido excedente. Use Name Prefix of Field to which Excess Part is Assigned para especificar el prefijo de nombre de los campos excedentes.

    Si selecciona Retain Excess Part pero no Parse Excess Part, el contenido excedente se guarda en el campo _decode_preserve_.

    Nota

    Si el contenido excedente no cumple con el formato CSV, debe normalizarlo antes del almacenamiento.

    Name Prefix of Field to which Excess Part is Assigned

    El prefijo de nombre para los campos excedentes. Por ejemplo, si establece este parámetro como expand_, los campos se nombran expand_1, expand_2, etcétera.

    Ignore Spaces before Field

    Seleccione esta opción para recortar los espacios iniciales de los valores de los campos.

    Retain Original Field

    Seleccione esta opción para conservar el campo de origen en el registro analizado.

    Report Original Field Missing Error

    Seleccione esta opción para reportar un error si falta el campo de origen.

  • Ejemplo de configuración

    En el siguiente ejemplo se muestra cómo extraer valores del campo csv:

    • Registro sin procesar

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Configuración del plugin de Logtail: establezca Source field como csv, Delimiter como una coma (,) y Result field como date, ip y content.

    • Resultado

      {
          "date": "2022-06-09",
          "ip": "192.0.2.0",
          "content": "{\"key1\":\"value\",\"key2\":{\"key3\":\"string\"}}"
          ......
      
      }

JSON

  • Parámetros

    Establezca type como processor_csv. En la siguiente tabla se describe detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    SourceKey

    String

    Sí

    El nombre del campo de origen.

    SplitKeys

    String array

    Sí

    Los nombres de los campos de resultado. Ejemplo: ["date", "ip", "content"].

    Importante

    Si la cantidad de campos por dividir es menor que la cantidad de campos en el parámetro SplitKeys, los campos excedentes en el parámetro SplitKeys se ignoran.

    PreserveOthers

    Boolean

    No

    Indica si se conserva la parte excedente del campo de origen cuando contiene más valores que los especificados en SplitKeys.

    • true: conserva la parte excedente.

    • false (predeterminado): no conserva la parte excedente.

    ExpandOthers

    Boolean

    No

    Indica si se analiza sintácticamente la parte excedente.

    • true: analiza sintácticamente la parte excedente.

      Puede usar el parámetro ExpandOthers para analizar sintácticamente la parte excedente y luego especificar un prefijo de nombre para sus campos mediante el parámetro ExpandKeyPrefix.

    • false (predeterminado): no analiza sintácticamente la parte excedente.

      Si establece PreserveOthers como true y ExpandOthers como false, el contenido excedente se guarda en el campo _decode_preserve_.

      Nota

      Si el contenido excedente no cumple con el formato CSV, debe normalizarlo antes del almacenamiento.

    ExpandKeyPrefix

    String

    No

    El prefijo de nombre para los campos excedentes. Por ejemplo, si establece este parámetro como expand_, los campos se nombran expand_1, expand_2, etcétera.

    TrimLeadingSpace

    Boolean

    No

    Indica si se recortan los espacios iniciales de los valores de los campos.

    • true: recorta los espacios iniciales.

    • false (predeterminado): no recorta los espacios iniciales.

    SplitSep

    String

    No

    El delimitador que separa los valores. El valor predeterminado es una coma (,).

    KeepSource

    Boolean

    No

    Indica si se conserva el campo de origen en el registro analizado.

    • true: conserva el campo de origen.

    • false (predeterminado): no conserva el campo de origen.

    NoKeyError

    Boolean

    No

    Indica si se reporta un error cuando falta el campo de origen en el registro sin procesar.

    • true: reporta un error.

    • false (predeterminado): no reporta un error.

  • Ejemplo de configuración

    En el siguiente ejemplo se muestra cómo extraer valores del campo csv:

    • Registro sin procesar

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Configuración del plugin de Logtail

       {
          ......
          "type":"processor_csv",
          "detail":{
              "SourceKey":"csv",
              "SplitKeys":["date", "ip", "content"],
          }
          ......
      }
    • Resultado

      {
          "date": "2022-06-09",
          "ip": "192.0.2.0",
          "content": "{\"key1\":\"value\",\"key2\":{\"key3\":\"string\"}}"
          ......
      
      }

Modo de delimitador de un solo carácter

Nota

Extrae campos mediante un delimitador de un solo carácter. Este modo admite el uso de un carácter de comillas para encerrar campos que contienen el delimitador.

Form

  • Parámetros

    Establezca processor type como Extract Field (Single-character Delimiter Mode). En la siguiente tabla se describen los parámetros.

    Parámetro

    Descripción

    Original Field

    El nombre del campo de origen.

    Delimiter

    El delimitador. Debe ser un solo carácter y puede establecerse como un carácter no imprimible, por ejemplo, \u0001.

    New Field

    Especifica los nombres de los campos que se crearán para el contenido extraído.

    Use Quote

    Indica si se usa un carácter de comillas.

    Quote

    El carácter de comillas. Debe ser un solo carácter y puede ser un carácter no imprimible, por ejemplo, \u0001.

    Report Original Field Missing Error

    Indica si se reporta un error cuando el campo de origen especificado no se encuentra en el registro sin procesar.

    Report Delimiter Mismatch Error

    Indica si se reporta un error cuando el delimitador especificado no se encuentra en el registro sin procesar.

    Retain Original Field

    Indica si se conserva el campo de origen en el registro analizado.

  • Ejemplo

    Use la barra vertical (|) como delimitador para extraer el valor del campo content y establezca los nombres de los campos como ip, time, method, url, request_time, request_length, status, length, ref_url y browser. A continuación se muestra un ejemplo de configuración:

    • Registro sin procesar

      "content" : "10.**.**.**|10/Aug/2022:14:57:51 +0800|POST|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|0.024|18204|200|37|-|
      aliyun-sdk-java"
    • Configuración del plugin de Logtail: el delimiter se establece como una barra vertical (|) y los result fields incluyen ip, time, method, url, request_time, request_length, status, length, ref_url y browser.

    • Resultado

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

JSON

  • Parámetros

    Establezca type como processor_split_char. En la siguiente tabla se describe el parámetro detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    SourceKey

    String

    Sí

    El nombre del campo de origen.

    SplitSep

    String

    Sí

    El delimitador debe ser un solo carácter y puede establecerse como un carácter no imprimible, por ejemplo, \u0001.

    SplitKeys

    String array

    Sí

    Una matriz de cadenas que especifica los nombres de los nuevos campos. Ejemplo: ["ip", "time", "method"].

    PreserveOthers

    Boolean

    No

    Indica si se conserva la parte excedente cuando la cantidad de campos por dividir es mayor que la cantidad de campos en el parámetro SplitKeys.

    • true: conserva la parte excedente.

    • false (predeterminado): no conserva la parte excedente.

    QuoteFlag

    Boolean

    No

    Indica si se usa un carácter de comillas.

    • true: usa un carácter de comillas.

    • false (predeterminado): no usa un carácter de comillas.

    Quote

    String

    No

    El carácter de comillas. Debe ser un solo carácter y puede ser un carácter no imprimible, por ejemplo, \u0001.

    Este parámetro solo tiene efecto cuando QuoteFlag se establece como true.

    NoKeyError

    Boolean

    No

    Indica si se reporta un error cuando el campo de origen especificado no se encuentra en el registro sin procesar.

    • true: reporta un error.

    • false (predeterminado): no reporta un error.

    NoMatchError

    Boolean

    No

    Indica si se reporta un error cuando el delimitador especificado no se encuentra en el registro sin procesar.

    • true: reporta un error.

    • false (predeterminado): no reporta un error.

    KeepSource

    Boolean

    No

    Indica si se conserva el campo de origen en el registro analizado.

    • true: conserva el campo de origen.

    • false (predeterminado): no conserva el campo de origen.

  • Ejemplo

    Use el delimitador de barra vertical (|) para extraer el valor del campo content y establezca los nombres de los campos como ip, time, method, url, request_time, request_length, status, length, ref_url y browser. A continuación se muestra un ejemplo de configuración:

    • Registro sin procesar

      "content" : "10.**.**.**|10/Aug/2022:14:57:51 +0800|POST|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|0.024|18204|200|37|-|
      aliyun-sdk-java"
    • Configuración del plugin de Logtail

      {
         "type" : "processor_split_char",
         "detail" : {"SourceKey" : "content",
            "SplitSep" : "|",
            "SplitKeys" : ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"]     
        }
      }
    • Resultado

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "length" : "27"
      "ref_url" : "-"
      "browser" : "aliyun-sdk-java"

Modo de delimitador de varios caracteres

Nota

Puede extraer campos con un separador de varios caracteres. Este modo no admite escapar el separador con comillas.

Console

  • Parámetros

    Establezca el tipo de procesador en Extract Field (Multi-character Delimiter Mode). A continuación se describen los parámetros.

    Parámetro

    Descripción

    Original Field

    El nombre del campo original.

    Delimiter String

    El separador. Especifique caracteres no imprimibles, como \u0001\u0002.

    New Field

    Los nombres de los campos extraídos.

    Importante

    Si la cantidad de campos resultantes es menor que la cantidad de campos en New Field, se ignoran los campos excedentes de New Field.

    Report Original Field Missing Error

    Seleccione esta opción para reportar un error si el campo original especificado no se encuentra en el registro.

    Report Delimiter Mismatch Error

    Seleccione esta opción para reportar un error si el separador especificado no se encuentra en el campo original.

    Retain Original Field

    Seleccione esta opción para conservar el campo original en el registro analizado.

    Retain Excess Part

    Seleccione esta opción para conservar el contenido excedente si la división genera más valores que la cantidad de nombres especificados en New Field.

    Parse Excess Part

    Seleccione esta opción para analizar el contenido excedente y convertirlo en nuevos campos si la división genera más valores que la cantidad de nombres especificados en New Field. Después, utilice Name Prefix of Field to which Excess Part is Assigned para especificar un prefijo para los nombres de estos nuevos campos.

    Name Prefix of Field to which Excess Part is Assigned

    Un prefijo para los nombres de los campos excedentes. Por ejemplo, si establece este parámetro en expand_, los campos excedentes se nombran expand_1, expand_2, etcétera.

  • Ejemplo de configuración

    Utilice el separador |#| para extraer valores del campo content y cree los campos ip, time, method, url, request_time, request_length, status, expand_1, expand_2 y expand_3. A continuación se muestra un ejemplo de configuración:

    • Registro sin procesar

      "content" : "10.**.**.**|#|10/Aug/2022:14:57:51 +0800|#|POST|#|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|#|0.024|#|18204|#|200|#|27|#|-|#|
      aliyun-sdk-java"
    • Configuración del plugin de Logtail: establezca delimiter string en |#|, configure excess part field name prefix en expand_ y agregue ip, time, method, url, request_time, request_length y status a new field.

    • Resultado

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "expand_1" : "27"
      "expand_2" : "-"
      "expand_3" : "aliyun-sdk-java"

JSON

  • Parámetros

    Establezca type en processor_split_string. A continuación se describen los parámetros del objeto detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    SourceKey

    String

    Sí

    El nombre del campo original.

    SplitSep

    String

    Sí

    El separador. Especifique caracteres no imprimibles, como \u0001\u0002.

    SplitKeys

    Array of strings

    Sí

    Los nombres de los campos extraídos, especificados como una matriz de cadenas. Ejemplo: ["key1","key2"].

    Nota

    Si la cantidad de campos por dividir es menor que la cantidad de campos en el parámetro SplitKeys, se ignoran los campos sobrantes en dicho parámetro.

    PreserveOthers

    Boolean

    No

    Indica si se conserva la parte sobrante cuando la división genera más valores que la cantidad de claves en la matriz SplitKeys.

    • true: conserva la parte sobrante.

    • false (predeterminado): no conserva la parte sobrante.

    ExpandOthers

    Boolean

    No

    Indica si se analiza la parte sobrante cuando la división genera más valores que la cantidad de claves en la matriz SplitKeys.

    • true: analiza la parte sobrante.

      Use el parámetro ExpandOthers para analizar la parte sobrante. Luego, utilice el parámetro ExpandKeyPrefix para especificar un prefijo de nombre para los campos de dicha parte.

    • false (predeterminado): no analiza la parte sobrante.

    ExpandKeyPrefix

    String

    No

    Un prefijo para los nombres de los campos sobrantes. Por ejemplo, si establece este parámetro en expand_, los campos sobrantes se nombran expand_1, expand_2, y así sucesivamente.

    NoKeyError

    Boolean

    No

    Indica si se reporta un error cuando el campo especificado por SourceKey no se encuentra en el registro sin procesar.

    • true: reporta un error.

    • false (predeterminado): no reporta un error.

    NoMatchError

    Boolean

    No

    Indica si se reporta un error cuando el separador especificado por SplitSep no se encuentra en el valor del campo SourceKey.

    • true: reporta un error.

    • false (predeterminado): no reporta un error.

    KeepSource

    Boolean

    No

    Indica si se conserva el campo original en el registro analizado.

    • true: conserva el campo original.

    • false (predeterminado): no conserva el campo original.

  • Ejemplo de configuración

    Use el separador |#| para extraer valores del campo content y crear los campos ip, time, method, url, request_time, request_length, status, expand_1, expand_2 y expand_3. A continuación se muestra un ejemplo de configuración:

    • Registro sin procesar

      "content" : "10.**.**.**|#|10/Aug/2022:14:57:51 +0800|#|POST|#|PutData?
      Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>|#|0.024|#|18204|#|200|#|27|#|-|#|
      aliyun-sdk-java"
    • Configuración del plugin de Logtail

      {
         "type" : "processor_split_string",
         "detail" : {"SourceKey" : "content",
            "SplitSep" : "|#|",
            "SplitKeys" : ["ip", "time", "method", "url", "request_time", "request_length", "status"],
            "PreserveOthers" : true,
            "ExpandOthers" : true,
            "ExpandKeyPrefix" : "expand_"
        }
      }
    • Resultado

      "ip" : "10.**.**.**"
      "time" : "10/Aug/2022:14:57:51 +0800"
      "method" : "POST"
      "url" : "/PutData?Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature>"
      "request_time" : "0.024"
      "request_length" : "18204"
      "status" : "200"
      "expand_1" : "27"
      "expand_2" : "-"
      "expand_3" : "aliyun-sdk-java"

Modo de pares clave-valor

Extrae campos mediante la división de pares clave-valor.

Nota

El plugin processor_split_key_value es compatible con Logtail 0.16.26 y versiones posteriores.

Form

  • Parámetros

    Establezca el tipo de procesador en Extract Field (Key-value Pair Mode). A continuación se describen los parámetros.

    Parámetro

    Descripción

    Original Field

    El nombre del campo de origen.

    Key-value Pair Delimiter

    El delimitador entre los pares clave-valor es el carácter de tabulación \t de forma predeterminada.

    Key and Value Delimiter

    El separador entre una clave y un valor dentro de un par clave-valor. El valor predeterminado son dos puntos (:).

    Retain Original Field

    Conserva el campo de origen en el registro analizado.

    Report Original Field Missing Error

    Reporta un error si el campo de origen especificado no se encuentra en el registro sin procesar.

    Drop Key-value Pairs That Fail to Match Delimiter

    Descarta un par clave-valor si no contiene el separador clave-valor especificado.

    Report Key and Value Delimiter Missing Error

    Reporta un error si un par clave-valor no contiene el separador clave-valor especificado.

    Error on empty key

    Reporta un error si una clave queda vacía después de la división.

    Quote

    Si un valor está encerrado por el carácter de comillas especificado, se extrae el contenido dentro de las comillas. El carácter de comillas puede constar de varios caracteres.

    Importante

    Una barra invertida (\) antes de un carácter de comillas dentro de un valor entrecomillado se trata como un carácter literal y se incluye en el valor final.

  • Ejemplos

    • Ejemplo 1: dividir pares clave-valor.

      Divida el valor del campo content en pares clave-valor. El delimitador entre los pares clave-valor es un carácter de tabulación \t, y el delimitador entre una clave y un valor son dos puntos (:). A continuación se muestra un ejemplo de configuración:

      • Registro sin procesar

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Configuración del plugin de Logtail: establezca key-value pair delimiter en \t, configure key-value separator con dos puntos (:) y seleccione la opción retain source field.

      • Resultado

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Ejemplo 2: dividir pares clave-valor con comillas.

      Divida el valor del campo content mediante pares clave-valor. El delimitador entre los pares es el carácter de tabulación \t, el delimitador dentro de un par son dos puntos (:) y el carácter de comillas es una comilla doble ("). A continuación se muestra un ejemplo de configuración:

      • Registro sin procesar

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Configuración del plugin de Logtail: key-value pair delimiter se establece en \t, key-value separator en dos puntos (:), quote character en una comilla doble (") y la opción retain source field se deshabilita.

      • Resultado

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Ejemplo 3: dividir pares clave-valor con comillas de varios caracteres.

      Divida el valor del campo content mediante pares clave-valor. El delimitador entre los pares clave-valor es el carácter de tabulación \t, el delimitador dentro de un par clave-valor son dos puntos (:) y el carácter de comillas son comillas dobles (""). A continuación se muestra un ejemplo de configuración:

      • Registro sin procesar

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Configuración del plugin de Logtail: la configuración es la misma que en el ejemplo 2, excepto que quote character se establece en tres comillas dobles (""").

      • Resultado

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",

JSON

  • Parámetros

    Establezca el parámetro type en processor_split_key_value. A continuación se describen los parámetros del objeto detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    SourceKey

    string

    Sí

    El nombre del campo de origen.

    Delimiter

    string

    No

    El separador entre los pares clave-valor. De forma predeterminada, es un carácter de tabulación \t.

    Separator

    string

    No

    El separador entre una clave y un valor dentro de un par clave-valor. El valor predeterminado son dos puntos (:).

    KeepSource

    boolean

    No

    Indica si se conserva el campo de origen en el registro analizado.

    • true: conserva el campo de origen.

    • false (predeterminado): no conserva el campo de origen.

    ErrIfSourceKeyNotFound

    boolean

    No

    Indica si se reporta un error cuando el campo de origen no se encuentra en el registro sin procesar.

    • true (predeterminado): se reporta un error.

    • false: no se reporta ningún error.

    DiscardWhenSeparatorNotFound

    boolean

    No

    Indica si se descarta el par clave-valor cuando no se encuentra el separador clave-valor especificado.

    • true: se descarta el par clave-valor.

    • false (predeterminado): no se descarta el par clave-valor.

    ErrIfSeparatorNotFound

    boolean

    No

    Indica si se reporta un error cuando no se encuentra el separador clave-valor especificado.

    • true (predeterminado): se reporta un error.

    • false: no se reporta ningún error.

    ErrIfKeyIsEmpty

    boolean

    No

    Indica si se reporta un error cuando una clave queda vacía después de la división.

    • true (predeterminado): se reporta un error.

    • false: no se reporta ningún error.

    Quote

    string

    No

    Especifica el carácter que se usa para encerrar valores. Si un valor está encerrado por este carácter, solo se extrae el contenido dentro de las comillas. Este carácter puede constar de varios caracteres. De forma predeterminada, este parámetro está vacío y la función se encuentra deshabilitada.

    Importante
    • Para usar una comilla doble (") como carácter de comillas, debe escaparla con una barra invertida (\) en su configuración JSON. Por ejemplo: "Quote": "\"".

    • Una barra invertida (\) antes de un carácter de comillas dentro de un valor entrecomillado se trata como un carácter literal y se incluye en el valor final.

  • Ejemplos

    • Ejemplo 1: dividir pares clave-valor.

      Divida el valor del campo content mediante pares clave-valor. El delimitador entre los pares clave-valor es el carácter de tabulación \t, y el delimitador dentro de un par clave-valor son dos puntos (:). A continuación se muestra un ejemplo de configuración:

      • Registro sin procesar

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Configuración del plugin de Logtail

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": "\t",
                "Separator": ":",
                "KeepSource": true
              }
            }
          ]
        }
      • Resultado

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Ejemplo 2: dividir pares clave-valor con comillas.

      Divida el valor del campo content mediante pares clave-valor. El delimitador entre los pares clave-valor es el carácter de tabulación \t, el delimitador dentro de un par clave-valor son dos puntos (:) y el carácter de comillas es una comilla doble ("). A continuación se muestra un ejemplo de configuración:

      • Registro sin procesar

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Configuración del plugin de Logtail

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": " ",
                "Separator": ":",
                "Quote": "\""
              }
            }
          ]
        }
      • Resultado

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Ejemplo 3: dividir pares clave-valor con comillas de varios caracteres.

      Divida el valor del campo content en pares clave-valor. El delimitador entre los pares clave-valor es un carácter de tabulación (\t), el delimitador dentro de un par clave-valor son dos puntos (:) y el carácter de comillas es una comilla doble ("). A continuación se muestra un ejemplo de configuración:

      • Registro sin procesar

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Configuración del plugin de Logtail

        {
          "processors":[
            {
              "type":"processor_split_key_value",
              "detail": {
                "SourceKey": "content",
                "Delimiter": " ",
                "Separator": ":",
                "Quote": "\"\"\""
              }
            }
          ]
        }
      • Resultado

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",

Modo Grok

Extrae los campos de destino mediante expresiones grok.

Nota

El plugin processor_grok es compatible con Logtail 1.2.0 y versiones posteriores.

Form

  • Parámetros

    Establezca Processor Type en Extract Field (Grok Mode). A continuación se describen los parámetros.

    Parámetro

    Descripción

    Original Field

    El nombre del campo de origen.

    Grok Expression Array

    Un arreglo de expresiones grok. El plugin processor_grok evalúa cada expresión en orden y devuelve los campos de la primera coincidencia exitosa.

    Para consultar la lista de expresiones predeterminadas, consulte processor_grok. Si no está disponible una expresión obligatoria, introdúzcala en Custom Grok Pattern.

    Nota

    Configurar varias expresiones grok puede afectar el rendimiento. Se recomienda usar un máximo de cinco expresiones.

    Custom Grok Pattern

    Introduzca un nombre de regla personalizado y una expresión grok.

    Custom Grok Pattern File Directory

    El directorio que contiene sus archivos de patrones grok personalizados. El plugin processor_grok lee todos los archivos de este directorio.

    Importante

    Después de actualizar un archivo de patrones grok personalizado, reinicie Logtail para que los cambios surtan efecto.

    Maximum timeout

    El tiempo máximo, en milisegundos, para que una expresión grok coincida y extraiga campos. Si establece este valor en 0 o lo deja vacío, la operación no tendrá límite de tiempo.

    Retain Logs that Fails to be Parsed

    Conserva el registro si falla el análisis sintáctico.

    Retain Original Field

    Conserva el campo de origen en el registro analizado.

    Report Original Field Missing Error

    Notifica un error si no se encuentra el campo de origen en el registro sin procesar.

    Report No Expressions Matched Error

    Notifica un error si ninguna expresión de Grok Expression Array coincide con el registro.

    Report Match Timeout Error

    Notifica un error si se agota el tiempo de espera de una coincidencia.

  • Ejemplo de configuración

    Este ejemplo muestra cómo usar el modo Grok para extraer valores del campo content y asignarlos a los campos year, month y day.

    • Registro sin procesar

      "content" : "2022 October 17"
    • Configuración del plugin de Logtail: establezca Grok expression array en %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} y habilite la opción Retain logs that fail to be parsed.

    • Resultado

      "year":"2022"
      "month":"October"
      "day":"17"

JSON

  • Parámetros

    Establezca type en processor_grok. A continuación se describen los parámetros de detail.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    CustomPatternDir

    Arreglo de cadenas

    No

    El directorio que contiene sus archivos de patrones grok personalizados. El plugin processor_grok lee todos los archivos de este directorio.

    Si no especifica este parámetro, no se importará ningún archivo de patrón grok personalizado.

    Importante

    Después de actualizar un archivo de patrón grok personalizado, debe reiniciar Logtail para que los cambios surtan efecto.

    CustomPatterns

    Map

    No

    Los patrones grok personalizados, donde la clave es el nombre de la regla y el valor es la expresión grok.

    Para consultar las expresiones compatibles de forma predeterminada, consulte processor_grok. Si el enlace no contiene la expresión que necesita, introduzca una expresión grok personalizada en Match.

    Si no especifica este parámetro, no se utilizarán patrones grok personalizados.

    SourceKey

    Cadena

    No

    El nombre del campo de origen. El valor predeterminado es el campo content.

    Match

    Arreglo de cadenas

    Sí

    Un arreglo de expresiones grok. El plugin processor_grok prueba cada expresión en orden y devuelve los campos de la primera coincidencia correcta.

    Nota

    Configurar varias expresiones grok puede afectar el rendimiento. Se recomienda usar un máximo de cinco expresiones.

    TimeoutMilliSeconds

    Long

    No

    El tiempo máximo, en milisegundos, para que una expresión grok coincida y extraiga campos.

    Si no especifica este parámetro o lo establece en 0, la operación no genera un error de tiempo de espera.

    IgnoreParseFailure

    Boolean

    No

    Indica si se conservan los registros cuyo análisis sintáctico falla.

    • true (predeterminado): conserva el registro.

    • false: descarta el registro.

    KeepSource

    Boolean

    No

    Indica si se conserva el campo de origen después de un análisis sintáctico correcto.

    • true (predeterminado): conserva el campo de origen.

    • false: descarta el campo de origen.

    NoKeyError

    Boolean

    No

    Indica si se reporta un error cuando no se encuentra el campo de origen en el registro sin procesar.

    • true: se reporta un error.

    • false (predeterminado): no se reporta ningún error.

    NoMatchError

    Boolean

    No

    Indica si se reporta un error cuando ninguna expresión del parámetro Match coincide con el registro.

    • true (predeterminado): se reporta un error.

    • false: no se reporta ningún error.

    TimeoutError

    Boolean

    No

    Indica si se reporta un error cuando se agota el tiempo de espera de una coincidencia.

    • true (predeterminado): se reporta un error.

    • false: no se reporta ningún error.

  • Ejemplo 1

    Este ejemplo muestra cómo usar el modo Grok para extraer valores del campo content y asignarlos a los campos year, month y day.

    • Registro sin procesar

      "content" : "2022 October 17"
    • Configuración del plugin de Logtail

      {
         "type" : "processor_grok",
         "detail" : {
            "KeepSource" : false,
            "Match" : [
               "%{YEAR:year} %{MONTH:month} %{MONTHDAY:day}"
            ],
            "IgnoreParseFailure" : false
         }
      }
    • Resultado

      "year":"2022"
      "month":"October"
      "day":"17"
  • Ejemplo 2

    Use el modo Grok para extraer los valores del campo content de varios registros y analizarlos en resultados distintos según diferentes expresiones grok. A continuación se muestra un ejemplo de configuración:

    • Registros sin procesar

      {
          "content" : "begin 123.456 end"
      }
      {
          "content" : "2019 June 24 \"I am iron man"\"
      }
      {
          "content" : "WRONG LOG"
      }
      {
          "content" : "10.0.0.0 GET /index.html 15824 0.043"
      }
    • Configuración del plugin de Logtail

      {
              "type" : "processor_grok",
              "detail" : {
                      "CustomPatterns" : {
                              "HTTP" : "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"
                      },
                      "IgnoreParseFailure" : false,
                      "KeepSource" : false,
                      "Match" : [
                              "%{HTTP}",
                              "%{WORD:word1} %{NUMBER:request_time} %{WORD:word2}",
                              "%{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}"
                      ],
                      "SourceKey" : "content"
              },
      }
    • Resultado

      • En el primer registro, el plugin processor_grok no encuentra coincidencias con la primera expresión %{HTTP} del parámetro Match, pero sí coincide con la segunda expresión %{WORD:word1} %{NUMBER:request_time} %{WORD:word2}. Por lo tanto, el plugin devuelve los resultados extraídos con base en la segunda expresión.

        Dado que el parámetro KeepSource se estableció en false, se descarta el campo content del registro sin procesar.

      • Para la segunda entrada de registro, el plugin processor_grok no logra hacer coincidir el registro con la primera expresión %{HTTP} ni con la segunda expresión %{WORD:word1} %{NUMBER:request_time} %{WORD:word2} del parámetro Match. Sin embargo, el plugin hace coincidir correctamente el registro con la tercera expresión %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}. Por consiguiente, devuelve los resultados extraídos con base en la tercera expresión.

      • El plugin processor_grok no logra hacer coincidir el tercer registro con ninguna expresión del arreglo Match. Como el parámetro IgnoreParseFailure se estableció en false, el tercer registro se descarta.

      • En el cuarto registro, el plugin processor_grok logra hacerlo coincidir con la primera expresión del arreglo Match, %{HTTP}, y devuelve los campos extraídos.

      {
        "word1":"begin",
        "request_time":"123.456",
        "word2":"end",
      }
      {
        "year":"2019",
        "month":"June",
        "day":"24",
        "motto":"\"I am iron man"\",
      }
      {
        "client":"10.0.0.0",
        "method":"GET",
        "request":"/index.html",
        "bytes":"15824",
        "duration":"0.043",
      }

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

Importante

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 aaa2 y aaa3.

    • Registro sin procesar

      "aaa1":"value1"
    • Configuración del plugin de Logtail: agregue dos campos: aaa2 con el valor value2 y aaa3 con el valor value3.

    • Resultado

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"

JSON

  • Parámetros

    Establezca type en processor_add_fields. A continuación se describen los parámetros del objeto detail.

    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

Importante

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 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: elimine los campos aaa1 y aaa2.

    • 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

Importante

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 aaa1 a bbb1 y el campo aaa2 a bbb2.

    • Registro sin procesar

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuración del plugin de Logtail: renombre aaa1 a bbb1 y aaa2 a bbb2.

    • Resultado

      "bbb1":"value1"
      "bbb2":"value2"
      "aaa3":"value3"

JSON

  • Parámetros

    Establezca type en processor_rename y configure los parámetros del objeto detail tal como se describe a continuación.

    Parámetro

    Tipo

    Obligatorio

    Descripción

    NoKeyError

    Boolean

    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.

    SourceKeys

    Arreglo de cadenas

    Sí

    Los campos originales que se van a renombrar.

    DestKeys

    Arreglo de cadenas

    Sí

    Los nuevos nombres de los campos.

  • Ejemplo

    Este ejemplo renombra el campo aaa1 a bbb1 y el campo aaa2 a bbb2.

    • 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

Importante

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 a y b, y establezca Destination Field en d_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

Importante

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 emplea j como prefijo personalizado y el nombre del campo de origen s_key como 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 como 0 (sin límite), configure ExpandConnector con un guion (-), defina Prefix como j, habilite UseSourceKeyAsPrefix y deshabilite KeepSource.

    • Resultado

      El registro expandido contiene los siguientes campos: j_s_key-k1-k2-k3-k4-k51 con el valor 51, j_s_key-k1-k2-k3-k4-k52 con el valor 52 y j_s_key-k1-k2-k3-k41 con el valor 41. El campo de origen s_key se elimina.

JSON

  • Parámetros

    Establezca type como processor_json. A continuación se describen los parámetros del objeto detail.

    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 emplea j como prefijo personalizado y el nombre del campo de origen s_key como 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-k51 con el valor 51, j_s_key-k1-k2-k3-k4-k52 con el valor 52 y j_s_key-k1-k2-k3-k41 con el valor 41. El campo de origen s_key se 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.

  • overwrite

  • fill

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.

  • true: actúa cuando falta el campo de origen.

    El plugin llena el campo resultante del mapeo con el valor del parámetro Missing.

  • false (predeterminado): no se ejecuta ninguna acción.

Missing

String

No

Valor para el campo resultante del mapeo cuando falta el campo de origen. El valor predeterminado es Unknown.

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.

  • overwrite (predeterminado): reemplaza el valor existente en el campo resultante del mapeo.

  • fill: conserva el valor existente en el campo resultante del mapeo.

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

Importante

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:

  • String Match: reemplaza el contenido que coincide con una cadena específica.

  • Regular Expression Match: reemplaza el contenido que coincide con una expresión regular.

  • Remove Escape Character: elimina los caracteres de escape.

Matched Content

Patrón o cadena que se debe buscar.

  • Si establece Match Mode en String Match, introduzca la cadena de destino.

    Se reemplazan todas las coincidencias encontradas.

  • Si establece Match Mode en Regex Match, introduzca la expresión regular de destino.

    También puede usar un grupo de expresión regular para coincidir con una parte específica de la cadena.

  • Este parámetro no es obligatorio si establece Match Mode en Remove Escape Character.

Replaced By

Cadena que se utilizará como reemplazo.

  • Si establece Match Mode en String Match, introduzca la cadena que sustituirá al contenido original.

  • Si establece Match Mode en Regex Match, introduzca la cadena que sustituirá al contenido original. Puede hacer referencia a grupos de captura dentro de la cadena de reemplazo.

  • Este parámetro no es obligatorio si establece Match Mode en Remove Escape Character.

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

SourceKey

String

Sí

Nombre del campo de origen.

Method

String

Sí

Método de reemplazo. Valores válidos:

  • const: usa el reemplazo de cadenas.

  • regex: usa una expresión regular para el reemplazo.

  • unquote: elimina los caracteres de escape.

Match

String

No

Patrón o cadena que se debe buscar.

  • Si establece Method en const, introduzca la cadena que coincide con el contenido que desea reemplazar.

    Se reemplazan todas las coincidencias encontradas.

  • Si establece Method en regex, introduzca la expresión regular que coincide con el contenido que desea reemplazar.

    También puede usar un grupo de expresión regular para coincidir con una parte específica de la cadena.

  • Este parámetro no es obligatorio si establece Method en unquote.

ReplaceString

String

No

Cadena que se utilizará como reemplazo. El valor predeterminado es una cadena vacía ("").

  • Si establece Method en const, introduzca la cadena que sustituirá al contenido original.

  • Si establece Method en regex, introduzca la cadena que sustituirá al contenido original. Puede hacer referencia a grupos de captura dentro de la cadena de reemplazo.

  • Este parámetro no es obligatorio si establece Method en unquote.

DestKey

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 en Error: 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/A y 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.

Importante

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*/24 y destination field en new_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