Todos os produtos
Search
Central de documentação

:Plugins de processamento de campos

Última atualização: Jul 03, 2026

Os plugins de processamento de campos adicionam, excluem, modificam, agrupam, expandem e extraem campos.

Exemplo de processamento de campos

A tabela a seguir detalha a estrutura de dados de um log bruto armazenado no SLS. Ela compara o uso do plugin de extração de campos no modo âncora com a ausência de plugin. O uso do plugin de extração de campos estrutura seus dados, simplificando consultas subsequentes.

Log bruto

Sem plugin

Modo âncora

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

Use o modo âncora para extrair valores de campo e defina os nomes dos campos como time, val_key1, val_key2, val_key3, value_key4_inner1 e 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 processamento de campos

O SLS oferece os seguintes tipos de plugins de processamento de campos. Selecione aquele que atende às suas necessidades.

Nome do plugin

Tipo

Descrição

Extrair campos

Estendido

Suporta os seguintes modos:

  • Modo Regex: Extrai campos usando correspondência de expressão regular.

  • Modo Âncora: Extrai campos por posição ou marcador.

  • Modo CSV: Extrai campos no formato CSV.

  • Modo delimitador de caractere único: Extrai campos usando um delimitador de caractere único.

  • Modo delimitador de múltiplos caracteres: Extrai campos usando um delimitador de múltiplos caracteres.

  • Modo par chave-valor: Extrai campos de um formato de par chave-valor.

  • Modo Grok: Extrai campos estruturados usando sintaxe Grok.

Adicionar campos

Estendido

Adiciona novos campos a um log.

Descartar campos

Estendido

Remove campos especificados.

Renomear campos

Estendido

Renomeia campos.

Agrupar campos

Estendido

Agrupa vários campos em um único objeto JSON.

Expandir campos JSON

Estendido

Expande um campo de string JSON em campos separados.

Mapear valores de campo

Estendido

Substitui ou transforma valores de campo com base em uma tabela de mapeamento.

Substituir strings

Estendido

Executa substituição de texto completo, substituição baseada em expressão regular ou remoção de caracteres de escape em logs de texto.

Ponto de entrada

Para usar um plugin do Logtail no processamento de logs, adicione-o ao criar ou modificar uma configuração do Logtail. Para mais informações, consulte Visão geral.

Limitações

  • Logs de texto e saída padrão de contêiner suportam apenas configuração baseada em formulário, enquanto todas as outras fontes de entrada suportam apenas configuração baseada em JSON.

  • As limitações a seguir se aplicam à extração de campos no modo regex.

    O mecanismo de expressões regulares Go, baseado em RE2, apresenta as seguintes limitações em comparação ao mecanismo PCRE:

    • Diferenças na sintaxe de grupos nomeados

      O Go usa a sintaxe (?P<name>...) em vez da sintaxe PCRE (?<name>...).

    • Padrões de expressão regular não suportados

      • Asserção: (?=...), (?!...), (?<=...) e (?<!...).

      • Expressão condicional: (?(condition)true|false).

      • Correspondência recursiva: (?R) e (?0).

      • Referência de sub-rotina: (?&name) e (?P>name).

      • Grupo atômico: (?>...).

    Ao depurar expressões regulares com ferramentas como Regex101, evite os padrões não suportados listados acima, pois o plugin não consegue processar logs que os utilizam.

Plugin de extração de campos

Extrai um campo de log usando modo regex, modo âncora, modo CSV, modo delimitador de caractere único, modo delimitador de múltiplos caracteres, modo par chave-valor ou modo Grok.

Modo Regex

Extrai campos usando uma expressão regular.

Form

  • Parâmetros

    Defina processor type como Extract Field (Regex Mode). A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    Original Field

    O nome do campo de origem.

    Regular Expression

    A expressão regular. Use parênteses () para especificar os campos a serem extraídos.

    New Field

    Os nomes a serem atribuídos ao conteúdo extraído. É possível adicionar vários nomes de campo.

    Report Original Field Missing Error

    Selecione esta opção para relatar um erro caso o campo de origem especificado não seja encontrado no log bruto.

    Report Regex Mismatch Error

    Selecione esta opção para relatar um erro caso o valor do campo de origem não corresponda à expressão regular.

    Retain Original Field

    Selecione esta opção para manter o campo de origem no log analisado.

    Retain Original Field If Parsing Fails

    Selecione esta opção para manter o campo de origem no log analisado caso a análise falhe.

    Full Regex Match

    Selecione esta opção para extrair valores apenas se a expressão regular encontrar correspondências para todos os campos definidos em New Field.

  • Exemplo de configuração

    Use o modo regex para extrair o valor do campo content e defina os nomes dos campos como ip, time, method, url, request_time, request_length, status, length, ref_url e browser. Um exemplo de configuração é apresentado a seguir:

    • Log bruto

      "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"
    • Configuração do plugin Logtail: Defina source field como content, configure a expressão regular e defina os nomes de result field como ip, time, method, url, request_time, request_length, status, length, ref_url e browser. Selecione as opções report error if source field is missing e 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

    Defina type como processor_regex. A tabela a seguir descreve os parâmetros do objeto detail.

    Parâmetro

    Tipo

    Obrigatório

    Descrição

    SourceKey

    String

    Sim

    O nome do campo de origem.

    Regex

    String

    Sim

    A expressão regular. Use parênteses () para especificar os campos a serem extraídos.

    Keys

    Array de strings

    Sim

    Os nomes a serem atribuídos ao conteúdo extraído. Exemplo: ["ip", "time", "method"].

    NoKeyError

    Boolean

    Não

    Especifica se deve relatar um erro caso o campo de origem não seja encontrado no log bruto.

    • true: Relata um erro.

    • false (padrão): Não relata erro.

    NoMatchError

    Boolean

    Não

    Especifica se deve relatar um erro caso o valor do campo de origem não corresponda à expressão regular.

    • true (padrão): Relata um erro.

    • false: Não relata erro.

    KeepSource

    Boolean

    Não

    Especifica se deve manter o campo de origem no log analisado.

    • true: Mantém o campo de origem.

    • false (padrão): Não mantém o campo de origem.

    FullMatch

    Boolean

    Não

    Especifica se é necessária uma correspondência completa para a extração.

    • true (valor padrão): Os valores de campo são extraídos apenas se a expressão regular no parâmetro Regex encontrar correspondência para todos os campos especificados no parâmetro Keys dentro do valor do campo de origem.

    • false: Os valores de campo são extraídos mesmo que apenas uma correspondência parcial seja encontrada.

    KeepSourceIfParseError

    Boolean

    Não

    Especifica se deve manter o campo de origem no log analisado caso a análise falhe.

    • true (padrão): Mantém o campo de origem.

    • false: Não mantém o campo de origem.

  • Exemplo de configuração

    Este exemplo demonstra como usar o modo regex para extrair valores do campo content e atribuí-los aos campos de resultado ip, time, method, url, request_time, request_length, status, length, ref_url e browser.

    • Log bruto

      "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"
    • Configuração do plugin 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 Âncora

Extrai campos especificando palavras-chave de início e fim. Se um campo estiver no formato JSON, também é possível realizar a expansão JSON.

