Tous les produits
Search
Centre de documentation

Simple Log Service:Plug-ins de traitement des champs

Dernière mise à jour :Aug 08, 2026

Les plug-ins de traitement des champs permettent d'ajouter, de supprimer, de modifier, de regrouper, de développer et d'extraire des champs.

Exemple de traitement des champs

Ce tableau détaille la structure de données d'un journal brut stocké dans SLS. Il compare l'utilisation du plug-in d'extraction de champs en mode ancre à l'absence de plug-in. L'utilisation du plug-in d'extraction de champs structure vos données, ce qui simplifie les requêtes ultérieures.

Journal brut

Sans plug-in

Mode ancre

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

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

Utilisez le mode ancre pour extraire les valeurs des champs et définissez les noms des champs sur time, val_key1, val_key2, val_key3, value_key4_inner1, et 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"

Plug-ins de traitement des champs

SLS propose les types de plug-ins de traitement des champs suivants. Sélectionnez celui qui répond à vos besoins.

Nom du plug-in

Type

Description

Extraire des champs

Étendu

Prend en charge les modes suivants :

  • Mode regex : extrait les champs à l'aide de la correspondance par expression régulière.

  • Mode ancre : extrait les champs par position ou par marqueur.

  • Mode CSV : extrait les champs au format CSV.

  • Mode délimiteur à caractère unique : extrait les champs à l'aide d'un délimiteur à caractère unique.

  • Mode délimiteur multi-caractères : extrait les champs à l'aide d'un délimiteur multi-caractères.

  • Mode paire clé-valeur : extrait les champs à partir d'un format de paire clé-valeur.

  • Mode Grok : extrait des champs structurés à l'aide de la syntaxe Grok.

Ajouter des champs

Étendu

Ajoute de nouveaux champs à un journal.

Supprimer des champs

Étendu

Supprime les champs spécifiés.

Renommer des champs

Étendu

Renomme les champs.

Regrouper des champs

Étendu

Regroupe plusieurs champs dans un seul objet JSON.

Développer les champs JSON

Étendu

Développe un champ de chaîne JSON en champs distincts.

Mapper les valeurs des champs

Étendu

Remplace ou transforme les valeurs des champs sur la base d'une table de mappage.

Remplacer des chaînes

Étendu

Effectue un remplacement complet du texte, un remplacement basé sur une expression régulière ou une suppression des caractères d'échappement dans les journaux textuels.

Point d'entrée

Pour utiliser un plug-in Logtail pour le traitement des journaux, ajoutez-le lors de la création ou de la modification d'une configuration Logtail. Pour plus d'informations, consultez Présentation.

Limites

  • Les journaux textuels et la sortie standard des conteneurs ne prennent en charge que la configuration basée sur un formulaire, tandis que toutes les autres sources d'entrée ne prennent en charge que la configuration basée sur JSON.

  • Les limites suivantes s'appliquent lors de l'extraction de champs en mode regex.

    Le moteur d'expressions régulières Go, basé sur RE2, présente les limites suivantes par rapport au moteur PCRE :

    • Différences dans la syntaxe des groupes nommés

      Go utilise la syntaxe (?P<name>...) au lieu de la syntaxe PCRE (?<name>...).

    • Modèles d'expressions régulières non pris en charge

      • Assertion : (?=...), (?!...), (?<=...) et (?<!...).

      • Expression conditionnelle : (?(condition)true|false).

      • Correspondance récursive : (?R) et (?0).

      • Référence de sous-routine : (?&name) et (?P>name).

      • Groupe atomique : (?>...).

    Lors du débogage d'expressions régulières avec des outils tels que Regex101, évitez les modèles non pris en charge répertoriés ci-dessus, car le plug-in ne peut pas traiter les journaux qui les utilisent.

Plug-in d'extraction de champs

Extrait un champ de journal en utilisant le mode regex, le mode ancre, le mode CSV, le mode délimiteur à caractère unique, le mode délimiteur multi-caractères, le mode paire clé-valeur ou le mode Grok.

Mode regex

Extrait les champs à l'aide d'une expression régulière.

Formulaire

  • Paramètres

    Définissez le type de processeur sur Extract Field (Regex Mode). Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Original Field

    Le nom du champ source.

    Regular Expression

    L'expression régulière. Vous devez utiliser des parenthèses () pour spécifier les champs à extraire.

    New Field

    Les noms à attribuer au contenu extrait. Vous pouvez ajouter plusieurs noms de champs.

    Report Original Field Missing Error

    Sélectionnez cette option pour signaler une erreur si le champ source spécifié est introuvable dans le journal brut.

    Report Regex Mismatch Error

    Sélectionnez cette option pour signaler une erreur si la valeur du champ source ne correspond pas à l'expression régulière.

    Retain Original Field

    Sélectionnez cette option pour conserver le champ source dans le journal analysé.

    Retain Original Field If Parsing Fails

    Sélectionnez cette option pour conserver le champ source dans le journal analysé en cas d'échec de l'analyse.

    Full Regex Match

    Sélectionnez cette option pour extraire les valeurs uniquement si l'expression régulière trouve des correspondances pour tous les champs que vous avez définis dans New Field.

  • Exemple de configuration

    Utilisez le mode regex pour extraire la valeur du champ content, et définissez les noms des champs sur ip, time, method, url, request_time, request_length, status, length, ref_url et browser. Voici un exemple de configuration :

    • Journal brut

      "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"
    • Configuration du plug-in Logtail : Définissez le champ source sur content, configurez l'expression régulière et définissez les noms des champs de résultat sur ip, time, method, url, request_time, request_length, status, length, ref_url et browser. Sélectionnez les options signaler une erreur si le champ source est manquant et signaler une erreur en cas de non-correspondance regex.

    • Résultat

      "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

  • Paramètres

    Définissez type sur processor_regex. Le tableau suivant décrit les paramètres de l'objet detail.

    Paramètre

    Type

    Obligatoire

    Description

    SourceKey

    String

    Oui

    Le nom du champ source.

    Regex

    String

    Oui

    L'expression régulière. Vous devez utiliser des parenthèses () pour spécifier les champs à extraire.

    Keys

    Tableau de chaînes

    Oui

    Les noms à attribuer au contenu extrait. Exemple : ["ip", "time", "method"].

    NoKeyError

    Booléen

    Non

    Indique s'il faut signaler une erreur si le champ source est introuvable dans le journal brut.

    • true : Signale une erreur.

    • false (par défaut) : Ne signale pas d'erreur.

    NoMatchError

    Booléen

    Non

    Indique s'il faut signaler une erreur si la valeur du champ source ne correspond pas à l'expression régulière.

    • true (par défaut) : Signale une erreur.

    • false : Ne signale pas d'erreur.

    KeepSource

    Booléen

    Non

    Indique s'il faut conserver le champ source dans le journal analysé.

    • true : Conserve le champ source.

    • false (par défaut) : Ne conserve pas le champ source.

    FullMatch

    Booléen

    Non

    Indique s'il faut exiger une correspondance complète pour l'extraction.

    • true (valeur par défaut) : Les valeurs des champs sont extraites uniquement si l'expression régulière du paramètre Regex trouve une correspondance pour tous les champs spécifiés dans le paramètre Keys au sein de la valeur du champ source.

    • false : Les valeurs des champs sont extraites même si seule une correspondance partielle est trouvée.

    KeepSourceIfParseError

    Booléen

    Non

    Indique s'il faut conserver le champ source dans le journal analysé en cas d'échec de l'analyse.

    • true (par défaut) : Conserve le champ source.

    • false : Ne conserve pas le champ source.

  • Exemple de configuration

    Cet exemple montre comment utiliser le mode regex pour extraire les valeurs du champ content et les attribuer aux champs de résultat ip, time, method, url, request_time, request_length, status, length, ref_url et browser.

    • Journal brut

      "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"
    • Configuration du plug-in 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
          }
      }
    • Résultat

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

Mode ancre

