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 |
|
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.
|
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 :
|
|
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
Mode ancre
Mode CSV
Mode délimiteur à caractère unique
Mode délimiteur multi-caractères
Mode paire clé-valeur
Mode Grok
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
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
aaa2et aaa3.-
Journal brut
"aaa1":"value1" Configuration du plug-in Logtail : Ajoutez deux champs :
aaa2avec la valeurvalue2, etaaa3avec la valeurvalue3.-
Résultat
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3"
-
JSON
-
Paramètres
Définissez
typesurprocessor_add_fields. Le tableau suivant décrit les paramètres de l'objetdetail.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
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
aaa1etaaa2d'un journal, configurez le plug-in comme suit :-
Journal brut
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" Configuration du plug-in Logtail : Supprimez les champs
aaa1etaaa2.-
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
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
aaa1en bbb1 et le champ aaa2 en bbb2.-
Journal brut
"aaa1":"value1" "aaa2":"value2" "aaa3":"value3" Configuration du plug-in Logtail : Renommez
aaa1enbbb1etaaa2enbbb2.-
Résultat
"bbb1":"value1" "bbb2":"value2" "aaa3":"value3"
-
JSON
-
Paramètres
Définissez
typesurprocessor_renameet configurez les paramètres de l'objetdetailcomme décrit dans le tableau suivant.Paramètre
Type
Obligatoire
Description
NoKeyErrorBoolé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.
SourceKeysTableau de chaînes
Oui
Les champs d'origine à renommer.
DestKeysTableau de chaînes
Oui
Les nouveaux noms des champs.
-
-
Exemple
Cet exemple renomme le champ
aaa1enbbb1et le champaaa2enbbb2.-
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
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
aetb, et définissez le Champ de destination surd_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
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_keyen utilisantjcomme préfixe personnalisé et le nom du champ sources_keycomme 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 sur0(illimité), définissez ExpandConnector sur un trait d'union (-), définissez Prefix surj, activez UseSourceKeyAsPrefix et désactivez KeepSource. -
Résultat
Le journal étendu contient les champs suivants :
j_s_key-k1-k2-k3-k4-k51avec la valeur51,j_s_key-k1-k2-k3-k4-k52avec la valeur52, etj_s_key-k1-k2-k3-k41avec la valeur41. Le champ sources_keyest supprimé.
-
JSON
-
Paramètres
Définissez
typesurprocessor_json. Le tableau suivant décrit les paramètres de l'objetdetail.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_keyen utilisantjcomme préfixe personnalisé et le nom du champ sources_keycomme 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-k51avec la valeur51,j_s_key-k1-k2-k3-k4-k52avec la valeur52, etj_s_key-k1-k2-k3-k41avec la valeur41. Le champ sources_keyest 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.
|
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.
|
|
Missing |
String |
No |
La valeur du champ mappé lorsque le champ source est manquant. La valeur par défaut est 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.
|
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
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 :
|
|
Matched Content |
Le motif ou la chaîne à faire correspondre.
|
|
Replaced By |
La chaîne à utiliser pour le remplacement.
|
|
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 |
|
|
String |
Yes |
Le nom du champ source. |
|
|
String |
Yes |
La méthode de remplacement. Valeurs possibles :
|
|
|
String |
No |
Le motif ou la chaîne à faire correspondre.
|
|
|
String |
No |
La chaîne à utiliser pour le remplacement. La valeur par défaut est une chaîne vide (« »).
|
|
|
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 surError: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/Aet 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.
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*/24et le paramètre destination field surnew_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
-
Configurez des pipelines Logtail à l'aide de l'API :
-
Configurez des plug-ins de traitement dans la console :