Console

  • Parâmetros

    Defina processor type como Extract Field (Anchor Mode). A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    Original Field

    O nome do campo original.

    Anchor Parameters

    Uma lista de configurações de âncora para extração de campos.

    Start Keyword

    A palavra-chave que marca o início do texto a ser extraído. Se deixado em branco, a extração começa no início do valor do campo original.

    End Keyword

    A palavra-chave que marca o fim do texto a ser extraído. Se deixado em branco, a extração continua até o final do valor do campo original.

    New Field

    O nome do campo que armazena o conteúdo extraído.

    Field Type

    O tipo de dados do campo. Os valores válidos são string e json.

    JSON Expansion

    Especifica se deve realizar a expansão JSON.

    Character to Concatenate Expanded Keys

    O caractere usado para unir chaves durante a expansão JSON. O padrão é um sublinhado (_).

    Maximum Depth of JSON Expansion

    A profundidade máxima de recursão para expansão JSON. O valor padrão é 0, o que indica nenhum limite.

    Report Original Field Missing Error

    Se ativado, relata um erro caso o campo original especificado não seja encontrado no log bruto.

    Report Keywords Missing Error

    Se ativado, relata um erro caso nenhuma âncora correspondente seja encontrada no log bruto.

    Retain Original Field

    Se ativado, mantém o campo original no log analisado.

  • Exemplo de configuração

    Este exemplo demonstra como usar o modo âncora para extrair valores do campo content e criar os campos de resultado time, val_key1, val_key2, val_key3, value_key4_inner1 e value_key4_inner2.

    • Log bruto

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Configuração do plugin Logtail: Configure duas regras. Para a primeira regra, defina o source field name como time, o start delimiter como \t, o destination field name como time e o destination type como string. Para a segunda regra, defina o source field name como json, o destination field name como val, o destination type como json e ative a 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

    Instruções

    1. Leia o inglês para entender O QUE precisa ser comunicado

    2. Escreva o português brasileiro DO ZERO — esqueça a estrutura da frase em inglês

    3. Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão

    4. Tags xref (<a data-tag="xref" ...>texto</a>) — preserve a TAG INTEIRA com todos os atributos na ordem e caixa originais, APENAS traduza o texto visível entre > e

    5. Aplique todas as regras específicas de idioma rigorosamente

    6. Aplique as regras de stopwords com tolerância zero

    7. Use o modo imperativo em passos numerados e listas de procedimentos

    8. Garanta consistência terminológica — mesmo termo = mesma tradução em todo o documento

    9. Varie os inícios de frase em listas/tabelas — nenhum iniciador repetido mais de 3 vezes

    10. Retorne APENAS o documento markdown em português brasileiro, sem explicações

      Defina type como processor_anchor. A tabela a seguir descreve o parâmetro detail.

      Parâmetro

      Tipo

      Obrigatório

      Descrição

      SourceKey

      String

      Sim

      Nome do campo original.

      Anchors

      Array de objetos Anchor

      Sim

      Lista de parâmetros de âncora.

      Start

      String

      Sim

      Palavra-chave inicial. Se deixado em branco, a correspondência começa no início da string.

      Stop

      String

      Sim

      Palavra-chave final. Se deixado em branco, a correspondência se estende até o fim da string.

      FieldName

      String

      Sim

      Nome do campo para o conteúdo extraído.

      FieldType

      String

      Sim

      Tipo de dados do campo. Os valores válidos são string e json.

      ExpandJson

      Boolean

      Não

      Indica se deve realizar a expansão JSON.

      • true: Realiza a expansão JSON.

      • false (padrão): Não realiza a expansão JSON.

      Válido apenas quando FieldType é json.

      ExpandConnector

      String

      Não

      Caractere usado para unir chaves durante a expansão JSON. O padrão é um sublinhado (_).

      MaxExpandDepth

      Int

      Não

      Profundidade máxima da expansão JSON. O valor padrão é 0, o que indica ausência de limite.

      NoAnchorError

      Boolean

      Não

      Indica se deve reportar um erro caso nenhuma âncora correspondente seja encontrada.

      • true: Reporta um erro.

      • false (padrão): Não reporta erro.

      NoKeyError

      Boolean

      Não

      Indica se deve reportar um erro caso o campo original especificado não exista no log bruto.

      • true: Reporta um erro.

      • false (padrão): Não reporta erro.

      KeepSource

      Boolean

      Não

      Indica se deve manter o campo original após a análise.

      • true: Mantém o campo original.

      • false (padrão): Descarta o campo original.

  • Exemplo de configuração

    Use o modo de âncora para extrair o valor do campo content e defina os nomes dos campos como time, val_key1, val_key2, val_key3, value_key4_inner1 e value_key4_inner2. Veja abaixo um exemplo de configuração:

    • Log bruto

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Configuração do plugin 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

Utilize o modo CSV para analisar logs formatados em CSV.

Form

  • Parâmetros

    Defina Processor type como Extract Field (CSV Mode). A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    Original Field

    Nome do campo de origem.

    New Field

    Especifique um ou mais nomes de campos para os valores extraídos.

    Importante

    Se a quantidade de campos a serem divididos for menor que o número de campos em New Field, os campos excedentes em New Field serão ignorados.

    Delimiter

    Delimitador usado para separar valores. O padrão é vírgula (,).

    Retain Excess Part

    Ao selecionar esta opção, se o número de campos a dividir for maior que o número de campos em New Field, o sistema retém a parte excedente.

    Parse Excess Part

    Selecione esta opção para analisar o conteúdo excedente. Use Name Prefix of Field to which Excess Part is Assigned para definir o prefixo de nome dos campos excedentes.

    Caso selecione Retain Excess Part mas não selecione Parse Excess Part, o conteúdo excedente será salvo no campo _decode_preserve_.

    Nota

    Se o conteúdo excedente não estiver em conformidade com o formato CSV, normalize-o antes do armazenamento.

    Name Prefix of Field to which Excess Part is Assigned

    Prefixo de nome para os campos excedentes. Por exemplo, ao definir este parâmetro como expand_, os campos serão nomeados expand_1, expand_2 e assim por diante.

    Ignore Spaces before Field

    Selecione esta opção para remover espaços à esquerda dos valores dos campos.

    Retain Original Field

    Marque esta opção para preservar o campo de origem no log analisado.

    Report Original Field Missing Error

    Ative esta opção para gerar um erro caso o campo de origem esteja ausente.

  • Exemplo de configuração

    O exemplo a seguir demonstra como extrair valores do campo csv:

    • Log bruto

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Configuração do plugin Logtail: Defina Source field como csv, Delimiter como vírgula (,) e Result field como date, ip e content.

    • Resultado

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