Extrait les champs en spécifiant des mots-clés de début et de fin. Si un champ est au format JSON, vous pouvez également effectuer un développement JSON.

Console

  • Paramètres

    Définissez le type de processeur sur Extract Field (Anchor Mode). Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Original Field

    Le nom du champ d'origine.

    Anchor Parameters

    Une liste de configurations d'ancre pour l'extraction de champs.

    Start Keyword

    Le mot-clé marquant le début du texte à extraire. Si laissé vide, l'extraction commence au début de la valeur du champ d'origine.

    End Keyword

    Le mot-clé marquant la fin du texte à extraire. Si laissé vide, l'extraction se poursuit jusqu'à la fin de la valeur du champ d'origine.

    New Field

    Le nom du champ qui stocke le contenu extrait.

    Field Type

    Le type de données du champ. Les valeurs valides sont string et json.

    JSON Expansion

    Indique s'il faut effectuer un développement JSON.

    Character to Concatenate Expanded Keys

    Le caractère utilisé pour joindre les clés lors du développement JSON. La valeur par défaut est un trait de soulignement (_).

    Maximum Depth of JSON Expansion

    La profondeur de récursion maximale pour le développement JSON. La valeur par défaut est 0, ce qui indique qu'il n'y a aucune limite.

    Report Original Field Missing Error

    Si activé, signale une erreur si le champ d'origine spécifié est introuvable dans le journal brut.

    Report Keywords Missing Error

    Si activé, signale une erreur si aucune ancre correspondante n'est trouvée dans le journal brut.

    Retain Original Field

    Si activé, conserve le champ d'origine dans le journal analysé.

  • Exemple de configuration

    Cet exemple montre comment utiliser le mode ancre pour extraire les valeurs du champ content et créer les champs de résultat time, val_key1, val_key2, val_key3, value_key4_inner1 et value_key4_inner2.

    • Journal brut

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Configuration du plug-in Logtail : Configurez deux règles. Pour la première règle, définissez le nom du champ source sur time, le délimiteur de début sur \t, le nom du champ de destination sur time et le type de destination sur string. Pour la deuxième règle, définissez le nom du champ source sur json, le nom du champ de destination sur val, le type de destination sur json et activez le développement JSON.

    • Résultat

      "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

  • Paramètres

    Définissez le paramètre type sur la valeur processor_anchor. Le paramètre detail est décrit dans le tableau suivant.

    Parameter

    Type

    Required

    Description

    SourceKey

    String

    Yes

    Nom du champ d'origine.

    Anchors

    Array of Anchor objects

    Yes

    Liste des paramètres d'ancre.

    Start

    String

    Yes

    Mot-clé de début. Si ce paramètre est vide, la correspondance commence au début de la chaîne.

    Stop

    String

    Yes

    Mot-clé de fin. Si ce paramètre est vide, la correspondance s'étend jusqu'à la fin de la chaîne.

    FieldName

    String

    Yes

    Nom du champ pour le contenu extrait.

    FieldType

    String

    Yes

    Type de données du champ. Les valeurs valides sont string et json.

    ExpandJson

    Boolean

    No

    Indique s'il faut effectuer une expansion JSON.

    • true : effectue l'expansion JSON.

    • false (par défaut) : n'effectue pas l'expansion JSON.

    Valide uniquement lorsque le paramètre FieldType est défini sur json.

    ExpandConnector

    String

    No

    Caractère utilisé pour joindre les clés lors de l'expansion JSON. La valeur par défaut est un trait de soulignement (_).

    MaxExpandDepth

    Int

    No

    Profondeur maximale de l'expansion JSON. La valeur par défaut est 0, ce qui indique qu'il n'y a aucune limite.

    NoAnchorError

    Boolean

    No

    Indique s'il faut signaler une erreur si aucune ancre correspondante n'est trouvée.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

    NoKeyError

    Boolean

    No

    Indique s'il faut signaler une erreur si le champ d'origine spécifié est introuvable dans le journal brut.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

    KeepSource

    Boolean

    No

    Indique s'il faut conserver le champ d'origine après l'analyse.

    • true : conserve le champ d'origine.

    • false (par défaut) : supprime le champ d'origine.

  • Exemple de configuration

    Utilisez le mode d'ancre pour extraire la valeur du champ content et définissez les noms de champ sur time, val_key1, val_key2, val_key3, value_key4_inner1 et value_key4_inner2. L'exemple de configuration suivant illustre cette procédure :

    • Journal brut

      "content" : "time:2022.09.12 20:55:36\t json:{\"key1\" : \"xx\", \"key2\": false, \"key3\":123.456, \"key4\" : { \"inner1\" : 1, \"inner2\" : false}}"
    • Configuration du plug-in 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 
                }
            ]
        }
      }
    • Résultat

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

Mode CSV

Utilisez le mode CSV pour analyser les journaux au format CSV.

Formulaire

  • Paramètres

    Définissez le type de processeur sur Extract Field (CSV Mode). Le tableau suivant décrit les paramètres.

    Parameter

    Description

    Original Field

    Nom du champ source.

    New Field

    Spécifiez un ou plusieurs noms de champ pour les valeurs extraites.

    Important

    Si le nombre de champs à diviser est inférieur au nombre de champs spécifiés dans New Field, les champs excédentaires dans New Field sont ignorés.

    Delimiter

    Délimiteur utilisé pour séparer les valeurs. La valeur par défaut est la virgule (,).

    Retain Excess Part

    Si vous sélectionnez cette option et que le nombre de champs à diviser est supérieur au nombre de champs dans New Field, le système conserve la partie excédentaire.

    Parse Excess Part

    Sélectionnez cette option pour analyser le contenu excédentaire. Utilisez Name Prefix of Field to which Excess Part is Assigned pour spécifier le préfixe de nom des champs excédentaires.

    Si vous sélectionnez Retain Excess Part mais pas Parse Excess Part, le contenu excédentaire est enregistré dans le champ _decode_preserve_.

    Remarque

    Si le contenu excédentaire n'est pas conforme au format CSV, vous devez le normaliser avant le stockage.

    Name Prefix of Field to which Excess Part is Assigned

    Préfixe de nom pour les champs excédentaires. Par exemple, si vous définissez ce paramètre sur expand_, les champs seront nommés expand_1, expand_2, etc.

    Ignore Spaces before Field

    Sélectionnez cette option pour supprimer les espaces de début des valeurs de champ.

    Retain Original Field

    Sélectionnez cette option pour conserver le champ source dans le journal analysé.

    Report Original Field Missing Error

    Sélectionnez cette option pour signaler une erreur si le champ source est manquant.

  • Exemple de configuration

    L'exemple suivant montre comment extraire des valeurs du champ csv :

    • Journal brut

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Configuration du plug-in Logtail : définissez le champ source sur csv, le délimiteur sur une virgule (,) et les champs de résultat sur date, ip et content.

    • Résultat

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

