Simple Science

La science de pointe expliquée simplement

# Informatique# Génie logiciel

Présentation de Tipping : un parseur de logs avancé

Le pourboire améliore l'efficacité et la précision de l'analyse des logs pour une meilleure analyse logicielle.

― 10 min lire


Tipping : L'avenir deTipping : L'avenir del'analyse des logsrapidité et précision.Révolutionner l'analyse des logs avec
Table des matières

Ces dernières années, avec l'augmentation de la complexité des logiciels, la quantité de données de journal générées par les applications a considérablement augmenté. Les journaux sont générés en continu et fournissent des informations importantes sur les performances des systèmes, le comportement des utilisateurs et les menaces potentielles pour la sécurité. Cependant, analyser ces journaux manuellement est devenu difficile en raison de leur volume et de leur vitesse de génération. Cela a conduit à un besoin d'outils automatisés capables de traiter et d'extraire efficacement des informations précieuses à partir des données de journal.

Le parsing de journal est une étape clé de l'analyse des journaux, qui consiste à convertir les messages de journal bruts en un format structuré. Ce format structuré facilite l'analyse et l'interprétation des données. Le parsing de journal sépare généralement les messages de journal en parties constantes, qui décrivent l'événement, et en parties variables, qui contiennent des informations dynamiques pouvant changer à chaque occurrence de l'événement. Par exemple, dans le message de journal "Socket connecté avec succès à 10.10.1.10", la phrase "Socket connecté avec succès à" est la partie constante, tandis que "10.10.1.10" est la partie variable.

Le rôle des parsers de journal est crucial, car ils simplifient la complexité des messages de journal en libre format. Ces parsers aident dans diverses tâches, comme détecter des comportements inhabituels, déboguer des erreurs et analyser les performances. Cependant, obtenir à la fois rapidité et précision dans le parsing de journal peut être un défi, car augmenter la précision nécessite souvent un traitement plus complexe, ce qui peut ralentir les performances globales.

Défis du Parsing de Journal

Le parsing de journal fait face à plusieurs défis en raison de l'augmentation du volume et de la complexité des données. D'abord, à mesure que les applications génèrent plus de journaux, les outils utilisés pour les analyser doivent être capables de suivre cette augmentation. Cela nécessite que les parsers soient efficaces et capables de gérer de grandes quantités de données rapidement.

Ensuite, la précision des parsers de journal est essentielle. Un parser doit correctement identifier et séparer les parties constantes et variables d'un message de journal pour fournir des informations significatives. Si un parser n'est pas précis, il peut produire des résultats incorrects, ce qui peut entraîner des problèmes dans l'analyse ultérieure. La relation entre rapidité et précision peut souvent être conflictuelle ; obtenir une plus grande précision peut ralentir le processus de parsing.

Un autre défi est l'utilisation du traitement parallèle, où les tâches sont réparties sur plusieurs processeurs pour accélérer les opérations. Bien que cette méthode puisse améliorer les performances et permettre l'utilisation de techniques de parsing complexes, elle ajoute également de la complexité au système. Gérer les opérations simultanées et assurer la cohérence des données peut être difficile, ce qui peut entraîner des erreurs ou des incohérences dans le résultat final du parsing.

Présentation de Tipping

Pour répondre à ces défis, un nouveau parser de journal appelé "Tipping" a été développé. Tipping combine plusieurs techniques avancées pour améliorer l'efficacité et la précision du parsing de journal. Il utilise un tokenizer basé sur des règles, des graphes de tokens interdépendants et des algorithmes de composants forts pour analyser les journaux de manière efficace.

Tipping est conçu pour être rapide et évolutif, ce qui lui permet de fonctionner efficacement sur plusieurs cœurs de traitement. Cela signifie qu'il peut gérer de gros volumes de données de journal rapidement sans compromettre la précision. Dans des tests, Tipping a démontré sa capacité à parser des millions de lignes de journal en quelques secondes, ce qui en fait une solution pratique pour l'analyse automatisée des journaux.

