Sie können die Konfiguration des JSON-Parser anpassen, um das JSON-Protokoll selektiv zu analysieren.

Sie können Parser für das kommagetrennte Format (CSV) sowohl für FileLog- als auch für WinLog-Collectors konfigurieren. Nur gültige JSON-Protokolle werden mit dem JSON-Parser des Log Insight-Agenten analysiert. Ungültige JSON-Protokoll-Parser geben leere Ergebnisse zurück.

Bei der standardmäßigen Konfiguration des JSON-Parser werden alle Felder aus dem JSON-Protokoll vom Log Insight-Agenten extrahiert. Wenn sich das JSON-Protokoll als komplexes JSON-Objekt darstellt, das auch JSON-Objekte enthalten kann, verwendet der Parser einen Unterstrich (_), um Namen von verschachtelten und höherrangigen JSON-Objekten zu verketten. Dies erzeugt einen informativen Feldnamen für die entsprechenden Elemente. Wenn das JSON-Protokoll auch ein Array enthält, enthalten die Elementnamen des Elements den Array-Namen, gefolgt vom Index des Elements im Array.

Der JSON-Parser bietet auch eine bestimmte Option, die als fields bezeichnet wird.

JSON-Parser-Option „fields“

Sie können die Option fields verwenden, um anzugeben, welche Felder in der Konfiguration analysiert werden. Diese Option dient der selektiven Analyse des JSON-Protokolls.
Hinweis: Für die selektive Analyse müssen Sie den Pfad zum gewünschten JSON-Element angeben. JSON-Objekte aus verschiedenen Ebenen müssen durch einen Punkt (.) getrennt werden.

Die folgende Liste enthält Beispielkonfigurationen, mit denen Sie das JSON-Protokoll nach Bedarf selektiv analysieren können.

  • Um mehr als ein Element aus dem JSON-Protokoll zu analysieren, müssen die gewünschten Elemente als Parameter für die Option fields angegeben und durch Kommas getrennt werden. Siehe Beispiel unten:
    {"operation" : {"timestamp" :
            "2018-11-22T15:28:58.094000", "thread_id" : "0x05673", "initiator" : "connector",
            "log_severity" : "info", "log_message" : "Requested connection to the server."},
            "operation_result" : "success"}
  • Schauen Sie sich das folgende Beispiel an, um nur die innersten JSON-Objekte, z. B. timestamp, log_severity und log_message, zu analysieren. In dieser Beispielkonfiguration werden die folgenden Feldergebnisse generiert: operation_timestamp ="2018-11-22T15:28:58.094000" und operation_log_severity ="info"
    [parser|json_parser]
    base_parser=json
    fields=operation.timestamp,operation.log_severity, operation.log_message
  • Um das gesamte JSON-Objekt zu analysieren, schließen Sie den Pfad zu dem Objekt ein, gefolgt von einem Sternchen (*).
    {"product_name" : "LI Agent",
            "operation" : {"timestamp" : "2018-11-22T15:28:58.094000", "thread_id" :
            "0x05673", "initiator" : "connector", "log_severity" : "info", "log_message" :
            "Requested connection to the server."}, "operation_result" :
          "success"}
  • Um nur das Objekt operation zu analysieren, verwenden Sie die folgende Konfiguration:
    [parser|json_parser]
    base_parser=json
    fields=operation.*
  • Wenn das JSON-Protokoll ein Array enthält und Sie nur bestimmte Elemente des Arrays analysieren möchten, verwenden Sie den Elementindex des Arrays in der Konfiguration, wie in dieser Beispielkonfiguration gezeigt:
    {           
          "Records": [{                                 
                 "object":{                                               
                    "key": "/events/mykey",                                               
                    "size": 502,                                               
                    "eTag": "091820398091823",                                               
                    "sequencer": "1123123"                                   
                }                       
           },                       
          {                                  
                "object":{                                               
                      "key": "/events/user_key",                                               
                      "size": 128,                                               
                      "eTag": "09182039000001",                                               
                      "sequencer": "1123231"                                   
                }                        
            },                        
            {                                   
               "object":{                                               
                     "key": "/events/admin_key",                                               
                     "size": 1024,                                               
                     "eTag": "09182039547241",                                               
                     "sequencer": "1123213"                                   
                }                      
            }           
         ] 
    }
  • Um nur die Elemente key und size aus demselben Protokoll zu analysieren, verwenden Sie die folgende Konfiguration, um die folgenden Felder zu erstellen:

    records0_object_key="/events/mykey"

    records0_object_size=502

    records2_object_key="/events/admin_key"

    records2_object_size=1024

    [parser|json_parser]
    base_parser=json
    fields = Records0.object.key Records0.object.size, Records2.object.key, Records2.object.size
  • Um das Feld key für alle Array-Elemente zu analysieren, verwenden Sie die folgende Konfiguration:
    [parser|json_parser]
    base_parser=json
    fields=Records.#.object.key
  • Um alle Felder zu analysieren, verwenden Sie die Option „fields“ mit einem Sternchen (*). Diese Konfiguration entspricht der standardmäßigen JSON-Parser-Konfiguration.
    [parser|json_parser]
    base_parser=json
    fields=*