JSON

  • Paramètres

    Définissez le paramètre type sur processor_csv. Le tableau suivant décrit le paramètre detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    String

    Yes

    Nom du champ source.

    SplitKeys

    String array

    Yes

    Noms des champs de résultat. Exemple : ["date", "ip", "content"].

    Important

    Si le nombre de champs à diviser est inférieur au nombre de champs spécifiés dans le paramètre SplitKeys, les champs excédentaires du paramètre SplitKeys sont ignorés.

    PreserveOthers

    Boolean

    No

    Indique s'il faut conserver la partie excédentaire du champ source s'il contient plus de valeurs que celles spécifiées dans SplitKeys.

    • true : conserve la partie excédentaire.

    • false (par défaut) : ne conserve pas la partie excédentaire.

    ExpandOthers

    Boolean

    No

    Indique s'il faut analyser la partie excédentaire.

    • true : analyse la partie excédentaire.

      Vous pouvez utiliser le paramètre ExpandOthers pour analyser la partie excédentaire, puis spécifier un préfixe de nommage pour les champs de la partie excédentaire à l'aide du paramètre ExpandKeyPrefix.

    • false (par défaut) : n'analyse pas la partie excédentaire.

      Si vous définissez PreserveOthers sur true et ExpandOthers sur false, le contenu excédentaire est enregistré dans le champ _decode_preserve_.

      Remarque

      Si le contenu excédentaire n'est pas conforme au format CSV, vous devez le normaliser avant le stockage.

    ExpandKeyPrefix

    String

    No

    Préfixe de nom pour les champs excédentaires. Par exemple, si vous définissez ce paramètre sur expand_, les champs seront nommés expand_1, expand_2, etc.

    TrimLeadingSpace

    Boolean

    No

    Indique s'il faut supprimer les espaces de début des valeurs de champ.

    • true : supprime les espaces de début.

    • false (par défaut) : ne supprime pas les espaces de début.

    SplitSep

    String

    No

    Délimiteur qui sépare les valeurs. La valeur par défaut est la virgule (,).

    KeepSource

    Boolean

    No

    Indique s'il faut conserver le champ source dans le journal analysé.

    • true : conserve le champ source.

    • false (par défaut) : ne conserve pas le champ source.

    NoKeyError

    Boolean

    No

    Indique s'il faut signaler une erreur si le champ source est absent du journal brut.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

  • Exemple de configuration

    L'exemple suivant montre comment extraire des valeurs du champ csv :

    • Journal brut

      {
          "csv": "2022-06-09,192.0.2.0,\"{\"\"key1\"\":\"\"value\"\",\"\"key2\"\":{\"\"key3\"\":\"\"string\"\"}}\"",
          ......
      }
    • Configuration du plug-in Logtail

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

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

Mode délimiteur à caractère unique

Remarque

Extrait les champs à l'aide d'un délimiteur à caractère unique. Ce mode permet d'utiliser un caractère de guillemet pour encadrer les champs contenant le délimiteur.

Formulaire

  • Paramètres

    Définissez le type de processeur sur Extract Field (Single-character Delimiter Mode). Le tableau suivant décrit les paramètres.

    Parameter

    Description

    Original Field

    Nom du champ source.

    Delimiter

    Délimiteur. Il doit s'agir d'un seul caractère et peut être défini sur un caractère non imprimable, tel que \u0001.

    New Field

    Spécifie les noms des champs à créer pour le contenu extrait.

    Use Quote

    Indique s'il faut utiliser un caractère de guillemet.

    Quote

    Caractère de guillemet. Il doit s'agir d'un seul caractère et peut être un caractère non imprimable, tel que \u0001.

    Report Original Field Missing Error

    Indique s'il faut signaler une erreur si le champ source spécifié est introuvable dans le journal brut.

    Report Delimiter Mismatch Error

    Indique s'il faut signaler une erreur si le délimiteur spécifié est introuvable dans le journal brut.

    Retain Original Field

    Indique s'il faut conserver le champ source dans le journal analysé.

  • Exemple

    Utilisez la barre verticale (|) comme délimiteur pour extraire la valeur du champ content et définissez les noms de champ sur ip, time, method, url, request_time, request_length, status, length, ref_url et browser. L'exemple de configuration suivant illustre cette procédure :

    • Journal brut

      "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"
    • Configuration du plug-in Logtail : le délimiteur est défini sur une barre verticale (|) et les champs de résultat incluent ip, time, method, url, request_time, request_length, status, length, ref_url et browser.

    • Résultat

      "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

  • Paramètres

    Définissez le paramètre type sur processor_split_char. Le tableau suivant décrit le paramètre detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    String

    Yes

    Nom du champ source.

    SplitSep

    String

    Yes

    Le délimiteur doit être un seul caractère et peut être défini sur un caractère non imprimable, tel que \u0001.

    SplitKeys

    String array

    Yes

    Tableau de chaînes spécifiant les noms des nouveaux champs. Exemple : ["ip", "time", "method"].

    PreserveOthers

    Boolean

    No

    Indique s'il faut conserver la partie excédentaire lorsque le nombre de champs à diviser est supérieur au nombre de champs spécifiés dans le paramètre SplitKeys.

    • true : conserve la partie excédentaire.

    • false (par défaut) : ne conserve pas la partie excédentaire.

    QuoteFlag

    Boolean

    No

    Indique s'il faut utiliser un caractère de guillemet.

    • true : utilise un caractère de guillemet.

    • false (par défaut) : n'utilise pas de caractère de guillemet.

    Quote

    String

    No

    Caractère de guillemet. Il doit s'agir d'un seul caractère et peut être un caractère non imprimable, tel que \u0001.

    Ce paramètre n'est effectif que lorsque QuoteFlag est défini sur true.

    NoKeyError

    Boolean

    No

    Indique s'il faut signaler une erreur si le champ source spécifié est introuvable dans le journal brut.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

    NoMatchError

    Boolean

    No

    Indique s'il faut signaler une erreur si le délimiteur spécifié est introuvable dans le journal brut.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

    KeepSource

    Boolean

    No

    Indique s'il faut conserver le champ source dans le journal analysé.

    • true : conserve le champ source.

    • false (par défaut) : ne conserve pas le champ source.

  • Exemple

    Utilisez le délimiteur barre verticale (|) pour extraire la valeur du champ content et définissez les noms de champ sur ip, time, method, url, request_time, request_length, status, length, ref_url et browser. L'exemple de configuration suivant illustre cette procédure :

    • Journal brut

      "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"
    • Configuration du plug-in Logtail

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

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

Mode délimiteur multi-caractères

Remarque

Vous pouvez extraire des champs avec un séparateur multi-caractères. Ce mode ne prend pas en charge l'échappement du séparateur par des guillemets.

Console

  • Paramètres

    Définissez le type de processeur sur Extract Field (Multi-character Delimiter Mode). Le tableau suivant décrit les paramètres.

    Parameter

    Description

    Original Field

    Nom du champ d'origine.

    Delimiter String

    Séparateur. Vous pouvez spécifier des caractères non imprimables, tels que \u0001\u0002.

    New Field

    Noms des champs extraits.

    Important

    Si le nombre de champs résultants est inférieur au nombre de champs spécifiés dans New Field, les champs excédentaires de New Field sont ignorés.

    Report Original Field Missing Error

    Cochez cette option pour signaler une erreur si le champ d'origine spécifié est introuvable dans le journal.

    Report Delimiter Mismatch Error

    Cochez cette option pour signaler une erreur si le séparateur spécifié est introuvable dans le champ d'origine.

    Retain Original Field

    Cochez cette option pour conserver le champ d'origine dans le journal analysé.

    Retain Excess Part

    Cochez cette option pour conserver le contenu excédentaire si le découpage génère plus de valeurs que le nombre de noms spécifiés dans New Field.

    Parse Excess Part

    Cochez cette option pour analyser le contenu excédentaire en nouveaux champs si le découpage génère plus de valeurs que le nombre de noms spécifiés dans New Field. Vous pouvez ensuite utiliser Name Prefix of Field to which Excess Part is Assigned pour spécifier un préfixe pour les noms de ces nouveaux champs.

    Name Prefix of Field to which Excess Part is Assigned

    Préfixe pour les noms des champs excédentaires. Par exemple, si vous définissez ce paramètre sur expand_, les champs excédentaires sont nommés expand_1, expand_2, etc.

  • Exemple de configuration

    Utilisez le séparateur |#| pour extraire les valeurs du champ content et créer les champs ip, time, method, url, request_time, request_length, status, expand_1, expand_2 et expand_3. Voici un exemple de configuration :

    • Journal brut

      "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"
    • Configuration du plug-in Logtail : définissez delimiter string sur |#|, définissez excess part field name prefix sur expand_ et ajoutez ip, time, method, url, request_time, request_length et status à new field.

    • Résultat

      "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

  • Paramètres

    Définissez type sur processor_split_string. Le tableau suivant décrit les paramètres de l'objet detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    String

    Yes

    Nom du champ d'origine.

    SplitSep

    String

    Yes

    Séparateur. Vous pouvez spécifier des caractères non imprimables, tels que \u0001\u0002.

    SplitKeys

    Array of strings

    Yes

    Noms des champs extraits, spécifiés sous forme de tableau de chaînes. Exemple : ["key1","key2"].

    Remarque

    Si le nombre de champs à diviser est inférieur au nombre de champs du paramètre SplitKeys, les champs excédentaires du paramètre SplitKeys sont ignorés.

    PreserveOthers

    Boolean

    No

    Indique s'il faut conserver la partie excédentaire si le découpage génère plus de valeurs que le nombre de clés du tableau SplitKeys.

    • true : conserve la partie excédentaire.

    • false (par défaut) : ne conserve pas la partie excédentaire.

    ExpandOthers

    Boolean

    No

    Indique s'il faut analyser la partie excédentaire si le découpage génère plus de valeurs que le nombre de clés du tableau SplitKeys.

    • true : analyse la partie excédentaire.

      Vous pouvez utiliser le paramètre ExpandOthers pour analyser la partie excédentaire, puis utiliser le paramètre ExpandKeyPrefix pour spécifier un préfixe de nommage pour les champs de la partie excédentaire.

    • false (par défaut) : n'analyse pas la partie excédentaire.

    ExpandKeyPrefix

    String

    No

    Préfixe pour les noms des champs excédentaires. Par exemple, si vous définissez ce paramètre sur expand_, les champs excédentaires sont nommés expand_1, expand_2, etc.

    NoKeyError

    Boolean

    No

    Indique s'il faut signaler une erreur si le champ spécifié par SourceKey est introuvable dans le journal brut.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

    NoMatchError

    Boolean

    No

    Indique s'il faut signaler une erreur si le séparateur spécifié par SplitSep est introuvable dans la valeur du champ SourceKey.

    • true : signale une erreur.

    • false (par défaut) : ne signale pas d'erreur.

    KeepSource

    Boolean

    No

    Indique s'il faut conserver le champ d'origine dans le journal analysé.

    • true : conserve le champ d'origine.

    • false (par défaut) : ne conserve pas le champ d'origine.

  • Exemple de configuration

    Utilisez le séparateur |#| pour extraire les valeurs du champ content et créer les champs ip, time, method, url, request_time, request_length, status, expand_1, expand_2 et expand_3. Voici un exemple de configuration :

    • Journal brut

      "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"
    • Configuration du plug-in 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_"
        }
      }
    • Résultat

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