JSON

  • Parâmetros

    Defina type como processor_csv. A tabela abaixo detalha o parâmetro detail.

    Parâmetro

    Tipo

    Obrigatório

    Descrição

    SourceKey

    String

    Sim

    Nome do campo de origem.

    SplitKeys

    Array de strings

    Sim

    Nomes dos campos de resultado. Exemplo: ["date", "ip", "content"].

    Importante

    Quando o número de campos a dividir for inferior à quantidade de campos no parâmetro SplitKeys, os campos excedentes nesse parâmetro serão ignorados.

    PreserveOthers

    Boolean

    Não

    Define se a parte excedente do campo de origem deve ser mantida quando houver mais valores do que o especificado em SplitKeys.

    • true: Mantém a parte excedente.

    • false (padrão): Não mantém a parte excedente.

    ExpandOthers

    Boolean

    Não

    Determina se a parte excedente deve ser analisada.

    • true: Analisa a parte excedente.

      É possível usar o parâmetro ExpandOthers para processar o conteúdo excedente e, em seguida, definir um prefixo de nomenclatura para esses campos através do parâmetro ExpandKeyPrefix.

    • false (padrão): Não analisa a parte excedente.

      Se você definir PreserveOthers como true e ExpandOthers como false, o conteúdo excedente será salvo no campo _decode_preserve_.

      Nota

      Caso o conteúdo excedente não esteja no formato CSV, é necessário normalizá-lo antes de armazenar.

    ExpandKeyPrefix

    String

    Não

    Prefixo de nome para os campos excedentes. Por exemplo, ao configurar este parâmetro como expand_, os campos receberão nomes como expand_1, expand_2, etc.

    TrimLeadingSpace

    Boolean

    Não

    Controla se os espaços iniciais devem ser removidos dos valores dos campos.

    • true: Remove os espaços iniciais.

    • false (padrão): Mantém os espaços iniciais.

    SplitSep

    String

    Não

    Delimitador que separa os valores. O padrão é vírgula (,).

    KeepSource

    Boolean

    Não

    Define se o campo de origem deve ser preservado no log analisado.

    • true: Preserva o campo de origem.

    • false (padrão): Não preserva o campo de origem.

    NoKeyError

    Boolean

    Não

    Indica se um erro deve ser reportado quando o campo de origem estiver ausente no log bruto.

    • true: Reporta um erro.

    • false (padrão): Não reporta erro.

  • Exemplo de configuração

    Veja a seguir como extrair valores do campo csv:

    • Log bruto

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Configuração do plugin 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 caractere único

Nota

Extrai campos utilizando um delimitador de caractere único. Este modo permite o uso de caractere de aspas para envolver campos que contenham o delimitador.

Form

  • Parâmetros

    Defina processor type como Extract Field (Single-character Delimiter Mode). A tabela abaixo lista os parâmetros disponíveis.

    Parâmetro

    Descrição

    Original Field

    Nome do campo de origem.

    Delimiter

    Delimitador. Deve ser um único caractere, podendo ser um caractere não imprimível, como \u0001.

    New Field

    Especifica os nomes dos campos a serem criados para o conteúdo extraído.

    Use Quote

    Indica se deve utilizar caractere de aspas.

    Quote

    Caractere de aspas. Deve ser um único caractere, podendo ser não imprimível, como \u0001.

    Report Original Field Missing Error

    Define se deve reportar erro quando o campo de origem especificado não for encontrado no log bruto.

    Report Delimiter Mismatch Error

    Determina se deve reportar erro caso o delimitador especificado não exista no log bruto.

    Retain Original Field

    Controla se o campo de origem deve ser mantido no log analisado.

  • Exemplo

    Utilize a barra vertical (|) como delimitador para extrair o valor do campo content e configure os nomes dos campos como ip, time, method, url, request_time, request_length, status, length, ref_url e browser. Confira o exemplo de configuração abaixo:

    • Log bruto

      "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"
    • Configuração do plugin Logtail: O delimiter está definido como barra vertical (|) e os result fields incluem ip, time, method, url, request_time, request_length, status, length, ref_url e 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

    Configure type como processor_split_char. A tabela seguinte detalha o parâmetro detail.

    Parâmetro

    Tipo

    Obrigatório

    Descrição

    SourceKey

    String

    Sim

    Nome do campo de origem.

    SplitSep

    String

    Sim

    O delimitador deve ser um único caractere, podendo ser não imprimível, como \u0001.

    SplitKeys

    Array de strings

    Sim

    Array de strings que define os nomes dos novos campos. Exemplo: ["ip", "time", "method"].

    PreserveOthers

    Boolean

    Não

    Define se a parte excedente deve ser retida quando o número de campos a dividir superar a quantidade especificada no parâmetro SplitKeys.

    • true: Retém a parte excedente.

    • false (padrão): Não retém a parte excedente.

    QuoteFlag

    Boolean

    Não

    Indica se deve usar caractere de aspas.

    • true: Usa caractere de aspas.

    • false (padrão): Não usa caractere de aspas.

    Quote

    String

    Não

    Caractere de aspas. Deve ser um único caractere, podendo ser não imprimível, como \u0001.

    Este parâmetro só tem efeito quando QuoteFlag estiver definido como true.

    NoKeyError

    Boolean

    Não

    Define se deve reportar erro quando o campo de origem especificado não for encontrado no log bruto.

    • true: Reporta um erro.

    • false (padrão): Não reporta erro.

    NoMatchError

    Boolean

    Não

    Determina se deve reportar erro caso o delimitador especificado não seja encontrado no log bruto.

    • true: Reporta um erro.

    • false (padrão): Não reporta erro.

    KeepSource

    Boolean

    Não

    Especifica se o campo de origem deve ser mantido no log analisado.

    • true: Mantém o campo de origem.

    • false (padrão): Não mantém o campo de origem.

  • Exemplo

    Use o delimitador barra vertical (|) para extrair o valor do campo content e atribua os seguintes nomes aos campos: ip, time, method, url, request_time, request_length, status, length, ref_url e browser. Abaixo está um exemplo de configuração:

    • Log bruto

      "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"
    • Configuração do plugin 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 múltiplos caracteres

Nota

Permite extrair campos usando um separador de múltiplos caracteres. Este modo não suporta escape do separador com aspas.

