Converti testo non strutturato in JSON
In IBM® Cloud Logs, puoi utilizzare la regola Parse per convertire il testo non strutturato in 1 o più campi JSON.
Prima di iniziare
Le regole di analisi sono organizzate all'interno di Gruppi regole. Ogni gruppo ha un nome e una serie di regole con una relazione logica tra loro. I log vengono elaborati in base all'ordine del gruppo di regole (dall'inizio alla fine).
Vengono quindi elaborati in ordine di regole all'interno del gruppo di regole e in base agli operatori logici tra loro (AND/OR). Le regole consentono di elaborare, analizzare e ristrutturare i dati di log per preparare il monitoraggio
e l'analisi. Per ulteriori informazioni, consultare Gestione dei gruppi di regole.
Utilizzo dei gruppi acquisiti denominati per la definizione di nuovi campi
La regola di analisi utilizza i gruppi di cattura denominati RegEx per definire nuovi campi.
- I gruppi acquisiti diventano i campi di log analizzati.
- Il valore associato a ciascun gruppo diventa il valore del campo.
- RegEx non deve necessariamente corrispondere all'intero log.
- Solo i gruppi di cattura denominati RegEx (i valori all'interno di
< >) e il valore che acquisiscono fanno parte del log ricostruito.
Configurazione di una regola di analisi
Completare la seguente procedura per creare un gruppo di regole con 1 regola di analisi:
-
Fai clic sull'icona Data pipeline
> Parsing rules e fai clic su New Rule Group.
-
Nella sezione Dettagli, immettere il Nome gruppo di regole e la Descrizione gruppo di regole.
-
Nella sezione Matcher regole, configura le applicazioni, i sottosistemi e le gravità che definiscono i log su cui applicare le regole incluse nel gruppo di regole.
-
Nella sezione Regole, selezionare Analizza
.
-
Immettere un nome.
-
Facoltativamente, immettere una descrizione.
-
Selezionare un campo sorgente. Questo è il campo a cui viene applicato RegEx.
-
Selezionare un campo di destinazione. Questo è il campo che verrà compilato con i risultati dell'applicazione dell'espressione RegEx.
-
Immettere l' Espressione regolare (RegEx).
-
Attivare / disattivare lo stato su ATTIVO se si desidera che la regola sia abilitata.
-
-
Aggiungere ulteriori gruppi di regole facendo clic su Aggiungi regola e selezionando il tipo di regola desiderato. Attivare AND/OR per selezionare come si desidera che vengano elaborate le regole aggiuntive.
-
Fare clic su Crea gruppo di regole.
Conversioni di log di esempio
Il seguente esempio prende un log di errori di tipo Heroku L/H che viene inviato da Heroku come un log non strutturato e lo converte in log JSON.
Il log originale è:
sock=client at=warning code=H27 desc="Client Request Interrupted" method=POST path="/submit/" host=myapp.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=0ms status=499 bytes=0
RegEx è:
^(sock=)?(?P<sock>(\S*))\s*at=(?P<severity>\S*)\s*code=(?P<error_code>\S*)\s*desc="(?P<desc>[^"]*)"\s*method=(?P<method>\S*)\s*path="(?P<path>[^"]*)" host=(?P<host>\S*)\s* (request_id=)?(?P<request_id>\S*)\s*fwd="?(?P<fwd>[^"\s]*)"?\s*dyno=(?P<dyno>\S*)\s*connect=(?P<connect>\d*)(ms)?\s*service=(?P<service>\d*)(ms)?\s*status=(?P<status>\d*)\s* bytes=(?P<bytes>\S*)\s*(protocol=)?(?P<protocol>[^"\s]*)$
Il log formattato è:
{
"sock": "client",
"severity": "warning",
"error_code": "H27",
"desc": "Client Request Interrupted",
"method": "POST",
"path": "/submit/",
"host": "myapp.herokuapp.com",
"request_id": "",
"fwd": "17.17.17.17",
"dyno": "web.1",
"connect": "1",
"service": "0",
"status": "499",
"bytes": "0",
"protocol": ""
}