Mode paire clé-valeur

Extrait les champs en divisant les paires clé-valeur.

Remarque

Le plug-in processor_split_key_value est pris en charge à partir de Logtail 0.16.26.

Formulaire

  • Paramètres

    Définissez le type de processeur sur Extract Field (Key-value Pair Mode). Le tableau suivant décrit les paramètres.

    Parameter

    Description

    Original Field

    Nom du champ source.

    Key-value Pair Delimiter

    Le délimiteur entre les paires clé-valeur est le caractère de tabulation \t par défaut.

    Key and Value Delimiter

    Séparateur entre une clé et une valeur dans une paire clé-valeur. La valeur par défaut est deux-points (:).

    Retain Original Field

    Conserve le champ source dans le journal analysé.

    Report Original Field Missing Error

    Signale une erreur si le champ source spécifié est introuvable dans le journal brut.

    Drop Key-value Pairs That Fail to Match Delimiter

    Ignore une paire clé-valeur si elle ne contient pas le séparateur clé-valeur spécifié.

    Report Key and Value Delimiter Missing Error

    Signale une erreur si une paire clé-valeur ne contient pas le séparateur clé-valeur spécifié.

    Error on empty key

    Signale une erreur si une clé est vide après la division.

    Quote

    Si une valeur est entourée par le caractère de guillemet spécifié, le contenu entre les guillemets est extrait. Le caractère de guillemet peut être composé de plusieurs caractères.

    Important

    Un antislash (\) précédant un caractère de guillemet dans une valeur entre guillemets est traité comme un caractère littéral et inclus dans la valeur finale.

  • Exemples

    • Exemple 1 : Diviser les paires clé-valeur.

      Divisez la valeur du champ content en paires clé-valeur. Le délimiteur entre les paires clé-valeur est un caractère de tabulation \t et le délimiteur entre une clé et une valeur est deux-points (:). Voici un exemple de configuration :

      • Journal brut

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Configuration du plug-in Logtail : définissez key-value pair delimiter sur \t, définissez key-value separator sur deux-points (:) et sélectionnez l'option retain source field.

      • Résultat

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Exemple 2 : Diviser les paires clé-valeur avec des guillemets.

      Divisez la valeur du champ content en utilisant des paires clé-valeur. Le délimiteur entre les paires est le caractère de tabulation \t, le délimiteur au sein d'une paire est deux-points (:) et le caractère de guillemet est le guillemet double ("). Voici un exemple de configuration :

      • Journal brut

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Configuration du plug-in Logtail : key-value pair delimiter est défini sur \t, key-value separator est défini sur deux-points (:), quote character est défini sur guillemet double (") et l'option retain source field est désactivée.

      • Résultat

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Exemple 3 : Diviser les paires clé-valeur avec des guillemets multicaractères.

      Divisez la valeur du champ content en utilisant des paires clé-valeur. Le délimiteur entre les paires clé-valeur est le caractère de tabulation \t, le délimiteur au sein d'une paire clé-valeur est deux-points (:) et le caractère de guillemet est le guillemet double (""). Voici un exemple de configuration :

      • Journal brut

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Configuration du plug-in Logtail : la configuration est identique à celle de l'exemple 2, sauf que quote character est défini sur trois guillemets doubles (""").

      • Résultat

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

JSON

  • Paramètres

    Définissez le paramètre type sur processor_split_key_value. Le tableau suivant décrit les paramètres de l'objet detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    string

    Yes

    Nom du champ source.

    Delimiter

    string

    No

    Séparateur entre les paires clé-valeur. La valeur par défaut est un caractère de tabulation \t.

    Separator

    string

    No

    Séparateur entre une clé et une valeur dans une paire clé-valeur. La valeur par défaut est deux-points (:).

    KeepSource

    boolean

    No

    Indique s'il faut conserver le champ source dans le journal analysé.

    • true : conserve le champ source.

    • false (par défaut) : ne conserve pas le champ source.

    ErrIfSourceKeyNotFound

    boolean

    No

    Indique s'il faut signaler une erreur si le champ source est introuvable dans le journal brut.

    • true (par défaut) : une erreur est signalée.

    • false : aucune erreur n'est signalée.

    DiscardWhenSeparatorNotFound

    boolean

    No

    Indique s'il faut ignorer la paire clé-valeur si le séparateur clé-valeur spécifié est introuvable.

    • true : la paire clé-valeur est ignorée.

    • false (par défaut) : la paire clé-valeur n'est pas ignorée.

    ErrIfSeparatorNotFound

    boolean

    No

    Indique s'il faut signaler une erreur si le séparateur clé-valeur spécifié est introuvable.

    • true (par défaut) : une erreur est signalée.

    • false : aucune erreur n'est signalée.

    ErrIfKeyIsEmpty

    boolean

    No

    Indique s'il faut signaler une erreur si une clé est vide après la division.

    • true (par défaut) : une erreur est signalée.

    • false : aucune erreur n'est signalée.

    Quote

    string

    No

    Spécifie le caractère utilisé pour entourer les valeurs. Si une valeur est entourée par ce caractère, seul le contenu entre les guillemets est extrait. Ce caractère peut être composé de plusieurs caractères. Par défaut, ce paramètre est vide et cette fonctionnalité est désactivée.

    Important
    • Pour utiliser un guillemet double (") comme caractère de guillemet, vous devez l'échapper avec un antislash (\) dans votre configuration JSON. Par exemple : "Quote": "\"".

    • Un antislash (\) précédant un caractère de guillemet dans une valeur entre guillemets est traité comme un caractère littéral et inclus dans la valeur finale.

  • Exemples

    • Exemple 1 : Diviser les paires clé-valeur.

      Divisez la valeur du champ content en utilisant des paires clé-valeur. Le délimiteur entre les paires clé-valeur est le caractère de tabulation \t et le délimiteur au sein d'une paire clé-valeur est deux-points (:). Voici un exemple de configuration :

      • Journal brut

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
      • Configuration du plug-in Logtail

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

        "content": "class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\""
        "class": "main"
        "userid": "123456"
        "method": "get"
        "message": "\"wrong user\""
    • Exemple 2 : Diviser les paires clé-valeur avec des guillemets.

      Divisez la valeur du champ content en utilisant des paires clé-valeur. Le délimiteur entre les paires clé-valeur est le caractère de tabulation \t, le délimiteur au sein d'une paire clé-valeur est deux-points (:) et le caractère de guillemet est le guillemet double ("). Voici un exemple de configuration :

      • Journal brut

        "content": "class:main http_user_agent:\"User Agent\" \"中文\" \"hello\\t\\\"ilogtail\\\"\\tworld\""
      • Configuration du plug-in Logtail

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

        "class": "main",
        "http_user_agent": "User Agent",
        "no_separator_key_0": "中文",
        "no_separator_key_1": "hello\t\"ilogtail\"\tworld",
    • Exemple 3 : Diviser les paires clé-valeur avec des guillemets multicaractères.

      Divisez la valeur du champ content en paires clé-valeur. Le délimiteur entre les paires clé-valeur est un caractère de tabulation (\t), le délimiteur au sein d'une paire clé-valeur est deux-points (:) et le caractère de guillemet est le guillemet double ("). Voici un exemple de configuration :

      • Journal brut

        "content": "class:main http_user_agent:\"\"\"User Agent\"\"\" \"\"\"中文\"\"\""
      • Configuration du plug-in Logtail

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

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

Mode Grok

Extrait les champs cibles à l'aide d'expressions Grok.

Remarque

Le plug-in processor_grok est pris en charge à partir de Logtail 1.2.0.

Formulaire

  • Paramètres

    Définissez le Type de processeur sur Extract Field (Grok Mode). Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Original Field

    Le nom du champ source.

    Grok Expression Array

    Un tableau d'expressions grok. Le plug-in processor_grok teste chaque expression dans l'ordre et renvoie les champs correspondant à la première correspondance réussie.

    Pour obtenir la liste des expressions par défaut, consultez processor_grok. Si une expression requise n'est pas disponible, saisissez-la dans le champ Custom Grok Pattern.

    Remarque

    La configuration de plusieurs expressions grok peut avoir un impact sur les performances. Nous vous recommandons d'utiliser au maximum cinq expressions.

    Custom Grok Pattern

    Saisissez un nom de règle personnalisé et une expression grok.

    Custom Grok Pattern File Directory

    Le répertoire contenant vos fichiers de modèles grok personnalisés. Le plug-in processor_grok lit tous les fichiers présents dans ce répertoire.

    Important

    Après la mise à jour d'un fichier de modèle grok personnalisé, vous devez redémarrer Logtail pour que les modifications soient prises en compte.

    Délai d'attente maximal

    Le délai maximal, en millisecondes, autorisé pour qu'une expression grok corresponde et extraie les champs. Si vous définissez cette valeur sur 0 ou si vous la laissez vide, l'opération n'expire pas.

    Retain Logs that Fails to be Parsed

    Conserve le journal si l'analyse échoue.

    Retain Original Field

    Conserve le champ source dans le journal analysé.

    Report Original Field Missing Error

    Signale une erreur si le champ source est introuvable dans le journal brut.

    Report No Expressions Matched Error

    Signale une erreur si aucune expression du Grok Expression Array ne correspond au journal.

    Report Match Timeout Error

    Signale une erreur si la recherche de correspondance expire.

  • Exemple de configuration

    Cet exemple montre comment utiliser le mode Grok pour extraire les valeurs du champ content et les attribuer aux champs year, month et day.

    • Journal brut

      "content" : "2022 October 17"
    • Configuration du plug-in Logtail : Définissez le Tableau d'expressions Grok sur %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} et activez l'option Conserver les journaux dont l'analyse a échoué.

    • Résultat

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

JSON

  • Paramètres

    Définissez type sur processor_grok. Le tableau suivant décrit les paramètres figurant dans detail.

    Paramètre

    Type

    Obligatoire

    Description

    CustomPatternDir

    Tableau de chaînes

    Non

    Le répertoire contenant vos fichiers de modèles grok personnalisés. Le plug-in processor_grok lit tous les fichiers présents dans ce répertoire.

    Si vous ne spécifiez pas ce paramètre, aucun fichier de modèle grok personnalisé n'est importé.

    Important

    Après la mise à jour d'un fichier de modèle grok personnalisé, vous devez redémarrer Logtail pour que les modifications soient prises en compte.

    CustomPatterns

    Map

    Non

    Les modèles grok personnalisés, où la key représente le nom de la règle et la value l'expression grok.

    Pour consulter les expressions prises en charge par défaut, reportez-vous à processor_grok. Si le lien ne contient pas l'expression requise, saisissez une expression grok personnalisée dans le paramètre Match.

    Si vous ne spécifiez pas ce paramètre, les modèles grok personnalisés ne sont pas utilisés.

    SourceKey

    Chaîne

    Non

    Le nom du champ source. La valeur par défaut est le champ content.

    Match

    Tableau de chaînes

    Oui

    Un tableau d'expressions grok. Le plug-in processor_grok teste chaque expression dans l'ordre et renvoie les champs correspondant à la première correspondance réussie.

    Remarque

    La configuration de plusieurs expressions grok peut avoir un impact sur les performances. Nous vous recommandons d'utiliser au maximum cinq expressions.

    TimeoutMilliSeconds

    Long

    Non

    Le délai maximal, en millisecondes, autorisé pour qu'une expression grok corresponde et extraie les champs.

    Si vous ne spécifiez pas ce paramètre ou si vous le définissez sur 0, l'opération n'expire pas.

    IgnoreParseFailure

    Booléen

    Non

    Indique s'il faut conserver les journaux dont l'analyse a échoué.

    • true (par défaut) : Conserve le journal.

    • false : Supprime le journal.

    KeepSource

    Booléen

    Non

    Indique s'il faut conserver le champ source après une analyse réussie.

    • true (par défaut) : Conserve le champ source.

    • false : Supprime le champ source.

    NoKeyError

    Booléen

    Non

    Indique s'il faut signaler une erreur si le champ source est introuvable dans le journal brut.

    • true : Une erreur est signalée.

    • false (par défaut) : Aucune erreur n'est signalée.

    NoMatchError

    Booléen

    Non

    Indique s'il faut signaler une erreur si aucune expression du paramètre Match ne correspond au journal.

    • true (par défaut) : Une erreur est signalée.

    • false : Aucune erreur n'est signalée.

    TimeoutError

    Booléen

    Non

    Indique s'il faut signaler une erreur si la recherche de correspondance expire.

    • true (par défaut) : Une erreur est signalée.

    • false : Aucune erreur n'est signalée.

  • Exemple 1

    Cet exemple montre comment utiliser le mode Grok pour extraire les valeurs du champ content et les attribuer aux champs year, month et day.

    • Journal brut

      "content" : "2022 October 17"
    • Configuration du plug-in Logtail

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

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

    Utilisez le mode Grok pour extraire les valeurs du champ content à partir de plusieurs journaux et analyser-les en différents résultats selon diverses expressions grok. Voici un exemple de configuration :

    • Journaux bruts

      {
          "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"
      }
    • Configuration du plug-in 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"
              },
      }
    • Résultat

      • Pour le premier journal, le plug-in processor_grok ne trouve pas de correspondance avec la première expression %{HTTP} du paramètre Match, mais il réussit avec la deuxième expression %{WORD:word1} %{NUMBER:request_time} %{WORD:word2}. Par conséquent, le plug-in renvoie les résultats extraits sur la base de la deuxième expression.

        Étant donné que le paramètre KeepSource est défini sur false, le champ content du journal brut est supprimé.

      • Pour la deuxième entrée de journal, le plug-in processor_grok ne parvient pas à faire correspondre le journal avec la première expression %{HTTP} ni avec la deuxième expression %{WORD:word1} %{NUMBER:request_time} %{WORD:word2} du paramètre Match. Le plug-in fait correctement correspondre le journal avec la troisième expression %{YEAR:year} %{MONTH:month} %{MONTHDAY:day} %{QUOTEDSTRING:motto}. Par conséquent, le plug-in renvoie les résultats extraits sur la base de la troisième expression.

      • Le plug-in processor_grok ne parvient pas à faire correspondre le troisième journal avec aucune expression du tableau Match. Étant donné que le paramètre IgnoreParseFailure est défini sur false, le troisième journal est supprimé.

      • Pour le quatrième journal, le plug-in processor_grok parvient à le faire correspondre avec la première expression du tableau Match, %{HTTP}, et renvoie les champs extraits.

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