La conception de Tipping comprend plusieurs composants, chacun remplissant une fonction spécifique dans le processus de parsing. Le tokenizer découpe les messages de journal en parties plus petites, facilitant ainsi le traitement. Les tokens sont ensuite filtrés pour ne conserver que ceux qui sont pertinents pour l'analyse. Le parser suit les occurrences des tokens et leurs co-occurrences, ce qui aide à comprendre les relations entre différents tokens dans les messages de journal.

Le Processus Tipping

Tokenisation

La première étape du processus de parsing de Tipping est la tokenisation. Cela consiste à décomposer les messages de journal en unités plus petites appelées tokens. Contrairement aux méthodes traditionnelles qui séparent le texte aux espaces blancs, Tipping permet plus de flexibilité en utilisant des motifs spéciaux définis par les utilisateurs. Ces motifs aident à identifier quelles parties du message de journal doivent être traitées comme constantes et lesquelles doivent être considérées comme variables.

Pendant le processus de tokenisation, l'algorithme recherche des motifs prédéfinis dans le message de journal. Il marque certains motifs comme des tokens spéciaux pour préserver leur intégrité pendant le parsing. Après avoir identifié ces tokens, les parties restantes du message de journal sont fragmentées en fonction des symboles et des caractères d'espace. Cela permet une approche plus nuancée pour parser les messages de journal.

Filtrage des Tokens

Une fois les tokens générés, Tipping applique un processus de filtrage pour supprimer les tokens indésirables en fonction de paramètres définis par l'utilisateur. Par défaut, l'algorithme conserve uniquement les tokens pertinents, veillant à ce que seuls ceux nécessaires pour un parsing précis soient retenus. Cette étape aide à affiner davantage les données et les prépare pour l'analyse.

Suivi des dépendances

Ensuite, Tipping suit à la fois les occurrences des tokens et leurs co-occurrences. Les occurrences de tokens sont le nombre de fois qu'un token spécifique apparaît dans l'ensemble de données. Les co-occurrences font référence aux instances où deux tokens apparaissent ensemble dans le même message de journal. Cette information est essentielle pour comprendre les relations entre les tokens et aide à construire une analyse complète.

Graphe d'Interdépendance

Pour analyser plus loin les relations entre tokens, Tipping construit un graphe d'interdépendance. Dans ce graphe, les tokens agissent comme des nœuds, et les dépendances entre eux sont représentées comme des arêtes. En analysant ce graphe, Tipping peut identifier des groupes de tokens qui dépendent les uns des autres, permettant une compréhension plus profonde des messages de journal.

Groupes de Tokens Fortement Dépendants

Tipping identifie également des groupes de tokens fortement dépendants, qui sont des sous-ensembles de tokens montrant une dépendance mutuelle. Ce regroupement est essentiel car si un token est identifié comme faisant partie du modèle, il est probable que d'autres tokens au sein du même groupe le soient aussi. Ce processus aide à former une représentation plus précise des événements dans les messages de journal.

Regroupement de Tokens

Une fois les groupes de tokens établis, Tipping regroupe les messages en fonction des tokens d'ancrage identifiés. Chaque groupe représente un événement unique, et l'algorithme peut calculer les ID d'événements en fonction de ces groupes. Si les utilisateurs nécessitent une analyse détaillée, Tipping peut générer des modèles et des masques de paramètres pour les événements.

Tokens Communs

Dans chaque groupe, Tipping identifie des tokens communs présents dans tous les messages. Ces tokens communs aident à générer des modèles d'événements qui représentent avec précision la structure des messages de journal. En produisant plusieurs modèles pour chaque événement, Tipping peut tenir compte des variations dans les messages de journal.

Modèles d'Événements et Masques de Paramètres

La dernière étape consiste à créer des modèles d'événements et des masques de paramètres. Les modèles d'événements représentent la structure fixe des messages de journal, tandis que les masques de paramètres indiquent quelles parties du message sont variables. Cette représentation structurée permet une analyse facile et une enquête plus approfondie sur les événements enregistrés par le système.

