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
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=*