Plug-in Add fields

Utilisez le plug-in processor_add_fields pour ajouter des champs de journal. Cette rubrique décrit les paramètres du plug-in et fournit des exemples de configuration.

Configuration

Important

Le plug-in processor_add_fields est pris en charge dans Logtail 0.16.28 et versions ultérieures.

Formulaire

  • Paramètres

    Définissez le Type de processeur sur Add Field. Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Add Field

    Les paires clé-valeur à ajouter en tant que nouveaux champs de journal.

    Ignore New Fields with Same Name

    Si cette option est activée, elle empêche un nouveau champ d'écraser un champ existant portant le même nom.

  • Exemple de configuration

    Cet exemple montre comment ajouter les champs aaa2 et aaa3.

    • Journal brut

      "aaa1":"value1"
    • Configuration du plug-in Logtail : Ajoutez deux champs : aaa2 avec la valeur value2, et aaa3 avec la valeur value3.

    • Résultat

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

JSON

  • Paramètres

    Définissez type sur processor_add_fields. Le tableau suivant décrit les paramètres de l'objet detail.

    Paramètre

    Type

    Obligatoire

    Description

    Fields

    Map

    Oui

    Les champs de journal à ajouter, spécifiés sous forme de map de paires clé-valeur.

    IgnoreIfExist

    Booléen

    Non

    Spécifie le comportement lorsqu'un champ à ajouter porte le même nom qu'un champ existant.

    • true : Le nouveau champ est ignoré.

    • false (par défaut) : Le champ existant est écrasé par le nouveau champ.

  • Exemple de configuration

    Cet exemple montre comment ajouter les champs aaa2 et aaa3.

    • Journal brut

      "aaa1":"value1"
    • Configuration du plug-in Logtail

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

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

