Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Processeurs configurables de type analyseur
Cette section contient des informations sur les processeurs d'analyse de données configurables que vous pouvez utiliser dans un transformateur d'événements de journalisation.
Table des matières
parseJSON
Le processeur ParseJSON analyse les événements du journal JSON et insère les paires clé-valeur JSON extraites sous la destination. Si vous ne spécifiez pas de destination, le processeur place la paire clé-valeur sous le nœud racine. Lors de l'utilisation en parseJSON tant que premier processeur, vous devez analyser l'intégralité de l'événement du journal en utilisant @message comme champ source. Après l'analyse JSON initiale, vous pouvez ensuite manipuler des champs spécifiques dans les processeurs suivants.
Le @message contenu original n'est pas modifié, les nouvelles clés sont ajoutées au message.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
source |
Chemin d'accès au champ du journal des événements qui sera analysé. Utilisez la notation par points pour accéder aux champs secondaires. Par exemple, store.book |
Non |
|
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
destination |
Le champ de destination du JSON analysé |
Non |
|
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
Exemple
Supposons qu'un événement de journal ingéré ressemble à ceci :
{ "outer_key": { "inner_key": "inner_value" } }
Ensuite, si nous avons ce processeur ParseJSON :
[ { "parseJSON": { "destination": "new_key" } } ]
L'événement du journal transformé serait le suivant.
{ "new_key": { "outer_key": { "inner_key": "inner_value" } } }
grok
Utilisez le processeur grok pour analyser et structurer des données non structurées à l'aide de modèles de correspondance. Ce processeur peut également extraire des champs des messages du journal.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions | Remarques |
|---|---|---|---|---|---|
|
source |
Chemin du champ sur lequel appliquer la correspondance Grok |
Non |
|
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
|
match |
Le modèle grok à associer à l'événement du journal |
Oui |
Longueur maximale : 512 Motifs de rainure maximum : 20 Certains types de modèles de grok ont des limites d'utilisation individuelles. Toute combinaison des modèles suivants peut être utilisée jusqu'à cinq fois : {URI, URIPARAM, URIPATHPARAM, SPACE, DATA, GREEDYDATA, GREEDYDATA_MULTILINE} Les modèles Grok ne prennent pas en charge les conversions de type. Pour les modèles de format de journal courants (APACHE_ACCESS_LOG, NGINX_ACCESS_LOG, SYSLOG5424), seuls les modèles DATA, GREEDYDATA ou GREEDYDATA_MULTILINE peuvent être inclus après le modèle de journal commun. |
Structure d'un motif Grok
Voici la structure de modèle de grok prise en charge :
%{PATTERN_NAME:FIELD_NAME}
-
PATTERN_NAME : fait référence à une expression régulière prédéfinie pour faire correspondre un type de données spécifique. Seuls les modèles de grok prédéfinis sont pris en charge. La création de modèles personnalisés n'est pas autorisée.
-
FIELD_NAME : Attribue un nom à la valeur extraite.
FIELD_NAMEest facultatif, mais si vous ne spécifiez pas cette valeur, les données extraites seront supprimées de l'événement du journal transformé. S'ilFIELD_NAMEutilise une notation en pointillés (par exemple, « parent.child »), il est considéré comme un chemin JSON. -
Conversion de type : les conversions de type explicites ne sont pas prises en charge. Utilisez le TypeConverter processeur pour convertir le type de données de toute valeur extraite par grok.
Pour créer des expressions correspondantes plus complexes, vous pouvez combiner plusieurs modèles de grok. Jusqu'à 20 modèles de grok peuvent être combinés pour correspondre à un événement de journal. Par exemple, cette combinaison de modèles %{NUMBER:timestamp} [%{NUMBER:db}
%{IP:client_ip}:%{NUMBER:client_port}] %{GREEDYDATA:data} peut être utilisée pour extraire des champs d'une entrée de journal lent de Redis comme suit :
1629860738.123456 [0 127.0.0.1:6379] "SET" "key1" "value1"
Exemples de grok
Exemple 1 : utiliser grok pour extraire un champ à partir de journaux non structurés
Exemple de journal :
293750 server-01.internal-network.local OK "[Thread-000] token generated"
Transformateur utilisé :
[ { "grok": { "match": "%{NUMBER:version} %{HOSTNAME:hostname} %{NOTSPACE:status} %{QUOTEDSTRING:logMsg}" } } ]
Sortie :
{ "version": "293750", "hostname": "server-01.internal-network.local", "status": "OK", "logMsg": "[Thread-000] token generated" }
Exemple de journal :
23/Nov/2024:10:25:15 -0900 172.16.0.1 200
Transformateur utilisé :
[ { "grok": { "match": "%{HTTPDATE:timestamp} %{IPORHOST:clientip} %{NUMBER:response_status}" } } ]
Sortie :
{ "timestamp": "23/Nov/2024:10:25:15 -0900", "clientip": "172.16.0.1", "response_status": "200" }
Exemple 2 : utilisez grok en combinaison avec parseJSON pour extraire des champs d'un événement de journal JSON
Exemple de journal :
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1" }
Transformateur utilisé :
[ { "parseJSON": {} }, { "grok": { "source": "logMsg", "match": "%{WORD:http_method} %{NOTSPACE:request} HTTP/%{NUMBER:http_version}" } } ]
Sortie :
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1", "http_method": "GET", "request": "/page.html", "http_version": "1.1" }
Exemple 3 : modèle Grok avec annotation en pointillés dans FIELD_NAME
Exemple de journal :
192.168.1.1 GET /index.html?param=value 200 1234
Transformateur utilisé :
[ { "grok": { "match": "%{IP:client.ip} %{WORD:method} %{URIPATHPARAM:request.uri} %{NUMBER:response.status} %{NUMBER:response.bytes}" } } ]
Sortie :
{ "client": { "ip": "192.168.1.1" }, "method": "GET", "request": { "uri": "/index.html?param=value" }, "response": { "status": "200", "bytes": "1234" } }
Motifs de grok pris en charge
Les tableaux suivants répertorient les modèles pris en charge par le grok processeur.
Motifs généraux de grok
| Motif Grok | Description | Limite maximale de motifs | Exemple |
|---|---|---|---|
| NOM D'UTILISATEUR ou UTILISATEUR | Correspond à un ou plusieurs caractères pouvant inclure des lettres minuscules (a-z), des lettres majuscules (A-Z), des chiffres (0-9), des points (.), des traits de soulignement (_) ou des traits d'union (-) | 20 |
Entrée : Modèle : Sortie : |
| INT | Correspond à un signe plus ou moins facultatif suivi d'un ou de plusieurs chiffres. | 20 |
Entrée : Modèle : Sortie : |
| BASE10 NUM | Correspond à un entier ou à un nombre à virgule flottante avec un signe et une virgule décimale facultatifs | 20 |
Entrée : Modèle : Sortie : |
| BASE16NUM | Fait correspondre les nombres décimaux et hexadécimaux avec un signe optionnel (+ ou -) et un préfixe 0x facultatif | 20 |
Entrée : Modèle : Sortie : |
| POINTANT | Correspond à des entiers entiers positifs sans zéros en tête, composés d'un ou de plusieurs chiffres (1 à 9 suivis de 0 à 9) | 20 |
Entrée : Modèle : Sortie : |
| NONNEGINT | Correspond à tous les nombres entiers (composés d'un ou plusieurs chiffres de 0 à 9), y compris zéro et les nombres avec des zéros en tête. | 20 |
Entrée : Modèle : Sortie : |
| MOT | Correspond à des mots entiers composés d'un ou de plusieurs caractères (\ w), y compris des lettres, des chiffres et des traits de soulignement | 20 |
Entrée : Modèle : Sortie : |
| PAS D'ESPACE | Correspond à un ou plusieurs caractères autres que des espaces blancs. | 5 |
Entrée : Modèle : Sortie : |
| SPACE | Correspond à zéro ou plusieurs caractères d'espacement. | 5 |
Entrée : Modèle : Sortie : |
| DATA | Correspond à n'importe quel caractère (sauf la nouvelle ligne) zéro fois ou plus, ce n'est pas gourmand. | 5 |
Entrée : Modèle : Sortie : |
| DONNÉES GOURMANDES | Correspond à n'importe quel caractère (sauf la nouvelle ligne) zéro fois ou plus, gourmand. | 5 |
Entrée : Modèle : Sortie : |
| GREEDYDATA_MULTILINE | Correspond à n'importe quel personnage (y compris une nouvelle ligne) zéro fois ou plus, gourmand. | 1 |
Entrée :
Modèle : Sortie : |
| CHAÎNE ENTRE GUILLEMETS | Fait correspondre les chaînes entre guillemets (guillemets simples ou doubles) aux caractères échappés. | 20 |
Entrée : Modèle : Sortie : |
| UUID | Correspond à un format UUID standard : 8 caractères hexadécimaux, suivis de trois groupes de 4 caractères hexadécimaux et se terminant par 12 caractères hexadécimaux, tous séparés par des tirets. | 20 |
Entrée : Modèle : Sortie : |
| URNE | Correspond à la syntaxe URN (Uniform Resource Name). | 20 |
Entrée : Modèle : Sortie : |
AWS motifs de grok
| Modèle | Description | Limite maximale de motifs | Exemple |
|---|---|---|---|
|
ARN |
Correspond aux noms de ressources AWS Amazon (ARNs), en capturant la partition ( |
5 |
Entrée : Modèle : Sortie : |
Modèles de réseaux
| Motif Grok | Description | Limite maximale de motifs | Exemple |
|---|---|---|---|
| CISCOMAC | Correspond à une adresse MAC au format hexadécimal 4-4-4. | 20 |
Entrée : Modèle : Sortie : |
| WINDOWSMAC | Correspond à une adresse MAC au format hexadécimal avec des tirets | 20 |
Entrée : Modèle : Sortie : |
| MAC COMMUN | Correspond à une adresse MAC au format hexadécimal avec deux points. | 20 |
Entrée : Modèle : Sortie : |
| MAC | Correspond à l'un des modèles de grappes CISCOMAC, WINDOWSMAC ou COMMONMAC | 20 |
Entrée : Modèle : Sortie : |
| IPV6 | Correspond IPv6 aux adresses, y compris aux formulaires compressés et aux adresses IPv4 mappées IPv6 . | 5 |
Entrée : Modèle : Sortie : |
| IPV4 | Correspond à une IPv4 adresse. | 20 |
Entrée : Modèle : Sortie : |
| IP | Correspond soit IPv6 aux adresses prises en charge par % {IPv6}, soit IPv4 aux adresses prises en charge par % {IPv4} | 5 |
Entrée : Modèle : Sortie : |
| HOSTNAME ou HOST | Correspond aux noms de domaine, y compris les sous-domaines | 5 |
Entrée : Modèle : Sortie : |
| IP OU HÔTE | Correspond à un nom d'hôte ou à une adresse IP | 5 |
Entrée : Modèle : Sortie : |
| PORT HÔTE | Correspond à une adresse IP ou à un nom d'hôte tel que pris en charge par le modèle % {IPORHOST} suivi de deux points et d'un numéro de port, capturant le port sous la forme « PORT » dans la sortie. | 5 |
Entrée : Modèle : Sortie : |
| URI-HOST | Correspond à une adresse IP ou à un nom d'hôte tel que pris en charge par le modèle % {IPORHOST}, éventuellement suivi de deux points et d'un numéro de port, capturant le port en tant que « port » s'il est présent. | 5 |
Entrée : Modèle : Sortie : |
Motifs de bandes de chemins
| Motif Grok | Description | Limite maximale de motifs | Exemple |
|---|---|---|---|
| UNIXPATH | Correspond aux chemins d'URL, y compris éventuellement les paramètres de requête. | 20 |
Entrée : Modèle : Sortie : |
| WINPATH | Correspond aux chemins de fichiers Windows. | 5 |
Entrée : Modèle : Sortie : |
| PATH | Correspond à une URL ou à un chemin de fichier Windows | 5 |
Entrée : Modèle : Sortie : |
| TTY | Correspond aux chemins des périphériques Unix pour les terminaux et les pseudo-terminaux. | 20 |
Entrée : Modèle : Sortie : |
| URIPROTO | Correspond aux lettres, éventuellement suivies d'un caractère plus (+) et de lettres supplémentaires ou de caractères plus (+) | 20 |
Entrée : Modèle : Sortie : |
| URIPATH | Correspond au composant de chemin d'un URI | 20 |
Entrée : Modèle : Sortie : |
| URIPARAM | Correspond aux paramètres de requête d'URL | 5 |
Entrée : Modèle : Sortie : |
| PARAMÈTRE URIPATH | Correspond à un chemin d'URI éventuellement suivi de paramètres de requête | 5 |
Entrée : Modèle : Sortie : |
| URI | Correspond à un URI complet | 5 |
Entrée : Modèle : Sortie : |
Schémas de plage de dates et d'heures
| Motif Grok | Description | Limite maximale de motifs | Exemple |
|---|---|---|---|
| MONTH | Correspond aux noms de mois anglais complets ou abrégés sous forme de mots entiers | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| MONTHNUM | Correspond aux numéros des mois compris entre 1 et 12, avec un zéro en tête optionnel pour les mois à un chiffre. | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| MONTHNUM2 | Correspond aux numéros de mois à deux chiffres compris entre 01 et 12. | 20 |
Entrée : Modèle : Sortie : |
| JOUR DU MOIS | Correspond au jour du mois compris entre 1 et 31, avec un zéro en tête optionnel. | 20 |
Entrée : Modèle : Sortie : |
| YEAR | Correspond à l'année en deux ou quatre chiffres | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| DAY | Correspond aux noms de jour complets ou abrégés. | 20 |
Entrée : Modèle : Sortie : |
| HOUR | Correspond à l'heure au format 24 heures avec un zéro (0) 0-23 en tête en option. | 20 |
Entrée : Modèle : Sortie : |
| MINUTE | Correspond aux minutes (00-59). | 20 |
Entrée : Modèle : Sortie : |
| SECOND | Correspond à un nombre représentant les secondes (0) 0 à 60, éventuellement suivi d'un point décimal ou de deux points et d'un ou plusieurs chiffres pour des fractions de minutes | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| TIME | Correspond à un format horaire avec des heures, des minutes et des secondes au format (H) H:mm : (s) s. Les secondes incluent les secondes intercalaires (0) de 0 à 60. | 20 |
Entrée : Modèle : Sortie : |
| DATE_US | Correspond à une date au format (M) M/ (d) d/ (yy) yy ou (M) M- (d) d- (yy) yy. | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| DATE_EU | Correspond à la date au format (d) d/ (M) M/ (yy) yy, (d) d- (M) M- (yy) yy, ou (d) d. (M) M. (yy) yy. | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| ISO8601_FUSEAU HORAIRE | Correspond au décalage UTC « Z » ou au décalage de fuseau horaire avec deux points optionnels au format [+-] (H) H (:) mm. | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| ISO8601_SECONDE | Correspond à un nombre représentant les secondes (0) de 0 à 60, éventuellement suivi d'un point décimal ou de deux points et d'un ou plusieurs chiffres pour des fractions de secondes | 20 |
Entrée : Modèle : Sortie : |
| HORODATAGE_ 01 ISO86 | Correspond au format date/heure ISO86 01 (yy) yy- (M) M- (d) dT (H) H:mm : ((s) s) (Z| [+-] (H) H:mm) avec les secondes et le fuseau horaire facultatifs. | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| DATE | Correspond à une date au format américain en utilisant % {DATE_US} ou au format européen en utilisant % {DATE_EU} | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| HORODATAGE | Correspond à % {DATE} suivi du modèle % {TIME}, séparé par un espace ou un trait d'union. | 20 |
Entrée : Modèle : Sortie : |
| TZ | Correspond aux abréviations de fuseau horaire courantes (PST, PDT, MST, MDT, CST CDT, EST, EDT, UTC). | 20 |
Entrée : Modèle : Sortie : |
| DATESTAMP_ RFC822 | Correspond à la date et à l'heure au format : Jour MonthName (D) D (YY) YY (H) H:mm :( s) s Fuseau horaire | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| DATESTAMP_ RFC2822 | Correspond au format RFC2822 date-heure : Jour, (d) d MonthName (yy) yy (H) H:mm :( s) s Z| [+-] (H) H:mm | 20 |
Entrée : Modèle : Sortie : Entrée : Modèle : Sortie : |
| DATESTAMP_AUTRE | Correspond à la date et à l'heure au format : Jour MonthName (d) d (H) H:mm :( s) s Fuseau horaire (yy) yy | 20 |
Entrée : Modèle : Sortie : |
| DATESTAMP_EVENTLOG | Correspond au format date/heure compact sans séparateurs : (yy) YYmm (d) d (H) Hmm (s) s | 20 |
Entrée : Modèle : Sortie : |
Motifs en bois
| Motif Grok | Description | Limite maximale de motifs | Exemple |
|---|---|---|---|
| NIVEAU DU JOURNAL | Correspond aux niveaux de log standard dans différentes capitalisations et abréviations, notamment les suivantes :Alert/ALERT,Trace/TRACE,Debug/DEBUG,,Notice/NOTICE,Info/INFO,Warn/Warning/WARN/WARNING,Err/Error/ERR/ERROR, Crit/Critical/CRIT/CRITICAL Fatal/FATAL Severe/SEVERE Emerg/Emergency/EMERG/EMERGENCY |
20 |
Entrée : Modèle : Sortie : |
| HTTPDATE | Correspond au format de date et d'heure souvent utilisé dans les fichiers journaux. Format : (d) MonthName d/ (yy) yy :( H) H:mm :( s) s Fuseau horaire : correspond aux noms de mois anglais complets ou abrégés (exemple MonthName : « Jan » ou « January ») Fuseau horaire : Correspond au modèle % {INT} grok | 20 |
Entrée : Modèle : Sortie : |
| HORODATAGE SYSLOG | Correspond au format de date avec MonthName (d) d (H) H:mm :( s) s MonthName : correspond aux noms de mois anglais complets ou abrégés (exemple : « Jan » ou « January ») | 20 |
Entrée : Modèle : Sortie : |
| PROG | Correspond à un nom de programme composé d'une chaîne de lettres, de chiffres, de points, d'un trait de soulignement, d'une barre oblique, d'un signe de pourcentage et de tirets. | 20 |
Entrée : Modèle : Sortie : |
| SYSLOGPROG | Correspond au modèle PROG grok éventuellement suivi d'un identifiant de processus entre crochets. | 20 |
Entrée : Modèle : Sortie : |
| HÔTE SYSLOG | Correspond à un modèle % {HOST} ou % {IP} | 5 |
Entrée : Modèle : Sortie : |
| INSTALLATION SYSLOG | Correspond à la priorité Syslog au format décimal. La valeur doit être placée entre crochets (<>). | 20 |
Entrée : Modèle : Sortie : |
Motifs courants de rainurage en rondins
Vous pouvez utiliser des modèles de grok personnalisés prédéfinis pour correspondre aux formats de journal Apache, NGINX et Syslog Protocol (RFC 5424). Lorsque vous utilisez ces modèles spécifiques, ils doivent être les premiers modèles de votre configuration correspondante, et aucun autre modèle ne peut les précéder. De plus, vous ne pouvez les suivre qu'avec une seule donnée. Modèle GREEDYDATA ou GREEDYDATA_MULTILINE.
| Modèle grok | Description | Limite maximale de motifs |
|---|---|---|
|
JOURNAL D'ACCÈS APACHE |
Correspond aux journaux d'accès Apache |
1 |
|
JOURNAL D'ACCÈS NGINX |
Correspond aux journaux d'accès NGINX |
1 |
|
SYSLOG5424 |
Correspond aux journaux du protocole Syslog (RFC 5424) |
1 |
Vous trouverez ci-dessous des exemples valides et non valides d'utilisation de ces modèles de format de journal courants.
"%{NGINX_ACCESS_LOG} %{DATA}" // Valid "%{SYSLOG5424}%{DATA:logMsg}" // Valid "%{APACHE_ACCESS_LOG} %{GREEDYDATA:logMsg}" // Valid "%{APACHE_ACCESS_LOG} %{SYSLOG5424}" // Invalid (multiple common log patterns used) "%{NGINX_ACCESS_LOG} %{NUMBER:num}" // Invalid (Only GREEDYDATA and DATA patterns are supported with common log patterns) "%{GREEDYDATA:logMsg} %{SYSLOG5424}" // Invalid (GREEDYDATA and DATA patterns are supported only after common log patterns)
Exemples de formats de journaux courants
Exemple de journal Apache
Exemple de journal :
127.0.0.1 - - [03/Aug/2023:12:34:56 +0000] "GET /page.html HTTP/1.1" 200 1234
Transformateur :
[ { "grok": { "match": "%{APACHE_ACCESS_LOG}" } } ]
Sortie :
{ "request": "/page.html", "http_method": "GET", "status_code": 200, "http_version": "1.1", "response_size": 1234, "remote_host": "127.0.0.1", "timestamp": "2023-08-03T12:34:56Z" }
Exemple de journal NGINX
Exemple de journal :
192.168.1.100 - Foo [03/Aug/2023:12:34:56 +0000] "GET /account/login.html HTTP/1.1" 200 42 "https://www.amazon.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
Transformateur :
[ { "grok": { "match": "%{NGINX_ACCESS_LOG}" } } ]
Sortie :
{ "request": "/account/login.html", "referrer": "https://www.amazon.com/", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", "http_method": "GET", "status_code": 200, "auth_user": "Foo", "http_version": "1.1", "response_size": 42, "remote_host": "192.168.1.100", "timestamp": "2023-08-03T12:34:56Z" }
Exemple de journal du protocole Syslog (RFC 5424)
Exemple de journal :
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource= "Application" eventID="1011"][examplePriority@32473 class="high"]
Transformateur :
[ { "grok": { "match": "%{SYSLOG5424}" } } ]
Sortie :
{ "pri": 165, "version": 1, "timestamp": "2003-10-11T22:14:15.003Z", "hostname": "mymachine.example.com", "app": "evntslog", "msg_id": "ID47", "structured_data": "exampleSDID@32473 iut=\"3\" eventSource= \"Application\" eventID=\"1011\"", "message": "[examplePriority@32473 class=\"high\"]" }
csv
Le processeur csv analyse les valeurs séparées par des virgules (CSV) des événements du journal en colonnes.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
source |
Chemin d'accès au champ du journal des événements qui sera analysé |
Non |
|
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
delimiter |
Le caractère utilisé pour séparer chaque colonne dans le journal des valeurs d'origine séparées par des virgules |
Non |
|
Longueur maximale : 1 sauf si la valeur est |
|
Citer un personnage |
Caractère utilisé comme qualificatif de texte pour une seule colonne de données |
Non |
|
Longueur maximale : 1 |
|
columns |
Liste des noms à utiliser pour les colonnes de l'événement du journal transformé. |
Non |
|
Nombre maximum de colonnes CSV : 100 Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
Le réglage delimiter sur « » \t séparera chaque colonne sur un caractère de tabulation et \t séparera chaque colonne sur un seul caractère d'espace.
Exemple
Supposons qu'une partie d'un événement de journal ingéré ressemble à ceci :
'Akua Mansa':28:'New York: USA'
Supposons que nous n'utilisions que le processeur CSV :
[ { "csv": { "delimiter": ":", "quoteCharacter": "'" } } ]
L'événement du journal transformé serait le suivant.
{ "column_1": "Akua Mansa", "column_2": "28", "column_3": "New York: USA" }
parseKeyValue
Utilisez le parseKeyValueprocesseur pour analyser un champ spécifié en paires clé-valeur. Vous pouvez personnaliser le processeur pour analyser les informations des champs à l'aide des options suivantes.
| Champ | Description | Obligatoire ? | Par défaut | Restrictions |
|---|---|---|---|---|
|
source |
Chemin d'accès au champ du journal des événements qui sera analysé |
Non |
|
Longueur maximale : 128 Profondeur maximale des touches imbriquées : 3 |
|
destination |
Le champ de destination dans lequel placer les paires clé-valeur extraites |
Non |
Longueur maximale : 128 |
|
|
Délimiteur de champs |
Chaîne de délimitation de champs utilisée entre les paires clé-valeur dans les événements du journal d'origine |
Non |
|
Longueur maximale : 128 |
|
keyValueDelimiter |
Chaîne de délimitation à utiliser entre la clé et la valeur dans chaque paire dans l'événement du journal transformé |
Non |
|
Longueur maximale : 128 |
|
nonMatchValue |
Une valeur à insérer dans le champ de valeur du résultat, lorsqu'une paire clé-valeur n'est pas correctement divisée. |
Non |
Longueur maximale : 128 |
|
|
keyPrefix |
Si vous souhaitez ajouter un préfixe à toutes les clés transformées, spécifiez-le ici. |
Non |
Longueur maximale : 128 |
|
|
overwriteIfExists |
S'il faut remplacer la valeur si la clé de destination existe déjà |
Non |
|
Exemple
Prenons l'exemple d'événement de journal suivant :
key1:value1!key2:value2!key3:value3!key4
Supposons que nous utilisions la configuration de processeur suivante :
[ { "parseKeyValue": { "destination": "new_key", "fieldDelimiter": "!", "keyValueDelimiter": ":", "nonMatchValue": "defaultValue", "keyPrefix": "parsed_" } } ]
L'événement du journal transformé serait le suivant.
{ "new_key": { "parsed_key1": "value1", "parsed_key2": "value2", "parsed_key3": "value3", "parsed_key4": "defaultValue" } }