Correzione dei dati di log utilizzando una regola di sostituzione

In IBM® Cloud Logs, puoi utilizzare la regola Sostituisci per modificare la struttura del log, riparare i log formattati in modo non corretto, modificare la severità del log o mascherare le informazioni.

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.

Configurazione di una regola di sostituzione

Completa i seguenti passi:

  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 Sostituisci icona Sostituisci 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. Immettere una stringa di sostituzione che sostituirà il RegExcorrispondente.

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

Esempio: ripristino di un log JSON formattato in modo non corretto

Un caso di utilizzo comune per una regola di sostituzione consiste nel riparare i log JSON formattati in modo non corretto.

Nel seguente esempio, i log JSON vengono inviati con un prefisso di data che interrompe il formato JSON e li trasforma in log non strutturati.

RegEx identifica la sottostringa e rimuove la stringa non corretta nel log.

Il log originale è:

2020-08-07 {“status”:”OK”, “user”:John Smith”, “ops”:”J1”}

Il RegEx:

.*{

La stringa per sostituire il risultato della valutazione dell'espressione RegEx è:

{

Il log risultante:

{"status":"OK", "user":"John Smith", "ops":"J1"}

Esempio: ricostruzione di un log con campi nidificati

Il seguente esempio mostra come utilizzare una regola di sostituzione per ricreare un log con campi nidificati. I campi nidificati sono un vincolo nelle regole di estrazione e analisi.

Il log originale:

{"ops":"G1","user":"John Smith-2125 Sierra Ventura Dr.-Sunnyvale-CA-94054","status":"305"}

Il RegEx:

(.*user"):"([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)",([^$]*)

Ogni parentesi rappresenta un gruppo di cattura che può essere indirizzato da $n n=1..7.

La stringa di sostituzione:

$1:{"name":"$2","address":"$3","city":"$4","state":"$5","zip":"$6"},$7

Il log risultante;

{
   "ops":"G1",
   "User":{
      "name":"John Smith",
      "address":"2125 Sierra Ventura Dr.",
      "city":"Sunnyvale",
      "state":"CA",
      "Zip":"94054"
   },
   "status":"305"
}

Esempio: trasformazione del campo JSON stringified (escape) in un oggetto

La regola inner_json è una regola di sostituzione speciale che assume un valore di campo in un log JSON che include stringified (escape) JSON e convertirlo in un oggetto.

Nel seguente esempio, il log originale è:

{
 "server":"opa",
 "IBC":"45ML",
 "thread":"1201",
 "message":"{\"first_name\":\"John\", \"last_name\":\"Smith\", \"userID\":\"AB12345\", \"duration\":45}"
}

Il messaggio del campo ha un valore stringa che è un JSON legale con escape.

La regola di sostituzione speciale modifica il nome del campo dal nome originale "message" a "inner_json":

Il RegEx:

“message”\s*:\s*”{\s*\\”

Questo RegEx identifica un messaggio di nome campo con l'inizio del JSON di escape.

La stringa di sostituzione è:

“inner_json”:”{\”

Questo esempio sostituisce solo il nome campo e nient'altro.

Il log risultante:

{
   "server":"opa",
   "inner_json":{
     "first_name":"John" ,
     "last_name":"Smith" ,
     "userID":"AB12345" ,
     "duration":45
  }
}