Plug-in Drop fields

Le plug-in processor_drop supprime les champs de journal spécifiés. Cette rubrique couvre les paramètres du plug-in et fournit des exemples de configuration.

Configuration

Important

Le plug-in processor_drop est pris en charge dans Logtail 0.16.28 et versions ultérieures.

Formulaire

  • Paramètres

    Définissez le Type de processeur sur Drop Field.

    Paramètre

    Description

    Drop Field

    Les champs de journal à supprimer. Vous pouvez spécifier plusieurs champs.

  • Exemple de configuration

    Pour supprimer les champs aaa1 et aaa2 d'un journal, configurez le plug-in comme suit :

    • Journal brut

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuration du plug-in Logtail : Supprimez les champs aaa1 et aaa2.

    • Résultat

      "aaa3":"value3"

JSON

  • Paramètres

    Définissez type sur processor_drop. Le tableau suivant décrit le paramètre detail.

    Paramètre

    Type

    Obligatoire

    Description

    DropKeys

    Tableau de chaînes

    Oui

    Les clés des champs de journal à supprimer. Vous pouvez spécifier plusieurs clés.

  • Exemple de configuration

    Pour supprimer les champs aaa1 et aaa2 d'un journal, configurez le plug-in comme suit :

    • Journal brut

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuration du plug-in Logtail

      {
        "processors":[
          {
            "type":"processor_drop",
            "detail": {
              "DropKeys": ["aaa1","aaa2"]
            }
          }
        ]
      }
    • Résultat

      "aaa3":"value3"

Plug-in Rename fields

Vous pouvez utiliser le plug-in processor_rename pour renommer des champs. Cette rubrique décrit les paramètres et les exemples de configuration du plug-in processor_rename.

Configuration

Important

Le plug-in processor_rename nécessite Logtail 0.16.28 ou une version ultérieure.

Console

  • Paramètres

    Définissez Processor Type sur Rename Fields et configurez les paramètres décrits dans le tableau suivant.

    Paramètre

    Description

    Original Field

    Le champ d'origine à renommer.

    New Field

    Le nouveau nom du champ.

    Report Original Field Missing Error

    Indique s'il faut signaler une erreur si le champ d'origine spécifié est introuvable dans le journal.

  • Exemple

    Cet exemple renomme le champ aaa1 en bbb1 et le champ aaa2 en bbb2.

    • Journal brut

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuration du plug-in Logtail : Renommez aaa1 en bbb1 et aaa2 en bbb2.

    • Résultat

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

JSON

  • Paramètres

    Définissez type sur processor_rename et configurez les paramètres de l'objet detail comme décrit dans le tableau suivant.

    Paramètre

    Type

    Obligatoire

    Description

    NoKeyError

    Booléen

    Non

    Indique s'il faut signaler une erreur si le champ d'origine spécifié est introuvable dans le journal.

    • true : Signale une erreur.

    • false (par défaut) : Ne signale pas d'erreur.

    SourceKeys

    Tableau de chaînes

    Oui

    Les champs d'origine à renommer.

    DestKeys

    Tableau de chaînes

    Oui

    Les nouveaux noms des champs.

  • Exemple

    Cet exemple renomme le champ aaa1 en bbb1 et le champ aaa2 en bbb2.

    • Journal brut

      "aaa1":"value1"
      "aaa2":"value2"
      "aaa3":"value3"
    • Configuration du plug-in Logtail

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

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

Plug-in Pack fields

Utilisez le plug-in processor_packjson pour regrouper un ou plusieurs champs sources dans un champ de destination sous forme d'objet JSON. Cette rubrique décrit les paramètres du plug-in processor_packjson et fournit des exemples de configuration.

Configuration

Important

Le plug-in processor_packjson est pris en charge dans Logtail 0.16.28 et versions ultérieures.

Console

  • Paramètres

    Définissez le Type de processeur sur Encapsulate Fields. Le tableau suivant décrit les paramètres.

    Paramètre

    Description

    Original Field

    Les champs sources à regrouper.

    New Field

    Le champ de destination pour l'objet JSON regroupé.

    Retain Original Field

    Si vous sélectionnez cette option, les champs sources sont conservés dans le journal analysé.

    Report Original Field Missing Error

    Si vous sélectionnez cette option, le plug-in signale une erreur si un champ source spécifié est introuvable dans le journal brut.

  • Exemple

    Cet exemple montre comment regrouper les champs a et b dans un champ de destination nommé d_key.

    • Journal brut

      "a":"1"
      "b":"2"
    • Configuration du plug-in Logtail : Définissez le Champ source sur a et b, et définissez le Champ de destination sur d_key.

    • Résultat

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