Console

  • Parâmetros

    Instruções

    1. Leia o conteúdo em inglês para compreender O QUE precisa ser comunicado

    2. Escreva o português brasileiro DO ZERO — esqueça a estrutura da frase em inglês

    3. Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão

    4. Tags xref (<a data-tag="xref" ...>texto</a>) — preserve a tag INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > e

    5. Aplique todas as regras específicas do idioma rigorosamente

    6. Aplique as regras de stopwords com tolerância zero

    7. Use o modo imperativo em passos numerados e listas de procedimentos

    8. Garanta consistência terminológica — mesmo termo = mesma tradução em todo lugar

    9. Varie os inícios de frase em listas/tabelas — nenhum iniciador repetido mais de 3 vezes

    10. Retorne APENAS o documento markdown em português brasileiro, sem explicações

      Defina o processor type como Extract Field (Multi-character Delimiter Mode). A tabela a seguir descreve os parâmetros.

      Parameter

      Description

      Original Field

      Nome do campo original.

      Delimiter String

      Separador utilizado. É possível especificar caracteres não imprimíveis, como \u0001\u0002.

      New Field

      Nomes dos campos extraídos.

      Importante

      Se a quantidade de campos resultantes for menor que a quantidade de campos em New Field, os campos excedentes em New Field serão ignorados.

      Report Original Field Missing Error

      Selecione esta opção para relatar um erro caso o campo original especificado não seja encontrado no log.

      Report Delimiter Mismatch Error

      Selecione esta opção para relatar um erro caso o separador especificado não seja encontrado no campo original.

      Retain Original Field

      Selecione esta opção para manter o campo original no log analisado.

      Retain Excess Part

      Selecione esta opção para reter o conteúdo excedente se a divisão resultar em mais valores do que a quantidade de nomes especificados em New Field.

      Parse Excess Part

      Selecione esta opção para analisar o conteúdo excedente em novos campos se a divisão resultar em mais valores do que a quantidade de nomes especificados em New Field. Em seguida, use Name Prefix of Field to which Excess Part is Assigned para definir um prefixo para os nomes desses novos campos.

      Name Prefix of Field to which Excess Part is Assigned

      Prefixo para os nomes dos campos excedentes. Por exemplo, se você definir este parâmetro como expand_, os campos excedentes receberão os nomes expand_1, expand_2 e assim por diante.

  • Exemplo de configuração

    Use o separador |#| para extrair valores do campo content e criar os campos ip, time, method, url, request_time, request_length, status, expand_1, expand_2 e expand_3. Veja abaixo um exemplo de configuração:

    • Log bruto

      "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"
    • Configuração do plugin Logtail: Defina a delimiter string como |#|, defina o excess part field name prefix como expand_ e adicione ip, time, method, url, request_time, request_length e status ao 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

    Defina type como processor_split_string. A tabela a seguir descreve os parâmetros em detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    String

    Sim

    Nome do campo original.

    SplitSep

    String

    Sim

    Separador utilizado. É possível especificar caracteres não imprimíveis, como \u0001\u0002.

    SplitKeys

    Array de strings

    Sim

    Nomes dos campos extraídos, especificados como um array de strings. Exemplo: ["key1","key2"].

    Nota

    Se a quantidade de campos a serem divididos for menor que a quantidade de campos no parâmetro SplitKeys, os campos excedentes no parâmetro SplitKeys serão ignorados.

    PreserveOthers

    Boolean

    Não

    Define se a parte excedente deve ser retida quando a divisão resultar em mais valores do que a quantidade de chaves no array SplitKeys.

    • true: Retém a parte excedente.

    • false (padrão): Não retém a parte excedente.

    ExpandOthers

    Boolean

    Não

    Define se a parte excedente deve ser analisada quando a divisão resultar em mais valores do que a quantidade de chaves no array SplitKeys.

    • true: Analisa a parte excedente.

      Use o parâmetro ExpandOthers para analisar a parte excedente e, em seguida, utilize o parâmetro ExpandKeyPrefix para especificar um prefixo de nomenclatura para os campos da parte excedente.

    • false (padrão): Não analisa a parte excedente.

    ExpandKeyPrefix

    String

    Não

    Prefixo para os nomes dos campos excedentes. Por exemplo, se você definir este parâmetro como expand_, os campos excedentes receberão os nomes expand_1, expand_2 e assim por diante.

    NoKeyError

    Boolean

    Não

    Define se um erro deve ser relatado caso o campo especificado por SourceKey não seja encontrado no log bruto.

    • true: Relata um erro.

    • false (padrão): Não relata erro.

    NoMatchError

    Boolean

    Não

    Define se um erro deve ser relatado caso o separador especificado por SplitSep não seja encontrado no valor do campo SourceKey.

    • true: Relata um erro.

    • false (padrão): Não relata erro.

    KeepSource

    Boolean

    Não

    Define se o campo original deve ser mantido no log analisado.

    • true: Mantém o campo original.

    • false (padrão): Não mantém o campo original.

  • Exemplo de configuração

    Use o separador |#| para extrair valores do campo content e criar os campos ip, time, method, url, request_time, request_length, status, expand_1, expand_2 e expand_3. Veja abaixo um exemplo de configuração:

    • Log bruto

      "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"
    • Configuração do plugin 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 chave-valor

Extrai campos dividindo pares chave-valor.

Nota

O plugin processor_split_key_value é suportado no Logtail 0.16.26 e versões posteriores.