Évaluation des Performances

Les performances de Tipping ont été rigoureusement testées contre des parsers de journal de pointe existants. Divers benchmarks ont été utilisés pour évaluer sa précision et sa vitesse. Les résultats ont montré que Tipping surpassait constamment les autres parsers, atteignant des scores élevés dans plusieurs ensembles de données.

Dans un benchmark, Tipping a atteint des scores parfaits dans plusieurs cas, démontrant sa robustesse dans le parsing précis des données de journal. Même dans des ensembles de données plus complexes, Tipping a maintenu une haute précision, soulignant sa fiabilité en tant qu'outil de parsing de journal.

Tests de Vitesse

Tipping a également été évalué pour sa vitesse dans le parsing de grands ensembles de données. Dans les tests, Tipping a montré une efficacité exceptionnelle, étant souvent le parser le plus rapide disponible. Dans des scénarios impliquant plusieurs cœurs de traitement, les performances de Tipping ont dépassé les attentes, mettant en évidence sa capacité à gérer rapidement d'énormes données de journal.

Détection d'anomalies

Un autre domaine d'intérêt était l'impact de Tipping sur les tâches en aval telles que la détection d'anomalies. Dans les tests, la sortie de parsing de Tipping a été trouvée pour améliorer la précision des modèles de détection d'anomalies. En produisant des données de journal bien structurées, Tipping a permis une meilleure identification des comportements inhabituels et des problèmes potentiels au sein du système.

Conclusion

En résumé, Tipping représente une avancée significative dans le domaine du parsing de journal. En combinant diverses techniques et en mettant l'accent sur la vitesse et la précision, Tipping est équipé pour faire face aux défis posés par l'augmentation du volume et de la complexité des données de journal. Ses performances lors des benchmarks et des tests pratiques démontrent son efficacité en tant qu'outil d'analyse automatisée des journaux, en faisant un ajout essentiel aux pratiques modernes d'ingénierie logicielle.

Alors que les systèmes logiciels continuent de générer d'énormes quantités de données de journal, le besoin d'outils de parsing efficaces et précis restera critique. Tipping se distingue comme une solution polyvalente capable de répondre aux exigences du paysage logiciel d'aujourd'hui, permettant de meilleures informations et une gestion logicielle améliorée.

Source originale

Titre: Token Interdependency Parsing (Tipping) -- Fast and Accurate Log Parsing

Résumé: In the last decade, an impressive increase in software adaptions has led to a surge in log data production, making manual log analysis impractical and establishing the necessity for automated methods. Conversely, most automated analysis tools include a component designed to separate log templates from their parameters, commonly referred to as a "log parser". This paper aims to introduce a new fast and accurate log parser, named "Tipping". Tipping combines rule-based tokenizers, interdependency token graphs, strongly connected components, and various techniques to ensure rapid, scalable, and precise log parsing. Furthermore, Tipping is parallelized and capable of running on multiple processing cores with close to linear efficiency. We evaluated Tipping against other state-of-the-art log parsers in terms of accuracy, performance, and the downstream task of anomaly detection. Accordingly, we found that Tipping outperformed existing methods in accuracy and performance in our evaluations. More in-depth, Tipping can parse 11 million lines of logs in less than 20 seconds on a laptop machine. Furthermore, we re-implemented a parallelized version of the past IpLom algorithm to demonstrate the effect of parallel processing, and it became the second-fastest parser. As logs keep growing in volume and complexity, the software engineering community needs to ensure automated log analysis tools keep up with the demand, being capable of efficiently handling massive volumes of logs with high accuracy. Tipping's robustness, versatility, efficiency, and scalability make it a viable tool for the modern automated log analysis task.

Auteurs: Shayan Hashemi, Mika Mäntylä

Dernière mise à jour: 2024-08-01 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2408.00645

Source PDF: https://arxiv.org/pdf/2408.00645

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Articles similaires