JSON

  • Paramètres

    Définissez le paramètre type sur processor_packjson. Le tableau suivant décrit les paramètres de l'objet detail.

    Parameter

    Type

    Required

    Description

    SourceKeys

    String array

    Yes

    Les champs source à regrouper.

    DestKey

    String

    No

    Le champ de destination pour l'objet JSON regroupé.

    KeepSource

    Boolean

    No

    Indique s'il faut conserver les champs source dans le journal analysé.

    • true (par défaut) : Les champs source sont conservés.

    • false : Les champs source sont supprimés après le regroupement.

    AlarmIfIncomplete

    Boolean

    No

    Indique s'il faut signaler une erreur si un champ source spécifié est introuvable dans le journal brut.

    • true (par défaut) : Une erreur est signalée.

    • false : Aucune erreur n'est signalée.

  • Exemple

    Cet exemple montre comment regrouper les champs a et b dans un champ de destination nommé d_key.

    • Journal brut

      "a":"1"
      "b":"2"
    • Configuration du plug-in Logtail

      {
        "processors":[
          {
            "type":"processor_packjson",
            "detail": {
              "SourceKeys": ["a","b"],
              "DestKey":"d_key",
              "KeepSource":true,
              "AlarmIfIncomplete":true
            }
          }
        ]
      }
    • Résultat

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

Plug-in d'extension de champ JSON

Utilisez le plug-in processor_json pour étendre un champ JSON. Cette rubrique décrit les paramètres du plug-in processor_json et fournit des exemples de configuration.

Configuration

Important

Le plug-in processor_json est pris en charge par Logtail 0.16.28 et versions ultérieures.

Console

  • Paramètres

    Définissez le Processor Type sur Expand JSON Field. Le tableau suivant décrit les paramètres.

    Parameter

    Description

    Original Field

    Le nom du champ source à étendre.

    JSON Expansion Depth

    La profondeur maximale d'extension de l'objet JSON. La valeur par défaut est 0, ce qui signifie qu'il n'y a aucune limite de profondeur. Une valeur de 1 étend uniquement les champs de premier niveau.

    Character to Concatenate Expanded Keys

    Le caractère utilisé pour connecter les clés imbriquées. La valeur par défaut est un trait de soulignement (_).

    Name Prefix of Expanded Keys

    Un préfixe pour les noms des champs étendus.

    Expand Array

    Indique s'il faut étendre les tableaux. Ce paramètre est pris en charge par Logtail 1.8.0 et versions ultérieures.

    Retain Original Field

    Indique s'il faut conserver le champ source dans le journal après l'analyse.

    Report Original Field Missing Error

    Indique s'il faut signaler une erreur si le champ source spécifié est introuvable dans le journal brut.

    Use Name of Original Field as Name Prefix of Expanded Keys

    Indique s'il faut utiliser le nom du champ source comme préfixe pour tous les noms de champs étendus.

    Retain Raw Logs If Parsing Fails

    Indique s'il faut conserver le journal brut si l'analyse échoue.

  • Exemple

    Cet exemple étend le champ s_key en utilisant j comme préfixe personnalisé et le nom du champ source s_key comme préfixe supplémentaire pour les noms de champs étendus. Voici un exemple de configuration :

    • Journal brut (chemin d'accès au fichier lu par Logtail)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Configuration du plug-in Logtail

      Définissez SourceKey sur s_key, activez NoKeyError, définissez ExpandDepth sur 0 (illimité), définissez ExpandConnector sur un trait d'union (-), définissez Prefix sur j, activez UseSourceKeyAsPrefix et désactivez KeepSource.

    • Résultat

      Le journal étendu contient les champs suivants : j_s_key-k1-k2-k3-k4-k51 avec la valeur 51, j_s_key-k1-k2-k3-k4-k52 avec la valeur 52, et j_s_key-k1-k2-k3-k41 avec la valeur 41. Le champ source s_key est supprimé.

JSON

  • Paramètres

    Définissez type sur processor_json. Le tableau suivant décrit les paramètres de l'objet detail.

    Parameter

    Type

    Required

    Description

    SourceKey

    String

    Yes

    Le nom du champ source à étendre.

    NoKeyError

    Boolean

    No

    Indique s'il faut signaler une erreur si le champ source est introuvable dans le journal brut.

    • true (par défaut) : Une erreur est signalée.

    • false : Aucune erreur n'est signalée.

    ExpandDepth

    Int

    No

    La profondeur maximale d'extension de l'objet JSON. La valeur par défaut est 0, ce qui signifie qu'il n'y a aucune limite de profondeur. Une valeur de 1 étend uniquement les champs de premier niveau.

    ExpandConnector

    String

    No

    Le caractère utilisé pour connecter les clés imbriquées. La valeur par défaut est un trait de soulignement (_).

    Prefix

    String

    No

    Le préfixe à ajouter aux noms des nouveaux champs après l'extension.

    KeepSource

    Boolean

    No

    Indique s'il faut conserver le champ source dans le journal après l'analyse.

    • true (par défaut) : Le champ source est conservé.

    • false : Le champ source n'est pas conservé.

    UseSourceKeyAsPrefix

    Boolean

    No

    Indique s'il faut utiliser le nom du champ source comme préfixe pour tous les noms de champs étendus.

    KeepSourceIfParseError

    Boolean

    No

    Indique s'il faut conserver le journal brut si l'analyse échoue.

    • true (par défaut) : Le journal brut est conservé.

    • false : Le journal brut n'est pas conservé.

    ExpandArray

    Boolean

    No

    Indique s'il faut étendre les tableaux. Ce paramètre est pris en charge par Logtail 1.8.0 et versions ultérieures.

    • false (par défaut) : Les tableaux ne sont pas étendus.

    • true : Étendre les tableaux. Par exemple, {"k":["1","2"]} est étendu en {"k[0]":"1","k[1]":"2"}.

  • Exemple

    Cet exemple étend le champ s_key en utilisant j comme préfixe personnalisé et le nom du champ source s_key comme préfixe supplémentaire pour les noms de champs étendus. Voici un exemple de configuration :

    • Journal brut (chemin d'accès au fichier lu par Logtail)

      {"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
    • Configuration du plug-in Logtail

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

      Le journal étendu contient les champs suivants : j_s_key-k1-k2-k3-k4-k51 avec la valeur 51, j_s_key-k1-k2-k3-k4-k52 avec la valeur 52, et j_s_key-k1-k2-k3-k41 avec la valeur 41. Le champ source s_key est supprimé.

Plug-in de mappage de valeur de champ

Le plug-in processor_dict_map mappe les valeurs des champs. Cette rubrique décrit les paramètres du plug-in et fournit des exemples de configuration.

Configuration

Form

Définissez le processor type sur Field Value Mapping. Le tableau suivant décrit les paramètres.

Parameter

Description

Original Field

Le nom du champ source.

New Field

Le nom du champ mappé.

Mapping Dictionary

Un dictionnaire qui mappe les valeurs source aux valeurs cibles.

Pour les petits dictionnaires, vous pouvez configurer les mappages directement dans ce champ au lieu d'utiliser un fichier de dictionnaire local.

Important

Si vous définissez Local Dictionary, la configuration Mapping Dictionary est ignorée.

Local Dictionary

Un fichier CSV contenant le dictionnaire de mappage. Dans le fichier, les champs doivent être entre guillemets doubles (") et séparés par des virgules (,).

advanced parameters>process missing source field

Lorsque cette option est sélectionnée, si un journal brut ne contient pas le champ source, le plug-in remplit le champ mappé avec la valeur de Value to Fill New Field.

advanced parameters>Maximum Mapping Dictionary Size

Le nombre maximal de règles autorisées dans le dictionnaire de mappage. La valeur par défaut est 1 000.

Réduisez cette valeur pour limiter l'utilisation de la mémoire du serveur par le plug-in.

advanced parameters>Method to Process Raw Log

Spécifie l'action à entreprendre lorsque le champ mappé existe déjà dans un journal brut.

  • overwrite

  • fill

JSON

Définissez le paramètre type sur processor_dict_map. Le tableau suivant décrit les paramètres de detail.

Parameter

Type

Required

Description

SourceKey

String

Yes

Le nom du champ source.

MapDict

Map

No

Un dictionnaire qui mappe les valeurs source aux valeurs cibles.

Pour les petits dictionnaires, vous pouvez configurer les mappages directement ici au lieu d'utiliser le paramètre DictFilePath.

Important

Si vous définissez le paramètre DictFilePath, le paramètre MapDict est ignoré.

DictFilePath

String

No

Le chemin d'accès à un fichier CSV contenant le dictionnaire de mappage. Dans le fichier, les champs doivent être entre guillemets doubles (") et séparés par des virgules (,).

DestKey

String

No

Le nom du champ mappé.

HandleMissing

Boolean

No

Indique s'il faut agir si le champ source est absent d'un journal brut.

  • true : Agir si le champ source est manquant.

    Le plug-in remplit le champ mappé avec la valeur du paramètre Missing.

  • false (par défaut) : Aucune action n'est entreprise.

Missing

String

No

La valeur du champ mappé lorsque le champ source est manquant. La valeur par défaut est Unknown.

Ce paramètre prend effet lorsque HandleMissing est défini sur true.

MaxDictSize

Int

No

Le nombre maximal de règles autorisées dans le dictionnaire de mappage. La valeur par défaut est 1 000.

Réduisez cette valeur pour limiter l'utilisation de la mémoire du serveur par le plug-in.

Mode

String

No

Spécifie l'action à entreprendre lorsque le champ mappé (spécifié par DestKey) existe déjà dans un journal brut.

  • overwrite (par défaut) : Remplace la valeur existante dans le champ mappé.

  • fill : Conserve la valeur existante dans le champ mappé.

Remplacement de chaînes

Utilisez le plug-in processor_string_replace pour effectuer un remplacement complet du texte ou basé sur une expression régulière, ou pour supprimer les caractères d'échappement des journaux bruts.

Configuration

Important

Le plug-in processor_string_replace est pris en charge à partir de Logtail 1.6.0.

Formulaire

Définissez le paramètre Processor Type sur String Replacement. Le tableau suivant décrit les paramètres.

Parameter

Description

Original Field

Le nom du champ source.

Match Mode

La méthode utilisée pour rechercher le contenu à remplacer. Valeurs possibles :

  • String Match : remplace le contenu correspondant à une chaîne spécifique.

  • Regular Expression Match : remplace le contenu correspondant à une expression régulière.

  • Remove Escape Character : supprime les caractères d'échappement.

Matched Content

Le motif ou la chaîne à faire correspondre.

  • Si le paramètre Match Mode est défini sur String Match, saisissez la chaîne cible.

    Toutes les occurrences correspondantes sont remplacées.

  • Si le paramètre Match Mode est défini sur Regex Match, saisissez l'expression régulière cible.

    Vous pouvez également utiliser un groupe d'expressions régulières pour faire correspondre une partie spécifique de la chaîne.

  • Ce paramètre n'est pas requis si vous définissez le paramètre Match Mode sur Remove Escape Character.

Replaced By

La chaîne à utiliser pour le remplacement.

  • Si vous définissez le paramètre Match Mode sur String Match, saisissez la chaîne qui remplacera le contenu original.

  • Si vous définissez le paramètre Match Mode sur Regex Match, saisissez la chaîne qui remplacera le contenu original. Vous pouvez référencer des groupes de capture dans la chaîne de remplacement.

  • Ce paramètre n'est pas requis si vous définissez le paramètre Match Mode sur Remove Escape Character.

New Field

Le champ dans lequel stocker le résultat. S'il n'est pas spécifié, le champ source est écrasé.

JSON

Définissez le paramètre type sur processor_string_replace. Le tableau suivant décrit les paramètres de l'objet detail.

Parameter

Type

Required

Description

SourceKey

String

Yes

Le nom du champ source.

Method

String

Yes

La méthode de remplacement. Valeurs possibles :

  • const : utilise le remplacement par chaîne.

  • regex : utilise une expression régulière pour le remplacement.

  • unquote : supprime les caractères d'échappement.

Match

String

No

Le motif ou la chaîne à faire correspondre.

  • Si vous définissez le paramètre Method sur const, saisissez la chaîne correspondant au contenu que vous souhaitez remplacer.

    Toutes les occurrences correspondantes sont remplacées.

  • Si vous définissez le paramètre Method sur regex, saisissez l'expression régulière correspondant au contenu que vous souhaitez remplacer.

    Vous pouvez également utiliser un groupe d'expressions régulières pour faire correspondre une partie spécifique de la chaîne.

  • Ce paramètre n'est pas requis si vous définissez le paramètre Method sur unquote.

ReplaceString

String

No

La chaîne à utiliser pour le remplacement. La valeur par défaut est une chaîne vide (« »).

  • Si vous définissez le paramètre Method sur const, saisissez la chaîne qui remplacera le contenu original.

  • Si vous définissez le paramètre Method sur regex, saisissez la chaîne qui remplacera le contenu original. Vous pouvez référencer des groupes de capture dans la chaîne de remplacement.

  • Ce paramètre n'est pas requis si vous définissez le paramètre Method sur unquote.

DestKey

String

No

Le champ dans lequel stocker le résultat. Si ce paramètre n'est pas spécifié, le champ source est écrasé.

Exemples de configuration

Remplacement de contenu par correspondance de chaîne

Cet exemple montre comment utiliser une correspondance de chaîne pour remplacer Error: dans le champ content par une chaîne vide.

Formulaire

  • Journal brut :

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Configuration du plug-in Logtail : définissez le paramètre match mode sur String Match, le paramètre source field sur content, le paramètre match content sur Error: et laissez le paramètre replacement content vide.

  • Résultat :

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

JSON

  • Journal brut :

    "content": "2023-05-20 10:01:23 Error: Unable to connect to database."
  • Configuration du plug-in Logtail :

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "const",
            "Match": "Error: ", 
            "ReplaceString": ""
          }
        }
      ]
    }
  • Résultat :

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