Form

  • Parâmetros

    Defina o processor type como Extract Field (Key-value Pair Mode). A tabela a seguir descreve os parâmetros.

    Parameter

    Description

    Original Field

    Nome do campo de origem.

    Key-value Pair Delimiter

    O delimitador entre pares chave-valor é o caractere de tabulação \t por padrão.

    Key and Value Delimiter

    Separador entre chave e valor em um par chave-valor. O valor padrão é dois pontos (:).

    Retain Original Field

    Mantém o campo de origem no log analisado.

    Report Original Field Missing Error

    Relata um erro se o campo de origem especificado não for encontrado no log bruto.

    Drop Key-value Pairs That Fail to Match Delimiter

    Descarta um par chave-valor caso ele não contenha o separador chave-valor especificado.

    Report Key and Value Delimiter Missing Error

    Relata um erro se um par chave-valor não contiver o separador chave-valor especificado.

    Error on empty key

    Relata um erro se uma chave estiver vazia após a divisão.

    Quote

    Se um valor estiver envolvido pelo caractere de aspas especificado, apenas o conteúdo dentro das aspas será extraído. O caractere de aspas pode consistir em vários caracteres.

    Importante

    Uma barra invertida (\) antes de um caractere de aspas dentro de um valor entre aspas é tratada como um caractere literal e incluída no valor final.

  • Exemplos

    • Exemplo 1: Dividir pares chave-valor.

      Divida o valor do campo content em pares chave-valor. O delimitador entre pares chave-valor é um caractere de tabulação \t, e o delimitador entre chave e valor é dois pontos (:). Veja abaixo um exemplo de configuração:

      • Log bruto

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Configuração do plugin Logtail: Defina o key-value pair delimiter como \t, defina o key-value separator como dois pontos (:) e selecione a opção retain source field.

      • Resultado

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Exemplo 2: Dividir pares chave-valor com aspas.

      Divida o valor do campo content usando pares chave-valor. O delimitador entre pares é o caractere de tabulação \t, o delimitador dentro de um par é dois pontos (:) e o caractere de aspas é aspas duplas ("). Um exemplo de configuração é apresentado a seguir:

      • Log bruto

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Configuração do plugin Logtail: O key-value pair delimiter está definido como \t, o key-value separator está definido como dois pontos (:), o quote character está definido como aspas duplas (") e a opção retain source field está desativada.

      • Resultado

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Exemplo 3: Dividir pares chave-valor com aspas de múltiplos caracteres.

      Divida o valor do campo content usando pares chave-valor. O delimitador entre pares chave-valor é o caractere de tabulação \t, o delimitador dentro de um par chave-valor é dois pontos (:) e o caractere de aspas é aspas duplas (""). Um exemplo de configuração é apresentado a seguir:

      • Log bruto

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Configuração do plugin Logtail: A configuração é a mesma do Exemplo 2, exceto que o quote character está definido como três aspas duplas (""").

      • Resultado

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

JSON

  • Parâmetros

    Defina o parâmetro type como processor_split_key_value. A tabela a seguir descreve os parâmetros no objeto detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    string

    Sim

    Nome do campo de origem.

    Delimiter

    string

    Não

    Separador entre pares chave-valor. O padrão é um caractere de tabulação \t.

    Separator

    string

    Não

    Separador entre chave e valor em um par chave-valor. O valor padrão é dois pontos (:).

    KeepSource

    boolean

    Não

    Define se o campo de origem deve ser mantido no log analisado.

    • true: Mantém o campo de origem.

    • false (padrão): Não mantém o campo de origem.

    ErrIfSourceKeyNotFound

    boolean

    Não

    Define se um erro deve ser relatado caso o campo de origem não seja encontrado no log bruto.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

    DiscardWhenSeparatorNotFound

    boolean

    Não

    Define se o par chave-valor deve ser descartado caso o separador chave-valor especificado não seja encontrado.

    • true: O par chave-valor é descartado.

    • false (padrão): O par chave-valor não é descartado.

    ErrIfSeparatorNotFound

    boolean

    Não

    Define se um erro deve ser relatado caso o separador chave-valor especificado não seja encontrado.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

    ErrIfKeyIsEmpty

    boolean

    Não

    Define se um erro deve ser relatado caso uma chave esteja vazia após a divisão.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

    Quote

    string

    Não

    Especifica o caractere usado para envolver valores. Se um valor estiver envolvido por este caractere, apenas o conteúdo dentro das aspas será extraído. Este caractere pode consistir em vários caracteres. Por padrão, este parâmetro está vazio e esse recurso fica desativado.

    Importante
    • Para usar aspas duplas (") como caractere de aspas, você deve usar uma barra invertida (\) para escapá-la na sua configuração JSON. Por exemplo: "Quote": "\"".

    • Uma barra invertida (\) antes de um caractere de aspas dentro de um valor entre aspas é tratada como um caractere literal e incluída no valor final.

  • Exemplos

    • Exemplo 1: Dividir pares chave-valor.

      Divida o valor do campo content usando pares chave-valor. O delimitador entre pares chave-valor é o caractere de tabulação \t, e o delimitador dentro de um par chave-valor é dois pontos (:). Um exemplo de configuração é apresentado a seguir:

      • Log bruto

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Configuração do plugin 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\""
    • Exemplo 2: Dividir pares chave-valor com aspas.

      Divida o valor do campo content usando pares chave-valor. O delimitador entre pares chave-valor é o caractere de tabulação \t, o delimitador dentro de um par chave-valor é dois pontos (:) e o caractere de aspas é aspas duplas ("). Veja abaixo um exemplo de configuração:

      • Log bruto

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Configuração do plugin 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",
    • Exemplo 3: Dividir pares chave-valor com aspas de múltiplos caracteres.

      Divida o valor do campo content em pares chave-valor. O delimitador entre pares chave-valor é um caractere de tabulação (\t), o delimitador dentro de um par chave-valor é dois pontos (:) e o caractere de aspas é aspas duplas ("). Veja abaixo um exemplo de configuração:

      • Log bruto

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Configuração do plugin 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

Extrai campos alvo usando expressões grok.

Nota

O plugin processor_grok é suportado no Logtail 1.2.0 e versões posteriores.

Form

  • Parâmetros

    Instruções

    1. Leia o inglês para entender O QUE precisa ser comunicado

    2. Escreva o português brasileiro DO ZERO — esqueça a estrutura da frase em inglês

    3. Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão

    4. Tags xref (<a data-tag="xref" ...>text</a>) — preserve a tag INTEIRA com todos os atributos na ordem e caixa originais, APENAS traduza o texto visível entre > e

    5. Aplique todas as regras específicas de idioma rigorosamente

    6. Aplique as regras de stopwords com tolerância zero

    7. Use o modo imperativo em passos numerados e listas de procedimentos

    8. Garanta a consistência terminológica — mesmo termo = mesma tradução em todo lugar

    9. Varie os inícios de frase em listas/tabelas — nenhum início repetido 3+ vezes

    10. Retorne APENAS o documento markdown em português brasileiro, sem explicações

      Defina o Processor Type como Extract Field (Grok Mode). A tabela a seguir descreve os parâmetros.

      Parameter

      Description

      Original Field

      Nome do campo de origem.

      Grok Expression Array

      Array de expressões grok. O plugin processor_grok testa cada expressão em ordem e retorna os campos da primeira correspondência bem-sucedida.

      Para obter uma lista das expressões padrão, consulte processor_grok. Caso a expressão necessária não esteja disponível, insira-a em Custom Grok Pattern.

      Nota

      A configuração de múltiplas expressões grok pode afetar o desempenho. Recomendamos o uso de no máximo cinco expressões.

      Custom Grok Pattern

      Insira um nome de regra personalizado e a expressão grok correspondente.

      Custom Grok Pattern File Directory

      Diretório que contém seus arquivos de padrões grok personalizados. O plugin processor_grok lê todos os arquivos neste diretório.

      Importante

      Após atualizar um arquivo de padrão grok personalizado, reinicie o Logtail para que as alterações entrem em vigor.

      Maximum timeout

      Tempo máximo, em milissegundos, para uma expressão grok corresponder e extrair campos. Se você definir este valor como 0 ou deixá-lo vazio, a operação não terá tempo limite.

      Retain Logs that Fails to be Parsed

      Retém o log caso a análise falhe.

      Retain Original Field

      Mantém o campo de origem no log analisado.

      Report Original Field Missing Error

      Relata um erro se o campo de origem não for encontrado no log bruto.

      Report No Expressions Matched Error

      Relata um erro se nenhuma expressão no Grok Expression Array corresponder ao log.

      Report Match Timeout Error

      Relata um erro se uma correspondência atingir o tempo limite.

  • Exemplo de configuração

    Este exemplo demonstra como usar o modo Grok para extrair valores do campo content e atribuí-los aos campos year, month e day.

    • Log bruto

      "content" : "2022 October 17"
    • Configuração do plugin Logtail: Defina o Grok expression array como %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} e ative a opção Retain logs that fail to be parsed.

    • Resultado

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

JSON

  • Parâmetros

    Defina type como processor_grok. A tabela a seguir descreve os parâmetros em detail.

    Parameter

    Type

    Required

    Description

    CustomPatternDir

    Array de strings

    Não

    Diretório que contém seus arquivos de padrões grok personalizados. O plugin processor_grok lê todos os arquivos neste diretório.

    Se você não especificar este parâmetro, nenhum arquivo de padrão grok personalizado será importado.

    Importante

    Após atualizar um arquivo de padrão grok personalizado, reinicie o Logtail para que as alterações entrem em vigor.

    CustomPatterns

    Map

    Não

    Padrões grok personalizados, onde a key é o nome da regra e o value é a expressão grok.

    Para as expressões suportadas por padrão, consulte processor_grok. Se o link não contiver a expressão necessária, insira uma expressão grok personalizada em Match.

    Se você não especificar este parâmetro, padrões grok personalizados não serão utilizados.

    SourceKey

    String

    Não

    Nome do campo de origem. O valor padrão é o campo content.

    Match

    Array de strings

    Sim

    Array de expressões grok. O plugin processor_grok testa cada expressão em ordem e retorna os campos da primeira correspondência bem-sucedida.

    Nota

    A configuração de múltiplas expressões grok pode afetar o desempenho. Recomendamos o uso de no máximo cinco expressões.

    TimeoutMilliSeconds

    Long

    Não

    Tempo máximo, em milissegundos, para uma expressão grok corresponder e extrair campos.

    Se você não especificar este parâmetro ou defini-lo como 0, a operação não terá tempo limite.

    IgnoreParseFailure

    Boolean

    Não

    Especifica se devem ser retidos logs cuja análise falhou.

    • true (padrão): Retém o log.

    • false: Descarta o log.

    KeepSource

    Boolean

    Não

    Especifica se o campo de origem deve ser mantido após uma análise bem-sucedida.

    • true (padrão): Mantém o campo de origem.

    • false: Descarta o campo de origem.

    NoKeyError

    Boolean

    Não

    Especifica se um erro deve ser relatado caso o campo de origem não seja encontrado no log bruto.

    • true: Um erro é relatado.

    • false (padrão): Nenhum erro é relatado.

    NoMatchError

    Boolean

    Não

    Especifica se um erro deve ser relatado caso nenhuma expressão no parâmetro Match corresponda ao log.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

    TimeoutError

    Boolean

    Não

    Especifica se um erro deve ser relatado caso uma correspondência atinja o tempo limite.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

  • Exemplo 1

    Este exemplo demonstra como usar o modo Grok para extrair valores do campo content e atribuí-los aos campos year, month e day.

    • Log bruto

      "content" : "2022 October 17"
    • Configuração do plugin Logtail

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

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

    Use o modo Grok para extrair valores do campo content de múltiplos logs e analisá-los em resultados diferentes com base em expressões grok distintas. Veja abaixo um exemplo de configuração:

    • Logs brutos

      {
          "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"
      }
    • Configuração do plugin 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

      • Para o primeiro log, o plugin processor_grok não encontra correspondência usando a primeira expressão %{HTTP} no parâmetro Match, mas obtém sucesso com a segunda expressão %{WORD:word1} %{NUMBER:request_time} %{WORD:word2}. Portanto, o plugin retorna os resultados extraídos com base na segunda expressão.

        Como o parâmetro KeepSource está definido como false, o campo content do log bruto é descartado.

      • Na segunda entrada de log, o plugin processor_grok falha ao tentar corresponder o log usando a primeira expressão %{HTTP} e a segunda expressão %{WORD:word1} %{NUMBER:request_time} %{WORD:word2} no parâmetro Match. O plugin consegue corresponder ao log usando a terceira expressão %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}. Assim, o plugin retorna os resultados extraídos com base na terceira expressão.

      • O plugin processor_grok não consegue corresponder o terceiro log a nenhuma expressão no array Match. Como o parâmetro IgnoreParseFailure está definido como false, o terceiro log é descartado.

      • Quanto ao quarto log, o plugin processor_grok corresponde-o com sucesso à primeira expressão no array Match, %{HTTP}, e retorna os 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 de adição de campos

Utilize o plugin processor_add_fields para adicionar campos de log. Este tópico descreve os parâmetros do plugin e fornece exemplos de configuração.

Configuration

Importante

O plugin processor_add_fields é suportado no Logtail 0.16.28 e versões posteriores.

Form

  • Parâmetros

    Defina o Processor Type como Add Field. A tabela a seguir descreve os parâmetros.

    Parameter

    Description

    Add Field

    Pares chave-valor a serem adicionados como novos campos de log.

    Ignore New Fields with Same Name

    Quando ativado, impede que um novo campo sobrescreva um campo existente com o mesmo nome.

  • Exemplo de configuração

    Este exemplo mostra como adicionar os campos aaa2 e aaa3.

    • Log bruto

      "aaa1":"value1"
    • Configuração do plugin Logtail: Adicione dois campos: aaa2 com o valor value2 e aaa3 com o valor value3.

    • Resultado

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

JSON

  • Parâmetros

    Defina type como processor_add_fields. A tabela a seguir descreve os parâmetros no objeto detail.

    Parameter

    Type

    Required

    Description

    Fields

    Map

    Sim

    Campos de log a serem adicionados, especificados como um mapa de pares chave-valor.

    IgnoreIfExist

    Boolean

    Não

    Define o comportamento quando um campo a ser adicionado tem o mesmo nome de um campo existente.

    • true: O novo campo é ignorado.

    • false (padrão): O campo existente é sobrescrito pelo novo campo.

  • Exemplo de configuração

    Este exemplo mostra como adicionar os campos aaa2 e aaa3.

    • Log bruto

      "aaa1":"value1"
    • Configuração do plugin Logtail

      {
        "processors":[
          {
            "type":"processor_add_fields",
            "detail": {
              "Fields": {
                "aaa2": "value2",
                "aaa3": "value3"
              }
            }
          }
        ]
      }
    • Resultado

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

Plugin de remoção de campos

O plugin processor_drop remove campos de log especificados. Este tópico aborda os parâmetros do plugin e fornece exemplos de configuração.

Configuration

Importante

O plugin processor_drop é suportado no Logtail 0.16.28 e versões posteriores.

Form

  • Parâmetros

    Defina o Processor Type como Drop Field.

    Parameter

    Description

    Drop Field

    Campos de log a serem removidos. É possível especificar vários campos.

  • Exemplo de configuração

    Para remover os campos aaa1 e aaa2 de um log, configure o plugin da seguinte forma:

    • Log bruto

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuração do plugin Logtail: Remova os campos aaa1 e aaa2.

    • Resultado

      "aaa3":"value3"

JSON

  • Parâmetros

    Defina type como processor_drop. A tabela a seguir descreve o parâmetro detail.

    Parameter

    Type

    Required

    Description

    DropKeys

    string array

    Sim

    Chaves dos campos de log a serem removidos. É possível especificar várias chaves.

  • Exemplo de configuração

    Para remover os campos aaa1 e aaa2 de um log, configure o plugin da seguinte forma:

    • Log bruto

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuração do plugin Logtail

      {
        "processors":[
          {
            "type":"processor_drop",
            "detail": {
              "DropKeys": ["aaa1","aaa2"]
            }
          }
        ]
      }
    • Resultado

      "aaa3":"value3"

Plugin de renomeação de campos

Use o plugin processor_rename para renomear campos. Este tópico descreve os parâmetros e exemplos de configuração do plugin processor_rename.

Configuration

Importante

O plugin processor_rename requer o Logtail 0.16.28 ou posterior.

Console

  • Parâmetros

    Defina o Processor Type como Rename Fields e configure os parâmetros descritos na tabela a seguir.

    Parameter

    Description

    Original Field

    Campo original a ser renomeado.

    New Field

    Novo nome para o campo.

    Report Original Field Missing Error

    Especifica se um erro deve ser relatado caso o campo original especificado não seja encontrado no log.

  • Exemplo

    Este exemplo renomeia o campo aaa1 para bbb1 e o campo aaa2 para bbb2.

    • Log bruto

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuração do plugin Logtail: Renomeie aaa1 para bbb1 e aaa2 para bbb2.

    • Resultado

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

JSON

  • Parâmetros

    Defina type como processor_rename e configure os parâmetros do objeto detail conforme descrito na tabela a seguir.

    Parameter

    Type

    Required

    Description

    NoKeyError

    Boolean

    Não

    Especifica se um erro deve ser relatado caso o campo original especificado não seja encontrado no log.

    • true: Relata um erro.

    • false (padrão): Não relata erro.

    SourceKeys

    String array

    Sim

    Campos originais a serem renomeados.

    DestKeys

    String array

    Sim

    Novos nomes para os campos.

  • Exemplo

    Este exemplo renomeia o campo aaa1 para bbb1 e o campo aaa2 para bbb2.

    • Log bruto

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuração do plugin Logtail

      {
        "processors":[
          {
            "type":"processor_rename",
            "detail": {
              "SourceKeys": ["aaa1","aaa2"],
              "DestKeys": ["bbb1","bbb2"],
              "NoKeyError": true
            }
          }
        ]
      }
    • Resultado

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

Plugin de empacotamento de campos

Utilize o plugin processor_packjson para empacotar um ou mais campos de origem em um campo de destino como um objeto JSON. Este tópico descreve os parâmetros do plugin processor_packjson e fornece exemplos de configuração.

Configuration

Importante

O plugin processor_packjson é suportado no Logtail 0.16.28 e versões posteriores.

Console

  • Parâmetros

    Defina o Processor Type como Encapsulate Fields. A tabela a seguir descreve os parâmetros.

    Parameter

    Description

    Original Field

    Campos de origem a serem empacotados.

    New Field

    Campo de destino para o objeto JSON empacotado.

    Retain Original Field

    Ao selecionar esta opção, os campos de origem são mantidos no log analisado.

    Report Original Field Missing Error

    Ao selecionar esta opção, o plugin relata um erro se um campo de origem especificado não for encontrado no log bruto.

  • Exemplo

    Este exemplo mostra como empacotar os campos a e b em um campo de destino chamado d_key.

    • Log bruto

      "a":"1"
      "b":"2"
    • Configuração do plugin Logtail: Defina o Source Field como a e b, e defina o Destination Field como d_key.

    • Resultado

      "a":"1"
      "b":"2"
      "d_key":"{\"a\":\"1\",\"b\":\"2\"}"

JSON

  • Parâmetros

    Defina type como processor_packjson. A tabela a seguir descreve os parâmetros do objeto detail.

    Parâmetro

    Tipo

    Obrigatório

    Descrição

    SourceKeys

    String array

    Sim

    Os campos de origem a serem compactados.

    DestKey

    String

    Não

    O campo de destino para o objeto JSON compactado.

    KeepSource

    Boolean

    Não

    Define se os campos de origem devem ser mantidos no log analisado.

    • true (padrão): Os campos de origem são mantidos.

    • false: Os campos de origem são removidos após a compactação.

    AlarmIfIncomplete

    Boolean

    Não

    Indica se um erro deve ser relatado caso um campo de origem especificado não seja encontrado no log bruto.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

  • Exemplo

    Este exemplo demonstra como compactar os campos a e b em um campo de destino chamado d_key.

    • Log bruto

      "a":"1"
      "b":"2"
    • Configuração do plugin do 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 de expansão de campo JSON

Utilize o plugin processor_json para expandir um campo JSON. Este tópico descreve os parâmetros do plugin processor_json e fornece exemplos de configuração.

Configuração

Importante

O plugin processor_json é suportado no Logtail 0.16.28 e versões posteriores.

Console

  • Parâmetros

    Defina Processor Type como Expand JSON Field. A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    Original Field

    Nome do campo de origem a ser expandido.

    JSON Expansion Depth

    Profundidade máxima para expansão do objeto JSON. O valor padrão é 0, o que significa que não há limite de profundidade. O valor 1 expande apenas os campos de nível superior.

    Character to Concatenate Expanded Keys

    Caractere utilizado para conectar chaves aninhadas. O valor padrão é o sublinhado (_).

    Name Prefix of Expanded Keys

    Prefixo para os nomes dos campos expandidos.

    Expand Array

    Define se arrays devem ser expandidos. Este parâmetro é suportado no Logtail 1.8.0 e versões posteriores.

    Retain Original Field

    Indica se o campo de origem deve ser mantido no log após a análise.

    Report Original Field Missing Error

    Especifica se um erro deve ser relatado quando o campo de origem definido não for encontrado no log bruto.

    Use Name of Original Field as Name Prefix of Expanded Keys

    Determina se o nome do campo de origem será usado como prefixo para todos os nomes de campos expandidos.

    Retain Raw Logs If Parsing Fails

    Define se o log bruto deve ser preservado em caso de falha na análise.

  • Exemplo

    Neste cenário, o campo s_key é expandido usando j como prefixo personalizado e o nome do campo de origem s_key como prefixo adicional para os nomes dos campos expandidos. Veja abaixo um exemplo de configuração:

    • Log bruto (caminho do arquivo lido pelo Logtail)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Configuração do plugin do Logtail

      Defina SourceKey como s_key, ative NoKeyError, defina ExpandDepth como 0 (ilimitado), configure ExpandConnector com um hífen (-), defina Prefix como j, ative UseSourceKeyAsPrefix e desative KeepSource.

    • Resultado

      O log expandido contém os seguintes campos: j_s_key-k1-k2-k3-k4-k51 com o valor 51, j_s_key-k1-k2-k3-k4-k52 com o valor 52 e j_s_key-k1-k2-k3-k41 com o valor 41. O campo de origem s_key é removido.

JSON

  • Parâmetros

    Defina type como processor_json. A tabela a seguir descreve os parâmetros do objeto detail.

    Parâmetro

    Tipo

    Obrigatório

    Descrição

    SourceKey

    String

    Sim

    Nome do campo de origem a ser expandido.

    NoKeyError

    Boolean

    Não

    Indica se um erro deve ser relatado caso o campo de origem não seja encontrado no log bruto.

    • true (padrão): Um erro é relatado.

    • false: Nenhum erro é relatado.

    ExpandDepth

    Int

    Não

    Profundidade máxima para expansão do objeto JSON. O valor padrão é 0, indicando ausência de limite de profundidade. O valor 1 expande somente os campos de nível superior.

    ExpandConnector

    String

    Não

    Caractere usado para conectar chaves aninhadas. O valor padrão é o sublinhado (_).

    Prefix

    String

    Não

    Prefixo a ser adicionado aos nomes dos novos campos após a expansão.

    KeepSource

    Boolean

    Não

    Define se o campo de origem deve ser mantido no log após a análise.

    • true (padrão): O campo de origem é mantido.

    • false: O campo de origem não é mantido.

    UseSourceKeyAsPrefix

    Boolean

    Não

    Especifica se o nome do campo de origem deve ser usado como prefixo para todos os nomes de campos expandidos.

    KeepSourceIfParseError

    Boolean

    Não

    Determina se o log bruto deve ser mantido caso a análise falhe.

    • true (padrão): O log bruto é mantido.

    • false: O log bruto não é mantido.

    ExpandArray

    Boolean

    Não

    Define se arrays devem ser expandidos. Este parâmetro é suportado no Logtail 1.8.0 e versões posteriores.

    • false (padrão): Arrays não são expandidos.

    • true: Expande arrays. Por exemplo, {"k":["1","2"]} é expandido para {"k[0]":"1","k[1]":"2"}.

  • Exemplo

    Neste cenário, o campo s_key é expandido usando j como prefixo personalizado e o nome do campo de origem s_key como prefixo adicional para os nomes dos campos expandidos. Veja abaixo um exemplo de configuração:

    • Log bruto (caminho do arquivo lido pelo Logtail)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Configuração do plugin do Logtail

      {
        "processors":[
          {
            "type":"processor_json",
            "detail": {
              "SourceKey": "s_key",
              "NoKeyError":true,
              "ExpandDepth":0,
              "ExpandConnector":"-",
              "Prefix":"j",
              "KeepSource": false,
              "UseSourceKeyAsPrefix": true
            }
          }
        ]
      }
    • Resultado

      O log expandido contém os seguintes campos: j_s_key-k1-k2-k3-k4-k51 com o valor 51, j_s_key-k1-k2-k3-k4-k52 com o valor 52 e j_s_key-k1-k2-k3-k41 com o valor 41. O campo de origem s_key é removido.

Plugin de mapeamento de valores de campo

O plugin processor_dict_map realiza o mapeamento de valores de campo. Este tópico descreve os parâmetros do plugin e fornece exemplos de configuração.

Configuração

Form

Defina processor type como Field Value Mapping. A tabela a seguir descreve os parâmetros.

Parâmetro

Descrição

Original Field

Nome do campo de origem.

New Field

Nome do campo mapeado.

Mapping Dictionary

Dicionário que mapeia valores de origem para valores de destino.

Para dicionários pequenos, configure os mapeamentos diretamente neste campo em vez de usar um arquivo de dicionário local.

Importante

Se você definir Local Dictionary, a configuração de Mapping Dictionary será ignorada.

Local Dictionary

Arquivo CSV contendo o dicionário de mapeamento. No arquivo, os campos devem estar entre aspas duplas (") e separados por vírgulas (,).

advanced parameters>process missing source field

Quando selecionado, se um log bruto não tiver o campo de origem, o plugin preenche o campo mapeado com o valor de Value to Fill New Field.

advanced parameters>Maximum Mapping Dictionary Size

Número máximo de regras permitidas no dicionário de mapeamento. O padrão é 1.000.

Reduza este valor para limitar o uso de memória do servidor pelo plugin.

advanced parameters>Method to Process Raw Log

Define o comportamento quando o campo mapeado já existe em um log bruto.

  • overwrite

  • fill

JSON

Defina type como processor_dict_map. A tabela a seguir descreve os parâmetros de detail.

Parâmetro

Tipo

Obrigatório

Descrição

SourceKey

String

Sim

Nome do campo de origem.

MapDict

Map

Não

Dicionário que mapeia valores de origem para valores de destino.

Para dicionários pequenos, configure os mapeamentos diretamente aqui em vez de usar o parâmetro DictFilePath.

Importante

Se você definir o parâmetro DictFilePath, o parâmetro MapDict será ignorado.

DictFilePath

String

Não

Caminho para um arquivo CSV contendo o dicionário de mapeamento. No arquivo, os campos devem estar entre aspas duplas (") e separados por vírgulas (,).

DestKey

String

Não

Nome do campo mapeado.

HandleMissing

Boolean

Não

Define se uma ação deve ser tomada quando o campo de origem estiver ausente em um log bruto.

  • true: Toma uma ação se o campo de origem estiver ausente.

    O plugin preenche o campo mapeado com o valor do parâmetro Missing.

  • false (padrão): Nenhuma ação é tomada.

Missing

String

Não

Valor para o campo mapeado quando o campo de origem está ausente. O padrão é Unknown.

Este parâmetro entra em vigor quando HandleMissing é definido como true.

MaxDictSize

Int

Não

Número máximo de regras permitidas no dicionário de mapeamento. O padrão é 1.000.

Reduza este valor para limitar o uso de memória do servidor pelo plugin.

Mode

String

Não

Define o comportamento quando o campo mapeado (especificado por DestKey) já existe em um log bruto.

  • overwrite (padrão): Substitui o valor existente no campo mapeado.

  • fill: Mantém o valor existente no campo mapeado.

Substituição de strings

Utilize o plugin processor_string_replace para realizar substituições baseadas em texto completo ou expressões regulares, ou ainda para remover caracteres de escape de logs brutos.

Configuração

Importante

O plugin processor_string_replace é compatível com o Logtail versão 1.6.0 e posteriores.

Form

Defina Processor Type como String Replacement. A tabela a seguir descreve os parâmetros.

Parâmetro

Descrição

Original Field

Nome do campo source.

Match Mode

Método utilizado para localizar o conteúdo a ser substituído. Valores válidos:

  • String Match: Substitui o conteúdo correspondente a uma string específica.

  • Regular Expression Match: Substitui o conteúdo que corresponde a uma expressão regular.

  • Remove Escape Character: Remove caracteres de escape.

Matched Content

Padrão ou string a ser correspondido.

  • Se Match Mode estiver definido como Match Mode, insira a string alvo.

    Todas as ocorrências correspondentes serão substituídas.

  • Caso Match Mode seja Regex Match, insira a expressão regular desejada.

    Também é possível usar um grupo de expressão regular para corresponder a uma parte específica da string.

  • Este parâmetro não é necessário quando Match Mode está configurado como String Match.

Match Mode

String utilizada na substituição.

  • Para Match Mode igual a Match Mode, insira a string que substituirá o conteúdo original.

  • Quando Match Mode for Remove Escape Character, insira a string de substituição. É permitido referenciar grupos de captura nesta string.

  • Parâmetro dispensável se Match Mode estiver definido como Replaced By.

Match Mode

Campo onde o resultado será armazenado. Se omitido, o campo source será sobrescrito.

JSON

Configure type como processor_string_replace. A tabela abaixo detalha os parâmetros dentro do objeto detail.

Parâmetro

Tipo

Obrigatório

Descrição

SourceKey

String

Sim

Nome do campo source.

Method

String

Sim

Método de substituição. Valores válidos:

  • const: Realiza substituição por string literal.

  • regex: Utiliza expressão regular para a substituição.

  • unquote: Remove caracteres de escape.

Match

String

Não

Padrão ou string para correspondência.

  • Ao definir Method como const, insira a string exata do conteúdo a ser substituído.

    Todas as ocorrências encontradas serão substituídas.

  • Se Method for regex, informe a expressão regular correspondente ao conteúdo alvo.

    Grupos de expressão regular também podem ser usados para isolar partes específicas da string.

  • Desnecessário quando Method estiver configurado como unquote.

ReplaceString

String

Não

String de substituição. O padrão é uma string vazia ("").

  • Com Method definido como const, digite a string que substituirá o conteúdo original.

  • Para Method igual a regex, informe a string de substituição. Referências a grupos de captura são permitidas.

  • Não aplicável se Method for unquote.

DestKey

String

Não

Campo de destino para o resultado. Caso não especificado, o campo source será sobrescrito.

Exemplos de configuração

Substituição de conteúdo via correspondência de string

Neste exemplo, utiliza-se correspondência de string para substituir Error: no campo content por uma string vazia.

Form

  • Log bruto:

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Configuração do plugin Logtail: Defina match mode como String Match, configure source field para content, defina match content como Error: e deixe replacement content vazio.

  • Resultado:

    "content": "2023-05-20 10:01:23 Unable to connect to database."

JSON

  • Log bruto:

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Configuração do plugin 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."

Substituição de conteúdo via expressão regular

O exemplo a seguir demonstra o uso de expressão regular para substituir strings no campo content que correspondam a \\u\w+\[\d{1,3};*\d{1,3}m|N/A por uma string vazia.

Form

  • Log bruto:

    "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"
  • Configuração do plugin Logtail: Selecione Regex Match em match mode, indique content como source field, preencha match content com \\u\w+\[\d{1,3};*\d{1,3}m|N/A e mantenha replacement content vazio.

  • Resultado:

    "content": "2022-09-16 09:03:31.013 INFO [TID: ] [Thread-30] c.s.govern.polygonsync.job.BlockTask : Block collection------end------\r"

JSON

  • Log bruto:

    "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"
  • Configuração do plugin 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"

Substituição usando grupos de captura

Este cenário emprega um grupo de captura de expressão regular para trocar 16 no campo content por */24, salvando a saída em um novo campo chamado new_ip.

Importante

Ao utilizar grupos de captura, a string de substituição não pode conter {}. Adote formatos como $1 e $2.

Form

  • Log bruto:

    "content": "10.10.239.16"
  • Configuração do plugin Logtail: Escolha Regex Match para match mode, aponte source field para content, use (\d.*\.)\d+ em match content, defina replacement content como $1*/24 e especifique new_ip no destination field.

  • Resultado:

    "content": "10.10.239.16",
    "new_ip": "10.10.239.*/24"

JSON

  • Log bruto:

    "content": "10.10.239.16"
  • Configuração do plugin 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"

Remoção de caracteres de escape

Form

  • Log bruto:

    "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}"
  • Configuração do plugin Logtail: Configure match mode para Remove Escape Characters e defina source field como content.

  • Resultado:

    "content": "{\"UNAME\":\"\",\"GID\":\"\",\"PAID\":\"\",\"UUID\":\"\",\"STARTTIME\":\"\",\"ENDTIME\":\"\",\"UID\":\"2154212790\",\"page_num\":1,\"page_size\":10}"

JSON

  • Log bruto:

    "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}"
  • Configuração do plugin 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}"

Documentação relacionada