Le processeur de journaux compressés (CLP) d'YScope compresse vos journaux et vous permet de rechercher les journaux compressés sans décompression. CLP prend en charge à la fois les journaux JSON et les journaux non structurés (c'est-à-dire en texte libre). Il prend également en charge la compression des journaux en temps réel dans plusieurs bibliothèques de journalisation. CLP comprend également des interfaces Web spécialement conçues pour rechercher et afficher les journaux compressés. Pour en savoir plus, lisez notre article de 2021 sur la gestion des journaux non structurés et notre article de 2024 sur son extension aux journaux JSON.
Les chiffres ci-dessus montrent les performances de compression et de recherche de CLP par rapport à d'autres outils. Nous séparons les expériences entre JSON et les journaux non structurés car (1) certains outils ne peuvent gérer qu'un seul type de journaux, et (2) les outils capables de gérer les deux types ont souvent des conceptions différentes pour chaque type (comme CLP).
Le taux de compression est mesuré comme la moyenne d'une variété d'ensembles de données de journaux. Certains de ces ensembles de données peuvent être trouvés ici. Les performances de recherche sont mesurées à l'aide de requêtes sur les journaux MongoDB (pour JSON) et les journaux Hadoop (pour les journaux non structurés). Notez que CLP utilise une conception sans index, donc pour une comparaison équitable, nous avons désactivé les index de MongoDB et PostgreSQL ; Si nous les laissions activés, le taux de compression de MongoDB et PostgreSQL serait pire. Nous n'avons pas désactivé l'indexation pour Elasticsearch ou Splunk, car ces outils sont fondamentalement basés sur des index (c'est-à-dire que les journaux ne peuvent pas être recherchés sans index). Plus de détails sur notre méthodologie expérimentale peuvent être trouvés dans l’article de 2021 et l’article de 2024.
CLP fournit un pipeline de gestion des journaux de bout en bout comprenant la compression, la recherche, l'analyse et la visualisation. La figure ci-dessus montre l'architecture de l'écosystème CLP. Il se compose des fonctionnalités suivantes :
Compression et recherche : CLP compresse les journaux dans des archives, qui peuvent être recherchées et analysées dans une interface utilisateur Web. L'entrée peut être soit des journaux bruts, soit une IR compressée (représentation intermédiaire) produite par les bibliothèques de journalisation de CLP.
Compression en temps réel avec les bibliothèques de journalisation CLP : CLP fournit des bibliothèques de journalisation pour Python et Java (Log4j et Logback). Les bibliothèques de journalisation compressent les journaux en temps réel, de sorte que seuls les journaux compressés sont écrits sur le disque ou transmis sur le réseau. Les journaux compressés utilisent le format de représentation intermédiaire (IR) de CLP qui permet d'obtenir un taux de compression plus élevé que les compresseurs à usage général comme Zstandard. La compression d'IR en archives peut encore doubler le taux de compression et permettre une recherche globale, mais cela nécessite plus d'utilisation de mémoire car il faut mettre en mémoire tampon suffisamment de journaux. Plus de détails sur les IR par rapport aux archives peuvent être trouvés dans ce blog Uber Engineering.
Log Viewer : l'IR compressé peut être visualisé dans une visionneuse de journaux basée sur le Web. Par rapport à l'affichage des journaux dans un éditeur, la visionneuse de journaux de CLP prend en charge des fonctionnalités avancées telles que le filtrage des journaux en fonction de la verbosité du niveau de journal (par exemple, l'affichage uniquement des journaux avec un niveau de journal égal ou supérieur à ERREUR). Ces fonctionnalités sont possibles car les bibliothèques de journalisation de CLP analysent les journaux avant de les compresser en IR.
Bibliothèques IR Analytics : nous fournissons également une bibliothèque Python et une bibliothèque Go qui peuvent analyser les IR compressées.
Analyseur de journaux : CLP comprend également un analyseur de journaux personnalisé basé sur des automates pushdown qui est 3 fois plus rapide que les moteurs d'expressions régulières de pointe comme RE2. L'analyseur de journaux est disponible sous forme de bibliothèque pouvant être utilisée par d'autres applications.
Vous pouvez télécharger un package de version incluant la prise en charge de la compression et de la recherche distribuées. Ou, pour essayer rapidement la compression et la recherche de base de CLP, vous pouvez utiliser un conteneur prédéfini.
Nous avons également des guides pour créer le package et le noyau CLP à partir des sources.
Pour certains journaux que vous pouvez utiliser pour tester CLP, consultez nos ensembles de données open source.
Vous pouvez trouver nos documents en ligne ou consulter la source dans docs/src
.
Vous pouvez utiliser les problèmes GitHub pour signaler un bug ou demander une fonctionnalité.
Rejoignez-nous sur Zulip pour discuter avec les développeurs et d'autres membres de la communauté.
Il s'agit de notre version open source que nous mettrons constamment à jour avec des corrections de bugs, des fonctionnalités, etc. Si vous souhaitez une fonctionnalité ou souhaitez signaler un bug, veuillez signaler un problème et nous serons heureux de vous engager.