Remplacement de contenu par expression régulière

Cet exemple montre comment utiliser une expression régulière pour remplacer les chaînes du champ content qui correspondent à \\u\w+\[\d{1,3};*\d{1,3}m|N/A par une chaîne vide.

Formulaire

  • Journal brut :

    "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"
  • Configuration du plug-in Logtail : définissez le paramètre match mode sur Regex Match, le paramètre source field sur content, le paramètre match content sur \\u\w+\[\d{1,3};*\d{1,3}m|N/A et laissez le paramètre replacement content vide.

  • Résultat :

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

JSON

  • Journal brut :

    "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"
  • Configuration du plug-in Logtail :

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "regex",
            "Match": "\\\\u\\w+\\[\\d{1,3};*\\d{1,3}m|N/A", 
            "ReplaceString": ""
          }
        }
      ]
    }
  • Résultat :

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

Remplacement de contenu à l'aide de groupes de capture

Cet exemple utilise un groupe de capture d'expression régulière pour remplacer 16 dans le champ content par */24 et stocker le résultat dans un nouveau champ nommé new_ip.

Important

Lorsque vous utilisez des groupes de capture pour le remplacement, la chaîne de remplacement ne peut pas contenir {}. Vous devez utiliser des formats tels que $1 et $2.

Formulaire

  • Journal brut :

    "content": "10.10.239.16"
  • Configuration du plug-in Logtail : définissez le paramètre match mode sur Regex Match, le paramètre source field sur content, le paramètre match content sur (\d.*\.)\d+, le paramètre replacement content sur $1*/24 et le paramètre destination field sur new_ip.

  • Résultat :

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

JSON

  • Journal brut :

    "content": "10.10.239.16"
  • Configuration du plug-in Logtail :

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "regex",
            "Match": "(\\d.*\\.)\\d+", 
            "ReplaceString": "$1*/24",
            "DestKey": "new_ip"
          }
        }
      ]
    }
  • Résultat :

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

Suppression des caractères d'échappement

Formulaire

  • Journal brut :

    "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}"
  • Configuration du plug-in Logtail : définissez le paramètre match mode sur Remove Escape Characters et le paramètre source field sur content.

  • Résultat :

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

JSON

  • Journal brut :

    "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}"
  • Configuration du plug-in Logtail :

    {
      "processors":[
        {
          "type":"processor_string_replace",
          "detail": {
            "SourceKey": "content",
            "Method": "unquote"
          }
        }
      ]
    }
  • Résultat :

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

Documentation connexe