Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Processori configurabili di tipo parser
Questa sezione contiene informazioni sui processori di analisi dei dati configurabili che è possibile utilizzare in un trasformatore di eventi di registro.
Indice
parseJSON
Il processore ParseJSON analizza gli eventi di registro JSON e inserisce le coppie chiave-valore JSON estratte nella destinazione. Se non si specifica una destinazione, il processore posiziona la coppia chiave-valore sotto il nodo radice. Quando si utilizza parseJSON come primo processore, è necessario analizzare l'intero evento di registro utilizzandolo @message come campo di origine. Dopo l'analisi JSON iniziale, è possibile manipolare campi specifici nei processori successivi.
Il @message contenuto originale non viene modificato, le nuove chiavi vengono aggiunte al messaggio.
| Campo | Description | Obbligatorio? | Predefinito | Limits |
|---|---|---|---|---|
|
origine |
Percorso del campo nel registro dell'evento che verrà analizzato. Usa la notazione a punti per accedere ai campi secondari. Ad esempio, store.book |
No |
|
Lunghezza massima: 128. Profondità massima della chiave annidata: 3 |
|
destinazione |
Il campo di destinazione del file JSON analizzato |
No |
|
Lunghezza massima: 128. Profondità massima della chiave annidata: 3 |
Esempio
Supponiamo che un evento di registro importato abbia il seguente aspetto:
{ "outer_key": { "inner_key": "inner_value" } }
Quindi se abbiamo questo processore ParseJson:
[ { "parseJSON": { "destination": "new_key" } } ]
L'evento di registro trasformato sarebbe il seguente.
{ "new_key": { "outer_key": { "inner_key": "inner_value" } } }
grok
Usa il processore grok per analizzare e strutturare i dati non strutturati utilizzando il pattern matching. Questo processore può anche estrarre campi dai messaggi di registro.
| Campo | Description | Obbligatorio? | Predefinito | Limits | Note |
|---|---|---|---|---|---|
|
origine |
Percorso del campo su cui applicare la corrispondenza Grok |
No |
|
Lunghezza massima: 128. Profondità massima della chiave annidata: 3 |
|
|
match |
Il pattern grok da confrontare con l'evento log |
Sì |
Lunghezza massima: 512 Schemi di gruppo massimi: 20 Alcuni tipi di pattern grok hanno limiti di utilizzo individuali. Qualsiasi combinazione dei seguenti modelli può essere utilizzata fino a cinque volte: {URI, URIPARAM, URIPATHPARAM, SPACE, DATA, GREEDYDATA, GREEDYDATA_MULTILINE} I pattern Grok non supportano le conversioni di tipo. Per i modelli di formato di log comuni (APACHE_ACCESS_LOG, NGINX_ACCESS_LOG, SYSLOG5424), è supportato l'inclusione solo dei modelli DATA, GREEDYDATA o GREEDYDATA_MULTILINE dopo il modello di log comune. |
Struttura di un pattern Grok
Questa è la struttura del pattern grok supportata:
%{PATTERN_NAME:FIELD_NAME}
-
PATTERN_NAME: si riferisce a un'espressione regolare predefinita per la corrispondenza di un tipo specifico di dati. Sono supportati solo i modelli grok predefiniti. La creazione di modelli personalizzati non è consentita.
-
FIELD_NAME: assegna un nome al valore estratto.
FIELD_NAMEè facoltativo, ma se non si specifica questo valore, i dati estratti verranno eliminati dall'evento di registro trasformato. SeFIELD_NAMEutilizza la notazione punteggiata (ad esempio, «parent.child»), viene considerata un percorso JSON. -
Conversione dei tipi: le conversioni di tipo esplicite non sono supportate. Usa il TypeConverter processore per convertire il tipo di dati di qualsiasi valore estratto da grok.
Per creare espressioni di corrispondenza più complesse, puoi combinare diversi modelli grok. È possibile combinare fino a 20 pattern grok per abbinare un evento log. Ad esempio, questa combinazione di pattern %{NUMBER:timestamp} [%{NUMBER:db}
%{IP:client_ip}:%{NUMBER:client_port}] %{GREEDYDATA:data} può essere utilizzata per estrarre campi da una voce di slow log di Redis come questa:
1629860738.123456 [0 127.0.0.1:6379] "SET" "key1" "value1"
Esempi di Grok
Esempio 1: Usa grok per estrarre un campo da log non strutturati
Registro di esempio:
293750 server-01.internal-network.local OK "[Thread-000] token generated"
Trasformatore utilizzato:
[ { "grok": { "match": "%{NUMBER:version} %{HOSTNAME:hostname} %{NOTSPACE:status} %{QUOTEDSTRING:logMsg}" } } ]
Output:
{ "version": "293750", "hostname": "server-01.internal-network.local", "status": "OK", "logMsg": "[Thread-000] token generated" }
Registro di esempio:
23/Nov/2024:10:25:15 -0900 172.16.0.1 200
Trasformatore utilizzato:
[ { "grok": { "match": "%{HTTPDATE:timestamp} %{IPORHOST:clientip} %{NUMBER:response_status}" } } ]
Output:
{ "timestamp": "23/Nov/2024:10:25:15 -0900", "clientip": "172.16.0.1", "response_status": "200" }
Esempio 2: usa grok in combinazione con parseJSON per estrarre campi da un evento di registro JSON
Registro di esempio:
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1" }
Trasformatore utilizzato:
[ { "parseJSON": {} }, { "grok": { "source": "logMsg", "match": "%{WORD:http_method} %{NOTSPACE:request} HTTP/%{NUMBER:http_version}" } } ]
Output:
{ "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" }
Esempio 3: pattern Grok con annotazione punteggiata in FIELD_NAME
Registro di esempio:
192.168.1.1 GET /index.html?param=value 200 1234
Trasformatore utilizzato:
[ { "grok": { "match": "%{IP:client.ip} %{WORD:method} %{URIPATHPARAM:request.uri} %{NUMBER:response.status} %{NUMBER:response.bytes}" } } ]
Output:
{ "client": { "ip": "192.168.1.1" }, "method": "GET", "request": { "uri": "/index.html?param=value" }, "response": { "status": "200", "bytes": "1234" } }
Schemi grok supportati
Le tabelle seguenti elencano i modelli supportati dal grok processore.
Schemi di gruppo generali
| Modello Grok | Description | Limite massimo del pattern | Esempio |
|---|---|---|---|
| USERNAME o USER | Corrisponde a uno o più caratteri che possono includere lettere minuscole (a-z), lettere maiuscole (A-Z), cifre (0-9), punti (.), caratteri di sottolineatura (_) o trattini (-) | 20 |
Input: Modello: Uscita: |
| INT | Corrisponde a un segno più o meno opzionale seguito da una o più cifre. | 20 |
Ingresso: Modello: Uscita: |
| BASE10 NUM | Corrisponde a un numero intero o a virgola mobile con segno e virgola decimale opzionali | 20 |
Ingresso: Modello: Uscita: |
| BASE16NUM | Corrisponde ai numeri decimali ed esadecimali con un segno opzionale (+ o -) e un prefisso 0x opzionale | 20 |
Ingresso: Modello: Uscita: |
| PUNTO | Corrisponde a numeri interi positivi senza zeri iniziali, costituiti da una o più cifre (1-9 seguito da 0-9) | 20 |
Ingresso: Modello: Uscita: |
| NONNEGINT | Corrisponde a qualsiasi numero intero (composto da una o più cifre da 0 a 9) compresi zero e numeri con zeri iniziali. | 20 |
Ingresso: Modello: Uscita: |
| PAROLA | Corrisponde a parole intere composte da uno o più caratteri di parola (\ w), incluse lettere, cifre e caratteri di sottolineatura | 20 |
Ingresso: Modello: Uscita: |
| NON SPAZIO | Corrisponde a uno o più caratteri diversi dagli spazi bianchi. | 5 |
Ingresso: Modello: Uscita: |
| SPACE | Corrisponde a zero o più caratteri di spazio bianco. | 5 |
Ingresso: Modello: Uscita: |
| DATA | Corrisponde a qualsiasi carattere (eccetto la nuova riga) zero o più volte, non è avido. | 5 |
Ingresso: Modello: Uscita: |
| DATI AVIDI | Corrisponde a qualsiasi carattere (eccetto la nuova riga) zero o più volte, greedy. | 5 |
Ingresso: Modello: Uscita: |
| GREEDYDATA_MULTILINE | Corrisponde a qualsiasi carattere (inclusa la nuova riga) zero o più volte, greedy. | 1 |
Input:
Modello: Uscita: |
| STRINGA TRA VIRGOLETTE | Corrisponde alle stringhe tra virgolette (virgolette singole o doppie) ai caratteri con escape. | 20 |
Ingresso: Modello: Uscita: |
| UUID | Corrisponde a un formato UUID standard: 8 caratteri esadecimali, seguiti da tre gruppi di 4 caratteri esadecimali e termina con 12 caratteri esadecimali, tutti separati da trattini. | 20 |
Ingresso: Modello: Uscita: |
| URNA | Corrisponde alla sintassi URN (Uniform Resource Name). | 20 |
Ingresso: Modello: Uscita: |
AWS modelli grok
| Pattern | Description | Limite massimo del modello | Esempio |
|---|---|---|---|
|
ARN |
Corrisponde AWS ad Amazon Resource Names (ARNs), acquisendo la partizione ( |
5 |
Ingresso: Modello: Uscita: |
Schemi di gruppo di rete
| Modello Grok | Description | Limite massimo del pattern | Esempio |
|---|---|---|---|
| CISCOMAC | Corrisponde a un indirizzo MAC in formato esadecimale 4-4-4. | 20 |
Ingresso: Modello: Uscita: |
| WINDOWS MAC | Corrisponde a un indirizzo MAC in formato esadecimale con trattini | 20 |
Ingresso: Modello: Uscita: |
| MAC COMUNE | Corrisponde a un indirizzo MAC in formato esadecimale con due punti. | 20 |
Ingresso: Modello: Uscita: |
| MAC | Corrisponde a uno dei pattern grok CISCOMAC, WINDOWSMAC o COMMONMAC | 20 |
Ingresso: Modello: Uscita: |
| IPV6 | Corrisponde IPv6 agli indirizzi, inclusi i moduli compressi e gli indirizzi IPv4 mappati IPv6 . | 5 |
Ingresso: Modello: Uscita: |
| IPV4 | Corrisponde a un IPv4 indirizzo. | 20 |
Ingresso: Modello: Uscita: |
| IP | IPv6 Corrisponde agli indirizzi supportati da% {IPv6} o IPv4 agli indirizzi supportati da% {IPv4} | 5 |
Ingresso: Modello: Uscita: |
| HOSTNAME o HOST | Corrisponde ai nomi di dominio, inclusi i sottodomini | 5 |
Ingresso: Modello: Uscita: |
| IP O HOST | Corrisponde a un nome host o a un indirizzo IP | 5 |
Ingresso: Modello: Uscita: |
| HOSTPORT | Corrisponde a un indirizzo IP o a un nome host come supportato dal pattern% {IPORHOST} seguito da due punti e da un numero di porta, che nell'output registra la porta come «PORT». | 5 |
Ingresso: Modello: Uscita: |
| URIHOST | Corrisponde a un indirizzo IP o a un nome host, come supportato dal pattern% {IPORHOST}, seguito facoltativamente da due punti e da un numero di porta, identificando la porta come «porta», se presente. | 5 |
Ingresso: Modello: Uscita: |
Schemi di gruppi di tracciati
| Modello Grok | Description | Limite massimo del pattern | Esempio |
|---|---|---|---|
| UNIXPATH | Corrisponde ai percorsi degli URL, inclusi potenzialmente i parametri di query. | 20 |
Ingresso: Modello: Uscita: |
| PERCORSO VINCENTE | Corrisponde ai percorsi dei file di Windows. | 5 |
Ingresso: Modello: Uscita: |
| PATH | Corrisponde ai percorsi dei file URL o Windows | 5 |
Ingresso: Modello: Uscita: |
| TTY | Corrisponde ai percorsi dei dispositivi Unix per terminali e pseudo-terminali. | 20 |
Ingresso: Modello: Uscita: |
| URIPROTO | Corrisponde alle lettere, seguite facoltativamente da un carattere più (+) e lettere aggiuntive o caratteri più (+) | 20 |
Ingresso: Modello: Uscita: |
| URIPATA | Corrisponde al componente del percorso di un URI | 20 |
Ingresso: Modello: Uscita: |
| URIPARAM | Corrisponde ai parametri della query URL | 5 |
Ingresso: Modello: Uscita: |
| PARAMETRO URIPATH | Corrisponde a un percorso URI seguito facoltativamente da parametri di query | 5 |
Ingresso: Modello: Uscita: |
| URI | Corrisponde a un URI completo | 5 |
Ingresso: Modello: Uscita: |
Schemi grok di data e ora
| Modello Grok | Description | Limite massimo del pattern | Esempio |
|---|---|---|---|
| MESE | Corrisponde ai nomi completi o abbreviati dei mesi inglesi a parole intere | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| NUMERO DI MESI | Corrisponde ai numeri dei mesi da 1 a 12, con lo zero iniziale opzionale per i mesi a una cifra. | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| MONTHNUM2 | Corrisponde ai numeri dei mesi a due cifre compresi tra 01 e 12. | 20 |
Ingresso: Modello: Uscita: |
| MESE/GIORNO | Corrisponde al giorno del mese compreso tra 1 e 31, con zero iniziale opzionale. | 20 |
Ingresso: Modello: Uscita: |
| ANNO | Corrisponde all'anno in due o quattro cifre | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| GIORNO | Corrisponde ai nomi dei giorni completi o abbreviati. | 20 |
Ingresso: Modello: Uscita: |
| ORA | Corrisponde all'ora nel formato a 24 ore con uno zero iniziale opzionale (0) 0-23. | 20 |
Ingresso: Modello: Uscita: |
| MINUTO | Corrisponde ai minuti (00-59). | 20 |
Ingresso: Modello: Uscita: |
| SECOND | Corrisponde a un numero che rappresenta i secondi (0) 0-60, seguito facoltativamente da un punto decimale o due punti e da una o più cifre per i minuti frazionari | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| TIME | Corrisponde a un formato orario con ore, minuti e secondi nel formato (H) H:mm :( s) s. I secondi includono il secondo intercalare (0) 0-60. | 20 |
Ingresso: Modello: Uscita: |
| DATA_US | Corrisponde a una data nel formato (M) M/ (d) d/ (yy) yy o (M) M- (d) d- (yy) yy. | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| DATE_EU | Corrisponde alla data nel formato (d) d/ (M) M/ (yy) yy, (d) d- (M) M- (yy) yy o (d) d. (M) M. (yy) yy. | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| ISO8601_FUSO ORARIO | Corrisponde all'offset UTC 'Z' o all'offset del fuso orario con due punti opzionali nel formato [+-] (H) H (:) mm. | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| ISO8601_SECONDI | Corrisponde a un numero che rappresenta i secondi (0) 0-60, seguito facoltativamente da un punto decimale o due punti e da una o più cifre per frazioni di secondo | 20 |
Ingresso: Modello: Uscita: |
| TIMESTAMP_ 01 ISO86 | Corrisponde al formato ISO86 01 datetime (yy) yy- (M) M- (d) dT (H) H:mm :( (s) s) (Z| [+-] (H) H:mm) con secondi e fuso orario opzionali. | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| DATE | Corrisponde a una data nel formato USA utilizzando% {DATE_US} o nel formato UE utilizzando% {DATE_EU} | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| TIMBRO DATARIO | Corrisponde a% {DATE} seguito dallo schema% {TIME}, separato da uno spazio o da un trattino. | 20 |
Ingresso: Modello: Uscita: |
| TZ | Corrisponde alle abbreviazioni dei fusi orari comuni (PST, PDT, MST, MDT, CST CDT, EST, EDT, UTC). | 20 |
Ingresso: Modello: Uscita: |
| DATESTAMP_ RFC822 | Corrisponde a data e ora nel formato: Day MonthName (D) D (YY) YY (H) H:mm :( s) s Timezone | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| DATESTAMP_ RFC2822 | Corrisponde al formato RFC2822 data-ora: Day, (d) d (yy) yy MonthName (H) H:mm :( s) s Z| [+-] (H) H:mm | 20 |
Ingresso: Modello: Uscita: Ingresso: Modello: Uscita: |
| DATESTAMP_OTHER | Corrisponde a data e ora nel formato: Giorno MonthName (d) d (H) H:mm :( s) s Fuso orario (yy) yy | 20 |
Ingresso: Modello: Uscita: |
| DATESTAMP_EVENTLOG | Corrisponde al formato datetime compatto senza separatori: (yy) yYmm (d) d (H) Hmm (s) s | 20 |
Ingresso: Modello: Uscita: |
Schemi di gruppo logaritmici
| Modello Grok | Description | Limite massimo del pattern | Esempio |
|---|---|---|---|
| LIVELLO DI REGISTRO | Corrisponde ai livelli di log standard in diverse lettere maiuscole e abbreviazioni, tra cui: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 |
Ingresso: Modello: Uscita: |
| HTTP: DATA | Corrisponde al formato di data e ora spesso utilizzato nei file di registro. Formato: (d) d/MonthName/(yy) yy :( H) H:mm :( s) s Fuso orario: corrisponde ai nomi completi o abbreviati dei mesi in inglese (esempio MonthName: «Jan» o «January») Fuso orario: corrisponde al modello% {INT} grok | 20 |
Ingresso: Modello: Uscita: |
| TIMESTAMP SYSLOG | Corrisponde al formato della data con MonthName (d) d (H) H:mm :( s) s: corrisponde ai nomi completi o abbreviati dei mesi in inglese (esempio MonthName: «Jan» o «January») | 20 |
Ingresso: Modello: Uscita: |
| PROG | Corrisponde al nome di un programma composto da una stringa di lettere, cifre, punti, trattini bassi, barra, segno di percentuale e trattini. | 20 |
Ingresso: Modello: Uscita: |
| SYSLOGPROG | Corrisponde al pattern PROG grok seguito facoltativamente da un ID di processo tra parentesi quadre. | 20 |
Ingresso: Modello: Uscita: |
| SYSLOGHOST | Corrisponde a uno schema% {HOST} o% {IP} | 5 |
Ingresso: Modello: Uscita: |
| IMPIANTO SYSLOG | Corrisponde alla priorità syslog in formato decimale. Il valore deve essere racchiuso tra parentesi angolari (<>). | 20 |
Ingresso: Modello: Uscita: |
Schemi di log grok comuni
È possibile utilizzare modelli grok personalizzati predefiniti per abbinare i formati di registro Apache, NGINX e Syslog Protocol (RFC 5424). Quando si utilizzano questi modelli specifici, devono essere i primi modelli nella configurazione corrispondente e nessun altro modello può precederli. Inoltre, puoi seguirli solo con esattamente un DATO. Pattern GREEDYDATA o GREEDYDATA_MULTILINE.
| Pattern grok | Description | Limite massimo del modello |
|---|---|---|
|
APACHE_ACCESS_LOG |
Corrisponde ai log di accesso di Apache |
1 |
|
NGINX_ACCESS_LOG |
Corrisponde ai log di accesso NGINX |
1 |
|
SYSLOG5424 |
Corrisponde ai log del protocollo Syslog (RFC 5424) |
1 |
Di seguito sono riportati esempi validi e non validi per l'utilizzo di questi modelli di formato di registro comuni.
"%{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)
Esempi di formati di log comuni
Esempio di log di Apache
Registro di esempio:
127.0.0.1 - - [03/Aug/2023:12:34:56 +0000] "GET /page.html HTTP/1.1" 200 1234
Trasformatore:
[ { "grok": { "match": "%{APACHE_ACCESS_LOG}" } } ]
Output:
{ "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" }
Esempio di log NGINX
Registro di esempio:
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"
Trasformatore:
[ { "grok": { "match": "%{NGINX_ACCESS_LOG}" } } ]
Output:
{ "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" }
Esempio di log del protocollo Syslog (RFC 5424)
Registro di esempio:
<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"]
Trasformatore:
[ { "grok": { "match": "%{SYSLOG5424}" } } ]
Output:
{ "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
Il processore csv analizza i valori separati da virgole (CSV) dagli eventi di registro in colonne.
| Campo | Description | Obbligatorio? | Predefinito | Limits |
|---|---|---|---|---|
|
origine |
Percorso del campo nell'evento di registro che verrà analizzato |
No |
|
Lunghezza massima: 128. Profondità massima della chiave annidata: 3 |
|
delimitatore |
Il carattere utilizzato per separare ogni colonna nell'evento di registro dei valori separati da virgole originale |
No |
|
Lunghezza massima: 1 a meno che il valore non sia o |
|
Cita carattere |
Carattere utilizzato come qualificatore di testo per una singola colonna di dati |
No |
|
Lunghezza massima: 1 |
|
columns |
Elenco di nomi da utilizzare per le colonne dell'evento di registro trasformato. |
No |
|
Numero massimo di colonne CSV: 100 Lunghezza massima: 128. Profondità massima della chiave annidata: 3 |
L'impostazione delimiter su \t separerà ogni colonna su un carattere di tabulazione e \t separerà ogni colonna su un singolo carattere di spazio.
Esempio
Supponiamo che parte di un evento di registro importato abbia il seguente aspetto:
'Akua Mansa':28:'New York: USA'
Supponiamo di utilizzare solo il processore csv:
[ { "csv": { "delimiter": ":", "quoteCharacter": "'" } } ]
L'evento di registro trasformato sarebbe il seguente.
{ "column_1": "Akua Mansa", "column_2": "28", "column_3": "New York: USA" }
parseKeyValue
Utilizzate il parseKeyValueprocessore per analizzare un campo specificato in coppie chiave-valore. È possibile personalizzare il processore per analizzare le informazioni sui campi con le seguenti opzioni.
| Campo | Description | Obbligatorio? | Predefinito | Limits |
|---|---|---|---|---|
|
origine |
Percorso del campo nel registro dell'evento che verrà analizzato |
No |
|
Lunghezza massima: 128. Profondità massima della chiave annidata: 3 |
|
destinazione |
Il campo di destinazione in cui inserire le coppie chiave-valore estratte |
No |
Lunghezza massima: 128. |
|
|
FieldDelimiter |
La stringa delimitatrice di campo utilizzata tra coppie chiave-valore negli eventi del registro originale |
No |
|
Lunghezza massima: 128. |
|
keyValueDelimiter |
La stringa delimitatrice da utilizzare tra la chiave e il valore in ogni coppia nell'evento di registro trasformato |
No |
|
Lunghezza massima: 128. |
|
nonMatchValue |
Un valore da inserire nel campo del valore del risultato, quando una coppia chiave-valore non viene divisa correttamente. |
No |
Lunghezza massima: 128. |
|
|
keyPrefix |
Se vuoi aggiungere un prefisso a tutte le chiavi trasformate, specificalo qui. |
No |
Lunghezza massima: 128. |
|
|
overwriteIfExists |
Se sovrascrivere il valore se la chiave di destinazione esiste già |
No |
|
Esempio
Prendiamo il seguente esempio di evento di registro:
key1:value1!key2:value2!key3:value3!key4
Supponiamo di utilizzare la seguente configurazione del processore:
[ { "parseKeyValue": { "destination": "new_key", "fieldDelimiter": "!", "keyValueDelimiter": ":", "nonMatchValue": "defaultValue", "keyPrefix": "parsed_" } } ]
L'evento di registro trasformato sarebbe il seguente.
{ "new_key": { "parsed_key1": "value1", "parsed_key2": "value2", "parsed_key3": "value3", "parsed_key4": "defaultValue" } }