Unstrukturierten Text in JSON konvertieren

In IBM® Cloud Logskönnen Sie die Regel Parsing verwenden, um unstrukturierten Text in mindestens ein JSON-Feld zu konvertieren.

Vorbereitende Schritte

Parserregeln sind in Regelgruppenorganisiert. Jede Gruppe hat einen Namen und eine Gruppe von Regeln mit einer logischen Beziehung zwischen ihnen. Protokolle werden gemäß der Reihenfolge der Regelgruppe (vom Anfang bis zum Ende) verarbeitet. Sie werden dann nach der Reihenfolge der Regeln innerhalb der Regelgruppe und gemäß den logischen Operatoren zwischen ihnen (AND/OR) verarbeitet. Mithilfe von Regeln können Sie Protokolldaten verarbeiten, analysieren und umstrukturieren, um die Überwachung und Analyse vorzubereiten. Weitere Informationen finden Sie unter Mit Regelgruppen arbeiten.

Benannte erfasste Gruppen zum Definieren neuer Felder verwenden

Die Parserregel verwendet RegEx benannte Erfassungsgruppen, um neue Felder zu definieren.

  • Erfasste Gruppen werden zu den analysierten Protokollfeldern.
  • Der Wert, der jeder Gruppe zugeordnet ist, wird zum Feldwert.
  • RegEx muss nicht mit dem gesamten Protokoll übereinstimmen.
  • Nur die benannten Erfassungsgruppen RegEx (die Werte in < >) und der Wert, den sie erfassen, sind Teil des wiederhergestellten Protokolls.

Parse-Regel konfigurieren

Führen Sie die folgenden Schritte aus, um eine Regelgruppe mit einer Parserregel zu erstellen:

  1. Klicken Sie auf das Symbol Datenpipeline Symbol 'Datenpipeline' > Parsing von Regeln und anschließend Neue Regelgruppe.

  2. Geben Sie im Abschnitt Details den Regelgruppennamen und die Regelgruppenbeschreibungein.

  3. Konfigurieren Sie im Abschnitt Regelabgleichkomponente die Anwendungen, Subsysteme und Wertigkeiten, die die Protokolle definieren, auf die die in der Regelgruppe enthaltenen Regeln angewendet werden sollen.

  4. Wählen Sie im Abschnitt Regeln die Option Parsing Symbol für Parserregel aus.

    1. Geben Sie einen Namen ein.

    2. Geben Sie optional eine Beschreibung ein.

    3. Wählen Sie ein Quellfeld aus. Dies ist das Feld, auf das der RegEx angewendet wird.

    4. Wählen Sie ein Zielfeld aus. Dies ist das Feld, das mit den Ergebnissen der Anwendung des Ausdrucks RegEx gefüllt wird.

    5. Geben Sie den regulären Ausdruck (RegEx) ein.

    6. Schalten Sie den Status auf AKTIV um, wenn die Regel aktiviert sein soll.

  5. Fügen Sie weitere Regelgruppen hinzu, indem Sie auf Regel hinzufügen klicken und den gewünschten Regeltyp auswählen. Aktivieren Sie AND/OR, um auszuwählen, wie die zusätzlichen Regeln verarbeitet werden.

  6. Klicken Sie auf Regelgruppe erstellen.

Beispielprotokollkonvertierungen

Im folgenden Beispiel wird ein Heroku L/H-Fehlerprotokoll, das von Heroku gesendet wird, als unstrukturiertes Protokoll verwendet und in ein JSON-Protokoll konvertiert.

Das ursprüngliche Protokoll lautet:

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

Der RegEx lautet wie folgt:

^(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]*)$

Das formatierte Protokoll ist:

{
    "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": ""
}