Vous pouvez personnaliser la configuration de l'analyseur JSON pour analyser de manière sélective le journal JSON.

Vous pouvez configurer des analyseurs CSV (Comma-Separated Value) pour les collecteurs FileLog et WinLog. Seuls les journaux JSON valides sont analysés avec l'analyseur JSON de l'agent Log Insight. Les analyseurs de journaux JSON non valides renvoient des résultats vides.

La configuration de l'analyseur JSON par défaut extrait tous les champs du journal JSON par l'agent Log Insight. Lorsque le journal JSON représente lui-même comme un objet JSON complexe, qui peut également contenir des objets JSON, l'analyseur utilise un trait de soulignement (_) pour concaténer les noms d'objets JSON imbriqués et hiérarchisés supérieurs. Ainsi les éléments correspondants portent un nom de champ informatif. Si le journal JSON contient également un tableau, les noms des éléments membres contiennent le nom du tableau suivi de l'index de l'élément dans le tableau.

L'analyseur JSON fournit également une option spécifique, appelée champs.

Option « champs » de l'analyseur JSON

Vous pouvez utiliser l'option champs pour spécifier les champs à analyser dans la configuration. L'objectif de cette option est d'activer l'analyse sélective du journal JSON.
Note : Pour l'analyse sélective, vous devez spécifier le chemin d'accès à l'élément JSON souhaité. Les objets JSON de différents niveaux doivent être séparés par un point (.).

La liste suivante fournit des exemples de configurations qui vous permettent d'analyser de manière sélective le journal JSON comme vous le souhaitez.

  • Pour analyser plusieurs éléments du journal JSON, les éléments souhaités doivent être répertoriés comme paramètres pour l'option champs et séparés par des virgules. Voir l'exemple ci-dessous :
    {"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"}
  • Pour analyser uniquement les objets JSON les plus internes, tels que timestamp, log_severity et log_message, reportez-vous à l'exemple ci-dessous. Cet exemple de configuration produit les résultats de champ suivants : operation_timestamp ="2018-11-22T15:28:58.094000" and operation_log_severity ="info"
    [parser|json_parser]
    base_parser=json
    fields=operation.timestamp,operation.log_severity, operation.log_message
  • Pour analyser l'intégralité de l'objet JSON, incluez le chemin d'accès à l'objet suivi d'un astérisque (*).
    {"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"}
  • Pour analyser uniquement l'objet operation, utilisez la configuration suivante :
    [parser|json_parser]
    base_parser=json
    fields=operation.*
  • Si le journal JSON contient un tableau et que vous voulez analyser uniquement des éléments spécifiques du tableau, utilisez l'index d'élément du tableau dans la configuration, comme indiqué dans cet exemple de configuration :
    {           
          "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"                                   
                }                      
            }           
         ] 
    }
  • Pour analyser uniquement les éléments key et size du même journal, utilisez la configuration suivante pour générer les champs suivants :

    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
  • Pour analyser le champ key pour tous les éléments du tableau, utilisez la configuration suivante :
    [parser|json_parser]
    base_parser=json
    fields=Records.#.object.key
  • Pour analyser tous les champs, utilisez l'option champs avec un astérisque (*). Cette configuration est équivalente à la configuration de l'analyseur JSON par défaut.
    [parser|json_parser]
    base_parser=json
    fields=*