Chapitre 11. Activation de la journalisation JSON
Vous pouvez configurer l'API Log Forwarding pour qu'elle analyse les chaînes JSON en un objet structuré.
11.1. Analyse des journaux JSON Copier lienLien copié sur presse-papiers!
Les journaux, y compris les journaux JSON, sont généralement représentés sous la forme d'une chaîne de caractères dans le champ message. Il est donc difficile pour les utilisateurs d'interroger des champs spécifiques à l'intérieur d'un document JSON. L'API Log Forwarding d'OpenShift Logging vous permet d'analyser les logs JSON en un objet structuré et de les transmettre à Elasticsearch, géré par OpenShift Logging, ou à tout autre système tiers pris en charge par l'API Log Forwarding.
Pour illustrer ce fonctionnement, supposons que vous ayez l'entrée de journal JSON structurée suivante.
Exemple d'entrée de journal JSON structurée
{"level":"info","name":"fred","home":"bedrock"}
{"level":"info","name":"fred","home":"bedrock"}
Normalement, la ressource personnalisée (CR) ClusterLogForwarder transmet cette entrée de journal dans le champ message. Le champ message contient l'équivalent de la chaîne de caractères JSON de l'entrée de journal JSON, comme le montre l'exemple suivant.
Exemple message champ
{"message":"{\"level\":\"info\",\"name\":\"fred\",\"home\":\"bedrock\"",
"more fields..."}
{"message":"{\"level\":\"info\",\"name\":\"fred\",\"home\":\"bedrock\"",
"more fields..."}
Pour activer l'analyse du journal JSON, vous ajoutez parse: json à un pipeline dans le CR ClusterLogForwarder, comme le montre l'exemple suivant.
Exemple d'extrait montrant parse: json
pipelines: - inputRefs: [ application ] outputRefs: myFluentd parse: json
pipelines:
- inputRefs: [ application ]
outputRefs: myFluentd
parse: json
Lorsque vous activez l'analyse des journaux JSON à l'aide de parse: json, le CR copie l'entrée de journal structurée en JSON dans un champ structured, comme le montre l'exemple suivant. Cela ne modifie pas le champ original message.
Exemple structured contenant l'entrée de journal JSON structurée
{"structured": { "level": "info", "name": "fred", "home": "bedrock" },
"more fields..."}
{"structured": { "level": "info", "name": "fred", "home": "bedrock" },
"more fields..."}
Si l'entrée du journal ne contient pas de JSON structuré valide, le champ structured sera absent.
Pour activer l'analyse des journaux JSON pour des plates-formes de journalisation spécifiques, voir Transférer les journaux vers des systèmes tiers.