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:

  1. Fai clic sull'icona Data pipeline Icona Data pipeline > Parsing rules e fai clic su New Rule Group.

  2. Nella sezione Dettagli, immettere il Nome gruppo di regole e la Descrizione gruppo di regole.

  3. 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.

  4. Nella sezione Regole, selezionare Analizza icona Analizza regola di analisi.

    1. Immettere un nome.

    2. Facoltativamente, immettere una descrizione.

    3. Selezionare un campo sorgente. Questo è il campo a cui viene applicato RegEx.

    4. Selezionare un campo di destinazione. Questo è il campo che verrà compilato con i risultati dell'applicazione dell'espressione RegEx.

    5. Immettere l' Espressione regolare (RegEx).

    6. Attivare / disattivare lo stato su ATTIVO se si desidera che la regola sia abilitata.

  5. 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.

  6. 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": ""
}