FR3144678A1 - Méthode de réduction de dimension d'une représentation numérique d'un fichier log informatique et méthode d'analyse d'un tel fichier - Google Patents
Méthode de réduction de dimension d'une représentation numérique d'un fichier log informatique et méthode d'analyse d'un tel fichier Download PDFInfo
- Publication number
- FR3144678A1 FR3144678A1 FR2214625A FR2214625A FR3144678A1 FR 3144678 A1 FR3144678 A1 FR 3144678A1 FR 2214625 A FR2214625 A FR 2214625A FR 2214625 A FR2214625 A FR 2214625A FR 3144678 A1 FR3144678 A1 FR 3144678A1
- Authority
- FR
- France
- Prior art keywords
- matrix
- columns
- log file
- column
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 239000011159 matrix material Substances 0.000 claims abstract description 106
- 230000002123 temporal effect Effects 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims description 33
- 239000013598 vector Substances 0.000 claims description 33
- 238000010801 machine learning Methods 0.000 claims description 18
- 230000009467 reduction Effects 0.000 claims description 17
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 238000012549 training Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 230000002441 reversible effect Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 23
- 238000013459 approach Methods 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000000556 factor analysis Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000287107 Passer Species 0.000 description 1
- 241001080024 Telles Species 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000021183 entrée Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
Méthode, mise en œuvre par ordinateur, de réduction de dimension d’une représentation numérique d’un fichier journal informatique dit fichier log, le fichier log comprenant une pluralité de descripteurs ayant chacun une évolution temporelle donnée, la méthode comprenant les étapes de : Déterminer (401) une représentation numérique d’un fichier log sous la forme d’une matrice de description dont chaque colonne correspond à un descripteur et chaque ligne correspond à un intervalle temporel, la matrice comprenant un ensemble de valeurs entières positives ou nulles représentant un compteur d’occurrence de chaque descripteur dans chaque intervalle temporel,Réduire (403) la dimension de la matrice de description en supprimant les colonnes qui sont des combinaisons linéaires à coefficients entiers et positifs d’autres colonnes,Générer (406) une première matrice de traçabilité permettant de réaliser l’opération inverse à la suppression des colonnes combinaisons linéaires d’autres colonnes. Figure 4
Description
L’invention concerne le domaine de l’analyse de fichiers journal informatique encore appelés fichiers logs. De nombreux systèmes informatiques génèrent de tels fichiers qui renseignent sur leur fonctionnement et leur état. Les messages de logs inclus dans ces fichiers sont générés automatiquement par des programmes et même un système relativement simple peut générer plusieurs milliers de messages de logs par seconde.
L’invention concerne l’analyse automatique de fichiers logs dans une optique de maintenance ou de détection de pannes ou encore de prédiction de pannes futures. Cette analyse peut par exemple avoir pour but la surveillance de fonctionnement, la maintenance de systèmes ou la recherche de pannes. Actuellement de nombreux systèmes génèrent des fichiers de journal renseignant sur le fonctionnement et l’état des infrastructures les concernant. Ces fichiers logs comportent des renseignements précieux qui peuvent être exploités pour détecter des anomalies de fonctionnement, lever des alertes, résoudre une panne a posteriori ou améliorer l’état des systèmes par des opérations de maintenance prédictive. En revanche les messages de logs sont générés automatiquement par des programmes et même un système relativement simple peut générer plusieurs milliers de messages de logs par seconde. Le traitement de tous ces logs par un opérateur est donc irréaliste et doit être automatisé.
La présente invention a donc pour champ d’application l’analyse automatique des fichiers de journaux (logs).
L’invention porte plus précisément sur une méthode de réduction de dimension d’une représentation numérique de fichiers logs dans l’optique d’une exploitation de ces représentations numériques par un moteur d’apprentissage automatique permettant de réaliser l’analyse automatique des fichiers.
L’analyse de fichiers logs requiert la détection de motifs caractéristiques dans les données de journal. A titre d’illustration, dans une situation de détection d’anomalie, ce motif peut constituer en l’enchaînement de messages de logs caractéristiques du processus normal de fonctionnement du système. Dans le cas général, ces motifs signature de comportement d’intérêt ne sont pas connus à l’avance. L’analyse de log par un expert est coûteuse et chronophage au vu du volume élevé d’informations à analyser et donc l’emploi d’algorithmes d’apprentissage automatique pour apprendre ces motifs est particulièrement approprié.
Cependant, la plupart des algorithmes d’apprentissage automatique ont pour entrées des tenseurs de valeurs numériques, là où les messages de logs sont le plus souvent de nature hétérogène, non-structurée ou semi-structurée contenant : des phrases, des valeurs numériques, des listes ou des structures imbriquées de ces précédents types.
Afin de pouvoir être traités automatiquement par un algorithme d’apprentissage automatique, les messages de logs doivent être convertis en vecteur numérique. Cette représentation numérique des logs doit pouvoir conserver les similarités et différences entre deux messages de logs afin d’être suffisamment expressive pour l’analyse. Pour garantir sa généricité, elle ne doit pas reposer sur des connaissances a priori sur la structure du log et l’information contenue dans les logs car ces informations sont rarement accessibles. Cette représentation doit aussi être interprétable et ne pas souffrir de biais. Enfin, cette représentation doit être de faible redondance afin de garantir l’applicabilité pratique de la solution soit en termes de ressources de calcul utilisées, soit pour accroître la robustesse de la solution (par exemple en évitant des phénomènes de sur-apprentissage), soit les deux conjointement.
Le traitement automatique des logs nécessite donc de les convertir en un tenseur de valeurs numériques qui peut être interprétable et dont la dimensionnalité est suffisamment faible pour pouvoir être traité par un algorithme d’apprentissage automatique. Dans les faits, les représentations numériques interprétables de logs, souvent sous forme de compteurs d’évènements, contiennent un certain degré de redondance de l’information. Une étape de réduction de dimensionnalité est donc nécessaire. Un problème technique à résoudre dans ce contexte consiste à réduire la dimensionnalité de représentation de log d’évènement en conservant le caractère interprétable de la représentation et sans perte d’information.
La demande de brevet français du Demandeur déposée sous le numéro FR2201383 décrit une méthode permettant de déterminer une représentation numérique de fichiers log informatique et une méthode d’analyse automatique de tels fichiers à partir de la représentation numérique générée.
La méthode proposée dans cette demande vise à encoder des données de log de type « clé-valeur » dans des matrices numériques à valeurs entières. Cet encodage préserve la sémantique des logs et la traçabilité des données initiales dans les données transformées, afin de pouvoir remonter les conclusions des analyses automatiques vers les données brutes. Cependant l’implémentation de cette méthode dans un contexte de maintenance d’infrastructure de cloud peut résulter en une représentation avoisinant 200 colonnes, pour autant de variables distinctes donc, et des centaines de milliers, voire des millions de lignes, les logs représentant très souvent des séries temporelles d’évènements collectées sur des durées significatives de plusieurs mois voire années. La matrice numérique d’encodage générée par cette méthode est donc de grande dimension, ce qui présente des inconvénients en termes de complexité de traitements pour l’analyse automatique.
Il est donc nécessaire de réduire la dimension d’une telle matrice afin de limiter la complexité d’implémentation des méthodes d’analyse automatique de logs recevant en entrée cette matrice numérique encodée. Par ailleurs, il est aussi nécessaire de préserver la sémantique et le caractère interprétable de l’encodage afin que la réduction de dimensionnalité n’entraine pas une perte d’information telle qu’il ne serait plus possible de faire correspondre les résultats de l’analyse automatique avec les données brutes d’origine extraites des fichiers log.
Ainsi, il est nécessaire de concevoir une méthode de réduction de dimension efficace en termes de compression et sans pertes.
Dans les systèmes industriels le nombre de paramètres collectés peut varier énormément selon la nature du processus qu’ils mesurent, allant ainsi de dizaines à des centaines. Ces paramètres peuvent être évalués qualitativement ou mesurés quantitativement et peuvent avoir des natures très diverses, ce qui rend inapplicables les méthodes mathématiques classiques d’analyse factorielle sur l’ensemble des données collectées. Pour les paramètres mesurés quantitativement l’approche la plus répandue dans les systèmes industriels pour réduire la taille des données est de pratiquer une analyse en composantes principales afin d’éliminer les paramètres redondants. Pour l’analyse des données de log dans des systèmes de classification et détection de pannes pour le domaine de l’Internet des Objets, la demande de brevet CN110851654A propose d’utiliser une variante de décomposition en valeurs singulières adaptée pour des tenseurs numériques pour trouver les composantes principales, en amont de l’utilisation de réseaux de neurones pour la détection/classification de défaillances.
D’autres méthodes, telles que celle décrite dans le brevet US10909079, proposent d’utiliser des représentations de messages de logs sous forme de matrices de compteurs d’évènements et en construisant un graphe de corrélations pour pouvoir éliminer les sous-graphes considérés comme redondants.
Les approches basées sur l’analyse factorielle mènent en général à des représentations de très faible dimension (par exemple 2 ou 3 composantes principales peuvent suffire pour bien approximer la distribution initiale multivariée dans des cas favorables), mais engendrent une perte d’information plus ou moins importante, ainsi qu’un manque d’interprétabilité de la combinaison linéaire résultante. De plus, cette approche peut éliminer des descripteurs correspondant à des évènements rares, qui n’expliqueront donc pas la variance globale. Or, dans une problématique de recherche/prédiction de pannes ces évènements sont très importants à conserver.
L’approche utilisant des graphes pour réduire la dimension des données à traiter peut s’avérer très coûteuse en ressources de calcul, le calcul des matrices de corrélation conjointement avec des algorithmes de parcours de graphes augmentant considérablement la complexité algorithmique de cette solution. L’étape de filtrage de sous-graphes pour éliminer les données dites « non-informatives », entraîne une perte d’information.
Aucune de ces méthodes ne permet une réduction de dimension sans perte d’information et préservant totalement la sémantique originale des données. De plus ces méthodes peuvent s’avérer plus complexes en temps de calcul.
Il est donc nécessaire d’introduire une nouvelle solution de réduction de dimensionnalité prenant en entrée des tenseurs de compteurs d’évènements, à faible complexité de calcul, interprétable et préservant l’intégralité de l’information.
La présente invention propose une nouvelle méthode de réduction de dimensionnalité d’une matrice à valeurs entières représentant un encodage des données log de type clé-valeur en une série temporelle décomptant des évènements distincts. Ces matrices sont habituellement de grande taille : des centaines de milliers, voire des millions de lignes pour des centaines de variables (colonnes). Selon une convention choisie, le nombre de lignes de cette représentation correspond à la dimension temporelle des messages et sa dimension est le plus souvent beaucoup plus grande que celle des paramètres extraits des logs. Cependant si les paramètres sont redondants, des phénomènes de sur-apprentissage peuvent se produire lors de l’analyse par des méthodes statistiques (tel que les réseaux de neurones artificiels). De plus, traiter des matrices de ces tailles est souvent extrêmement consommateur de ressources de calcul.
Il est par conséquent nécessaire de proposer une méthode permettant d’éliminer les redondances et satisfaisant les critères opérationnels suivants :
- Une faible complexité algorithmique pour pouvoir être déployée sur différentes plateformes de calcul
- Aucune perte d’information par rapport aux données d’origine de façon à pouvoir remonter des conclusions d’analyses automatiques aux sources
- Une préservation de l’interprétabilité de la représentation réduite résultante.
L’invention propose une méthode de réduction de dimensionnalité consistant, à partir d’une matrice numérique encodant des compteurs d’évènements log (semi-structurés de type clé-valeur), à supprimer les colonnes redondantes, supprimer les combinaisons de colonnes et à créer des matrices de traçabilité des opérations effectuées afin de pouvoir reconstruire parfaitement la matrice d’origine.
L’invention s’applique avantageusement aux matrices d’encodage numériques générées au moyen de l’invention objet de la demande de brevet FR2201383 mais s’applique plus généralement en complément de toute méthode d’encodage de fichiers logs semi structurés qui produit une matrice dont les colonnes correspondent aux descripteurs collectés dans les fichiers logs et les lignes correspondent à une dimension temporelle.
L’invention s’applique conjointement avec toute méthode d’analyse automatique de matrices ou plus généralement de tenseurs numériques encodant des messages de log semi structurés.
L’invention a pour objet une méthode, mise en œuvre par ordinateur, de réduction de dimension d’une représentation numérique d’un fichier journal informatique dit fichier log, le fichier log comprenant une pluralité de descripteurs ayant chacun une évolution temporelle donnée, la méthode comprenant les étapes de :
- Déterminer une représentation numérique d’un fichier log sous la forme d’une matrice de description dont chaque colonne correspond à un descripteur et chaque ligne correspond à un intervalle temporel, la matrice comprenant un ensemble de valeurs entières positives ou nulles représentant un compteur d’occurrence de chaque descripteur dans chaque intervalle temporel,
- Réduire la dimension de la matrice de description en supprimant les colonnes qui sont des combinaisons linéaires à coefficients entiers et positifs d’autres colonnes,
- Générer une première matrice de traçabilité permettant de réaliser l’opération inverse à la suppression des colonnes combinaisons linéaires d’autres colonnes.
Selon une variante de réalisation, la méthode selon l’invention comprend une étape d’identification des colonnes qui sont des combinaisons linéaires d’autres colonnes au moyen des sous étapes itératives de :
- Pour chaque première colonne de la matrice de description, sélectionner des secondes autres colonnes de la matrice de description telles que la différence entre la première colonne et la seconde colonne ne comporte aucune valeur strictement négative,
- Si aucune seconde autre colonne ne vérifie la condition précédente, passer à l’itération suivante,
- Sélectionner la seconde colonne qui minimise ladite différence,
- Soustraire à la première colonne la seconde colonne sélectionnée et itérer les étapes précédentes,
- Arrêter les itérations lorsque le résultat de la soustraction donne un vecteur nul et sélectionner la première colonne comme résultat d’une combinaison linéaire d’autres colonnes,
- Itérer les étapes précédentes en faisant varier la première colonne sur l’ensemble des colonnes de la matrice de description.
Selon une variante de réalisation, la méthode selon l’invention comprend en outre la décomposition des combinaisons de colonnes en combinaisons élémentaires.
Selon une variante de réalisation, la méthode selon l’invention comprend:
- la détermination d’une matrice de combinaison qui, lorsqu’appliquée à la matrice de description, substitue une colonne par la combinaison linéaire de colonnes associée,
- la multiplication itérative de la matrice de combinaison par elle-même jusqu’à ce que la matrice de combinaison n’évolue plus.
Selon un aspect particulier de l’invention, la première matrice de traçabilité est déterminée à partir de la matrice de combinaison.
Selon une variante de réalisation, la méthode selon l’invention comprend en outre une étape préalable de suppression, dans la matrice de description, des colonnes redondantes et la génération d’une seconde matrice de traçabilité permettant de réaliser l’opération inverse à la suppression des colonnes redondantes.
Selon un aspect particulier de l’invention, les descripteurs sont des champs fixes ou variables de messages de log listés dans un fichier log.
L’invention a aussi pour objet une méthode, mise en œuvre par ordinateur, d’analyse automatique d’un fichier journal informatique dit fichier log comprenant les étapes de :
- Exécuter la méthode selon l’invention pour déterminer une représentation numérique du fichier log sous forme d’une matrice de description réduite,
- Exécuter un moteur d’apprentissage automatique recevant en entrée la matrice de description réduite, le moteur étant configuré pour détecter des situations d’intérêts dans le fichier log.
Selon une variante de réalisation, la méthode selon l’invention comprend une étape d’interprétation des résultats fournis par le moteur d’apprentissage automatique au moyen d’au moins la première matrice de traçabilité et/ou la seconde matrice de traçabilité.
Selon une variante de réalisation, la méthode selon l’invention comprend une étape d’entrainement du moteur d’apprentissage automatique sur des données d’entrainement constituées de représentations numériques de fichiers logs d’entrainement, l’entrainement étant configuré pour apprendre à identifier des situations d’intérêts dans les fichiers logs.
Selon un aspect particulier de l’invention, le moteur d’apprentissage automatique est entrainé pour classifier les représentations numériques des fichiers logs de sorte à prédire l’apparition d’une panne informatique d’un type prédéterminé dans un intervalle de temps futur prédéterminé.
Selon un aspect particulier de l’invention, le moteur d’apprentissage automatique est entrainé pour prédire l’évolution temporelle des représentations numériques des fichiers logs de sorte à détecter une déviation de cette évolution par rapport à une évolution prédéterminée, cette déviation étant caractéristique de l’apparition d’une panne informatique.
Selon un aspect particulier de l’invention, le moteur d’apprentissage automatique est implémenté à l’aide de réseaux de neurones récurrents et de réseaux de neurones totalement connectés.
L’invention a encore pour objet un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par un processeur, le programme comportant des instructions pour l'exécution de l’une des méthodes selon l’invention, lorsque le programme est exécuté par un processeur.
L’invention a encore pour objet un support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution de l’une des méthodes selon l’invention, lorsque le programme est exécuté par un processeur.
D’autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit en relation aux dessins annexés suivants.
La schématise, sur un organigramme, les étapes de mise en œuvre d’un procédé de détermination d’une représentation numérique d’un fichier informatique log tel que décrit dans la demande de brevet FR2201383.
Le procédé débute à l’étape 101 par une analyse syntaxique d’un fichier informatique log ou fichier journal. Un tel fichier est composé d’un ou plusieurs messages de logs semi-structurés qui sont générés automatiquement par des programmes d’un système informatique à un rythme irrégulier. Un exemple de fichier log est donné à la . Sur l’exemple de la , le fichier log comporte un seul message de log. Un message de log est constitué d’un texte semi-structuré qui peut comporter des mots, des valeurs numériques, des listes ou des structures imbriquées de ces précédents types.
Chaque message de log est constitué d’un ensemble de champs fixes, encore appelés clés, chaque champ fixe étant associé à une valeur variable. Par exemple, sur l’exemple de la , la chaine de caractères « level » : « info » est constituée d’un champ fixe « level » et d’une valeur variable qui est égale à « info » dans l’exemple mais qui pourrait être égale à « warn » ou « error ». Autrement dit, il s’agit d’une variable catégorielle à trois états possibles « info », « warn », « error ».
Un message de log correspond à un évènement associé à un horodatage (timestamp). Par exemple, sur l’exemple de la , toutes les clés et valeurs associées correspondent à un évènement de vérification associé à un horodatage.
L’étape 101 d’analyse syntaxique du fichier log consiste à extraire tous les messages de log du fichier log.
A l’étape 102, une étape de filtrage de segments de messages inutiles et de sélection de motifs est réalisée. Cette étape consiste à sélectionner les parties de messages de logs, encore appelés motifs, qui seront ensuite utilisées pour définir l’encodage de la représentation numérique du message de log.
A l’issue de l’étape 102 on obtient une liste de motifs qui seront utilisés pour l’encodage, chaque motif étant constitué d’un couple associant une clé, correspondant à un champ fixe, et d’une valeur variable parmi un ensemble limité de valeurs possibles.
Ces motifs sont ensuite encodés à l’étape 103 par un codage binaire « 1 parmi n » qui consiste à coder un motif par un vecteur binaire de taille n égale au nombre d’états possibles de la valeur variable. L’index du bit valant 1 est le numéro de l’état pris par la variable.
Dans l’exemple de la , la clé « level » a trois états possibles pour sa valeur variable : « info », « warn », « error » et le motif « level :info » est codé par le vecteur {1 ;0 ;0}. Ainsi si un message de log comporte le couple clé valeur « level=info », le vecteur l’encodant a comme première valeur 1 et les deux suivantes sont nulles, s’il comporte « level=warn », la première et la troisième valeur sont nulles et la deuxième vaut 1 et s’il comporte « level=error » les deux premières valeurs sont nulles et la troisième vaut 1. Si jamais il ne comporte aucun de ces couples clé-valeur, les trois premières valeurs du vecteur sont nulles. En pratique à chaque couple clé-valeur est assignée une coordonnée du vecteur d’encodage.
La clé « message » a quatre états possibles « stopping reactor », « processing event », « unknown handler » et « received signal » et le motif « message : processing event » est codé par le vecteur {0 ;1 ;0 ;0}. La clé « event :check :name » a trois états possibles « check_cpu », « check_httpd » et « check_memory » et le motif « event :check :name :check_httpd » est codé par le vecteur {0 ;1 ;0}.
A l’étape 104, l’ensemble des vecteurs binaires obtenus pour tous les motifs d’un message de log ou d’un fichier log sont concaténés dans un seul vecteur numérique. Ainsi chacune des coordonnées du vecteur global donne l’indication de la présence d’une valeur associée à une clé dans le fichier log. Cette étape est représentée sur la par le vecteur V.
A l’étape 105, on applique ensuite une agrégation temporelle aux vecteurs numériques encodés à différents instants. Comme indiqué précédemment, les fichiers logs ou plus généralement les messages de logs peuvent être émis de façon irrégulière au cours du temps. Or, pour pouvoir traiter les représentations numériques de ces fichiers de façon automatisée, il est nécessaire d’avoir des représentations régulièrement réparties temporellement. On utilise pour cela une agrégation temporelle via une fenêtre temporelle glissante définie par une taille de fenêtre et une taille de pas.
L’étape d’agrégation temporelle 105 est illustrée sur un exemple à la figure 3. Les messages de log sont désignés et représentés par des traits verticaux au-dessus de l’axe du temps sur la . Ces messages de logs au nombre de 8 sur la sont répartis irrégulièrement dans le temps. L’encodage sous forme de vecteur binaire de chaque message de log est représenté sous chaque message par un vecteur entre crochets. Pour l’illustration nous faisons figurer trois coordonnées binaires de ces vecteurs correspondant à la présence ou non de respectivement trois couples clé-valeur dans les messages de logs. L’information des messages de logs est agrégée en réalisant une somme des vecteurs représentant les logs par fenêtre temporelle. Ces fenêtres temporelles représentées par des rectangles sur la sont de taille constante et sont distribuées régulièrement. Autrement dit, la fenêtre temporelle d’agrégation a une durée fixe et un début qui est incrémenté d’un pas de durée fixe également. Il s’agit d’une fenêtre temporelle glissante.
Pour une fenêtre temporelle le résultat de l’agrégation est par exemple égal à la somme des vecteurs numériques présents dans la fenêtre : . Cette somme des vecteurs de représentation des logs est illustrée sur la figure 3 par les vecteurs Xl. Chacune de leurs coordonnées peut être interprétée comme le nombre de fois qu’un couple clé-valeur est apparu dans la fenêtre temporelle. Chaque vecteur est un compte de clé-valeur à la fin d’une fenêtre temporelle. Les vecteurs sont figurés par les traits verticaux en dessous de l’axe du temps. Ceux-ci sont régulièrement espacés tous les pas de temps. De plus l’agrégation des vecteurs permet d’avoir des vecteurs qui sont plus denses que les vecteurs et qui sont à valeur entière (et non binaire).
L’avantage de l’agrégation temporelle est d’obtenir une série temporelle avec un pas de temps fixe. Ce point est important notamment lorsque des algorithmes d’apprentissage automatique pour les séquences sont utilisés (par exemple les réseaux de neurones récurrents). De plus, cette agrégation réduit le volume d’information qui doit être traité par la partie prédictive ce qui simplifie cette étape. Enfin cette opération remet le signal sur une échelle de temps qui est compatible avec la durée de la tâche à accomplir (de l’ordre de la minute par exemple pour des opérations de maintenance de ce genre d’équipements) par rapport à une émission de logs très rapide dans le temps (de l’ordre de la milliseconde).
Le procédé de détermination d’une représentation numérique d’un fichier log décrit à la permet de générer une représentation condensée et temporellement régulière des informations pertinentes d’un fichier log dans le but de faciliter son analyse automatique.
Cette représentation numérique peut être mise sous la forme d’une matrice dont une première dimension (par exemple les colonnes) correspond aux différents descripteurs du fichier log dont les occurrences temporelles sont comptées (valeurs des vecteurs Xlsur la ) et la seconde dimension (par exemple les lignes) correspond à la dimension temporelle.
Comme indiqué en préambule, un inconvénient de ce type de représentation numérique est sa dimension qui peut être très importante selon l’application.
Un objectif de l’invention est donc de proposer une méthode de réduction de dimensionnalité applicable à une représentation numérique fournie en sortie de la méthode décrite à la ou de toute autre méthode permettant d’encoder un fichier log sous forme d’une matrice de valeurs entières.
La schématise, sur un organigramme, les étapes de mise en œuvre d’une méthode de réduction de dimension selon un mode de réalisation de l’invention.
La première étape 401 consiste à déterminer une matrice d’encodage M d’un fichier log F au moyen de la méthode d’encodage décrite à la ou de toute autre méthode permettant de générer une représentation d’un fichier log sous la forme d’une matrice M dont chaque colonne correspond à un descripteur du fichier log et chaque ligne correspond à un intervalle temporel. Les valeurs de la matrice M sont des compteurs d’occurrence de chaque descripteur au cours de l’intervalle temporel.
Un exemple de matrice M à Nkvcolonnes et Ntlignes est représenté à la .
La deuxième étape 402 consiste à supprimer les colonnes doublons. En effet, certains décomptes de clé-valeur peuvent suivre une évolution temporelle identique. Cela peut être dû par exemple à deux clé-valeurs qui sont systématiquement et exclusivement ensemble dans un même message de log.
Par exemple, dans la problématique de maintenance prédictive d’infrastructure cloud, les logs comportant le nom d’un serveur, comportent aussi son adresse IP et donc le couple ‘event:client :name=xxx.eqx.intranet’ correspondant au nom d’un serveur est toujours accompagné du couple ‘event :client :address=127.0.0.5’ qui est l’adresse IP correspondante. Ces deux descripteurs ont donc la même évolution temporelle.
Il peut aussi parfois s’agir de logs qui sont systématiquement émis conjointement dans une fenêtre temporelle. On constate par exemple que les couples ‘event:check:name:check_var_partition_usage’ et ‘event:check:name:check_vg_lxc_usage’ qui appartiennent à des enregistrements de logs distincts, ont la même évolution temporelle.
Afin de réduire la dimension des données pour les calculs qui vont suivre, il est d’intérêt de supprimer cette information redondante. En agrégeant toutes les informations dans une matrice de dimension où est le nombre de pas de temps et est le nombre de couples clé-valeur sélectionné ou plus généralement le nombre de descripteurs, cela revient à supprimer certaines colonnes de cette matrice. Autrement dit, si plusieurs colonnes sont identiques, on ne conserve que la première colonne du groupe de colonnes identiques dans la matrice.
Les colonnes identiques sont, par exemple, détectées grâce à un algorithme récursif. La première colonne est comparée à toutes les autres. Une fois les potentiels doublons détectés, ils sont supprimés et l’algorithme reprend en passant à la colonne suivante. Cette démarche permet de construire la matrice de dimension où est le nombre de doublons, représentée à la figure 5 sur un exemple. En multipliant par , on obtient , la matrice débarrassée des colonnes doublons et ayant une dimension réduite de ) colonnes par lignes.
La figure 5 illustre l’action de sur . Dans cet exemple les colonnes d’indices 1, 2 et 3 de la matrice d’entrée M sont identiques entre elles. Par ailleurs, les colonnes d’indices 4 et 178 sont identiques entre elles. Ces cinq colonnes ne représentent finalement que deux colonnes uniques, qui peuvent être représentées par exemple par la colonne d’indice 1 et la colonne d’indice 4. Lors de la suppression des colonnes doublons, seule la première colonne d’un groupe de doublons est conservée. En l’occurrence on ne conserve que la colonne d’indice 1 pour le premier groupe et la colonne d’indice 4 pour le second groupe.
La matrice est construite de manière que sa colonne d’indice a une unique valeur 1 à la ligne d’indice où correspond dans la matrice à l’indice de la première colonne du groupe de doublons. Toutes les autres valeurs de la colonne sont nulles.
Dans l’exemple de la figure 5, la première colonne de la matrice permet de sélectionner la colonne d’indice 1. Elle a pour valeur 1 à la première ligne et des valeurs nulles partout ailleurs car la colonne d’indice 1 de la matrice est la première colonne du premier groupe de doublons. La deuxième colonne de la matrice qui permet de sélectionner la colonne du second groupe de doublons a pour valeur 1 à la quatrième ligne car la colonne d’indice 4 de la matrice est la première colonne du second groupe de doublons.
Parallèlement à la construction de la matrice , on construit la matrice de dimension qui permet de retrouver à partir de : .
La figure 6 présente l’action de sur . Une ligne de a pour valeur 1 pour tous les indices de colonne tel que les colonnes de ont la même valeur que la colonne de . Par exemple, la première ligne de a pour valeur 1 pour les colonnes 1 à 3 car les colonnes 1 à 3 de ont la même valeur que la première colonne de . Toutes les autres valeurs de la ligne sont nulles. Pour la deuxième ligne les colonnes 4 et 178 ont pour valeur 1 car les colonnes 4 et 178 de sont identiques à la colonne 2 de .
La matrice D1est une matrice de traçabilité qui permet de retrouver la matrice M à partir de la matrice M1.
Dans une variante de réalisation de l’invention, l’étape 402 peut être omise dans la mesure où la matrice M ne comporte pas de doublons ou que les doublons sont identifiés par un autre moyen.
L’étape suivante 403 consiste à rechercher les colonnes qui sont des combinaisons linéaires à coefficients entiers positifs d’autres colonnes pour les supprimer afin de réduire encore le nombre de colonnes de la matrice M1.
En effet, certaines colonnes de la matrice M1peuvent être des combinaisons à coefficients entiers positifs d’autres colonnes, en fonction de la manière dont les messages de logs sont générés.
Par exemple une colonne de peut correspondre à l’évolution du nombre de couples clé-valeur « event:check :interval :300 ». Les sondes dont l’intervalle est de 300 sont les sondescheck_load_parent,memory, check_cpu,check_swap_openvzetcheck_swap_proxmox. On retrouve alors dans cet exemple, la combinaison suivante:
En prenant cet exemple, on voit que l’on peut supprimer la colonne correspondant au descripteur « event :check :interval=300 » sans pour autant perdre d’information.
Ainsi, l’étape 403 consiste, afin de réduire encore la dimension de la matrice d’entrée, à supprimer les colonnes de qui sont des combinaisons linéaires d’autres colonnes avec des coefficients entiers et positifs.
Dans une variante de réalisation de l’invention, plutôt que de supprimer la colonne correspondant au descripteur « event :check :interval=300 », il est possible de supprimer n’importe quelle autre colonne de la combinaison linéaire et retrouver sa valeur en soustrayant toutes les autres à la valeur « event :check :interval=300 ».
Cependant, un avantage à la suppression de la colonne qui constitue le résultat de la combinaison linéaire est que cela permet de ne garder que les signaux représentant des composantes d’un signal plus dense.
Selon un mode de réalisation particulier, l’étape 403 peut être réalisée en deux sous étapes 404,405. La première sous étape 404 consiste à rechercher, dans la matrice M1les colonnes qui sont des combinaisons linéaires d’autres colonnes avec des coefficients entiers et positifs. La seconde sous étape 405 consiste à déterminer une matrice de combinaison permettant de générer ensuite à la fois une matrice C2qui permet de supprimer dans la matrice M1les colonnes qui sont des combinaisons linéaires d’autres colonnes et une matrice D2de traçabilité permettant de réaliser l’opération inverse.
La illustre, sur un organigramme, le fonctionnement de la sous étape 404.
L’algorithme décrit à la figure 7 permet de trouver les colonnes de la matrice M1qui sont des combinaisons d’autres colonnes et de trouver leur composition. La sortie de cet algorithme est l’ensemble . Chaque est l’ensemble des indices des colonnes composant la colonne d’indice . Les éléments de peuvent se répéter. Si par exemple on a , on a alors .
Afin de déterminer les signaux qui sont des composantes d’autres signaux, l’algorithme de la figure 7 est basé sur une stratégie de type « greedy search » ou algorithme glouton. Considérant une colonne de la matrice M1, on recherche toutes les colonnes qui peuvent potentiellement faire partie d’une combinaison linéaire dont le résultat est cette colonne. L’algorithme est initialisé à l’étape 700 avec la colonne j= 0 et fonctionne de façon itérative en balayant toutes les colonnes. On fixe au début de l’itération ,
A l’étape 701, on recherche les colonnes telles que , avec k variant sur toutes les colonnes de j+1 à et i variant sur toutes les lignes.
En effet, si la différence précitée est positive ou nulle, cela signifie que la colonne d’indice k peut faire partie d’une combinaison linéaire dont le résultat est la colonne d’indice j.
Dans le cas où aucune colonne ne respecte cette condition (étape 702) alors on passe à la colonne d’indice j suivante. En effet si aucune colonne k ne satisfait , alors la colonne j ne peut pas être décomposée comme une combinaison linéaire à coefficients entiers des autres colonnes.
Ensuite à l’étape 703, on recherche la colonne, parmi celles sélectionnées à l’étape précédente 701, qui minimise une erreur ou une distance avec la colonne d’indice j. Par exemple, on recherche la colonne d’indice k qui minimise la norme . La norme utilisée est par exemple une erreur quadratique moyenne ou une autre norme permettant d’évaluer une distance entre deux vecteurs. Ensuite on ajoute à l’étape 704 k à la liste d’indices ,
A l’étape 705, on calcule un résidu en soustrayant à la colonne j, la colonne k sélectionnée à l’étape 702 :
On compare ensuite à l’étape 706 ce résidu à 0 et si le résidu est nul (étape 707), on ajoute à l’étape 707 la liste à l’ensemble de listes , sinon on retourne à l’étape 701 tant que le résidu est différent de 0 en appliquant les étapes 701,702,703,704,705 au vecteur résidu.
Enfin les étapes 701 à 707 sont itérées en balayant toutes les colonnes sur l’indice j.
Le fait d’utiliser un algorithme glouton procure l’avantage d’être rapide, néanmoins cela ne garantit pas de trouver toutes les combinaisons possibles.
Dans une variante de réalisation de la sous étape 404, il est possible d’utiliser une approche de type « beam search » ou algorithme de recherche en faisceau qui permet d’augmenter l’espace de recherches, mais nécessite de régler manuellement les paramètres et augmente le temps de calcul. Cette variante implique de modifier l’étape 702 pour sélectionner plusieurs colonnes au lieu d’une seule afin d’augmenter l’espace de recherche.
L’étape 404 permet d’identifier les colonnes à supprimer dans la matrice M1et ainsi de construire la matrice qui supprime les colonnes qui sont des combinaisons d’autres pour obtenir la matrice , de dimension réduite.
Cependant l’étape 404 ne permet pas de construire la matrice de traçabilité qui permet de retrouver à partir de la matrice qui ne comporte plus de combinaison (avec ).
En effet lorsqu’on recherche les composants d’une colonne, il arrive que ses composants soient eux même des combinaisons d’autres colonnes. Par exemple, il est possible d’avoir la configuration suivante :
Comme on peut le constater, mis à part , toutes les autres colonnes sont des combinaisons (en l’occurrence de ). Or pour pouvoir construire la matrice , il faut pouvoir exprimer les combinaisons uniquement en fonction de colonnes qui ne sont pas elles-mêmes des combinaisons. Dans l’exemple ci dessus, il faudrait décomposer les combinaisons uniquement en fonction de la colonne élémentaire .
Afin de retrouver ces combinaisons élémentaires, nous introduisons la matrice de combinaison de taille qui, lorsque appliquée à , substitue une colonne par sa combinaison.
La sous étape 405 vise à déterminer la matrice de combinaison .
Cette matrice peut être déterminée via l’algorithme suivant qui prend en entrée la liste des indices des colonnes composant la colonne d’indice pour chaque colonne sélectionnée comme étant une combinaison et qui délivre en sortie la matrice de dimensions ).
Si est une combinaison des colonnes :
Pour :
Tant que :
Dans l’algorithme précédent, étant donné que l’entrée contient parfois le même indice répété, est obtenu par plusieurs sommes successives. Par exemple . Au cours de l’algorithme , puis et encore .
Lorsque l’on applique à elle-même ( , on substitue chaque élément d’une combinaison par sa propre combinaison. Le Tableau 1 illustre l’action de sur elle-même au regard des combinaisons précédemment citées comme exemple. On remarque que dès lors qu’une combinaison est composée d’éléments qui ne sont pas eux-mêmes des combinaisons, celle-ci reste inchangée par l’action de . Ainsi lorsque , toutes les combinaisons de sont des combinaisons élémentaires (qui ne peuvent pas être scindées en plus petite combinaison).
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
Finalement on conserve la matrice des combinaisons élémentaires . Une fois la matrice des combinaisons élémentaires obtenue, on peut alors aisément déterminer les matrices et par exemple en utilisant l’algorithme suivant qui prend en entrée la matrice et qui fournit en sortie les matrices de dimensions et de dimensions
Ces deux matrices sont initialisées à des matrices nulles, ensuite on applique l’algorithme suivant :
Pour ) :
Si :
La construction des matrices de traçabilité D1et D2est identifiée par l’étape 406 sur la . En réalité ces matrices sont déterminées en parallèles des matrices C1et C2.
A l’issue du procédé décrit à la figure 4, il est possible d’obtenir une matrice de dimension réduite .
Par ailleurs, la matrice initiale peut être parfaitement retrouvée grâce aux matrices de traçabilité et : .
La réduction de la dimension supprime la redondance de l’information et facilite les calculs qui suivront en réduisant le nombre de paramètres utilisés dans les différents algorithmes d’apprentissage. De surcroît, l’information des colonnes identiques ou combinaisons d’autres renseigne aussi sur le comportement d’émission des logs.
On décrit à présent, à l’appui de la , un procédé d’analyse automatique de fichiers logs selon un mode de réalisation de l’invention.
La première étape 801 consiste en l’application du procédé décrit à la afin de générer des représentations numériques de fichiers logs ou de messages de logs, de façon régulière au cours du temps.
La seconde étape 802 consiste en l’application de la méthode de réduction de dimension selon l’invention décrite à la pour obtenir une matrice d’encodage de taille réduite.
A l’étape 803, un moteur d’apprentissage automatique est entrainé au moyen d’une base d’entrainement constituée de représentations numériques de fichiers logs issues de l’étape 802. Le moteur d’apprentissage automatique est entrainé à résoudre un problème d’analyse de fichiers logs.
Ensuite, à l’étape 804, le moteur d’apprentissage automatique entrainé est utilisé pour analyser automatiquement de nouvelles séquences de fichiers logs au moyen de leurs représentations numériques.
Les matrices de traçabilité D1 et D2 peuvent être utilisées lors de l’étape 804 pour appliquer les résultats de l’analyse aux données d’origine extraites du fichier log. En effet, grâce à ces matrices, les résultats du moteur d’apprentissage automatique sont interprétables car il est possible de les mettre en correspondance avec les données d’origine (avant réduction de dimension).
Selon un premier mode de réalisation, le moteur d’apprentissage automatique est entrainé à résoudre un problème de prédiction de l’évolution future des fichiers logs afin de détecter une déviation par rapport à une évolution nominale et ainsi prédire l’apparition de pannes informatiques.
Ce type d’analyse permet de prédire l’apparition de pannes informatiques peu fréquentes qui vont conduire à une déviation ponctuelle de l’évolution des fichiers logs par rapport à une évolution en l’absence de pannes.
Le moteur d’apprentissage automatique reçoit en entrée une séquence temporelle de représentations numériques de fichiers logs et est entrainé à prédire, en sortie, une séquence temporelle future.
Un exemple de moteur d’apprentissage automatique apte à réaliser une prédiction est représenté à la . Il est constitué d’un encodeur et d’un décodeur. L’encodeur est composé de plusieurs cellules de réseaux de neurones récurrents LSTM (Long Short Term Memory), chaque cellule reçoit un vecteur numérique Xtd’une séquence temporelle de taille T et fournit en sortie une représentation (ct,ht) qui permet d’extraire des caractéristiques pertinentes de la séquence. L’encodeur a pour fonction de générer une représentation de la séquence temporelle des vecteurs binaires.
Le décodeur est composé d’un nombre T’ de cellules LSTM égal à la taille de la séquence de sortie que l’on cherche à prédire, chaque cellule LSTM étant couplée à un réseau de neurones totalement connecté FC qui réalise la prédiction de chaque terme de la séquence à prédire.
En comparant la séquence prédite par le réseau encodeur-décodeur avec la séquence réellement reçue on détecte une déviation entre la séquence prédite et la séquence reçue qui correspond à l’apparition de phénomènes conduisant à une panne future. En effet, le réseau encodeur-décodeur ayant été préalablement entrainé sur des données d’entrainement correspondant à des scénarios sans pannes, il est configuré pour prédire l’évolution de la séquence de représentations numériques en l’absence de pannes. Ainsi, lorsque des motifs caractéristiques de l’apparition future d’une panne apparaissent dans la séquence d’entrée, ils peuvent être détectés par comparaison avec la séquence prédite qui elle correspond à un scénario sans pannes.
Selon un second mode de réalisation, le moteur d’apprentissage automatique est entrainé à résoudre un problème de classification afin de prédire l’apparition de certains types de pannes informatiques dans un intervalle de temps donné.
Ce second type d’analyse est plus adapté à la prédiction de pannes fréquentes. Il permet aussi d’identifier le type de pannes à venir pour activer une maintenance préventive adaptée.
Le moteur d’apprentissage automatique reçoit toujours une séquence temporelle d’entrée Xtet est configuré pour générer une sortie parmi un ensemble de classes, chaque classe correspondant à un type de panne sensée intervenir dans un intervalle de temps futur donné.
Un exemple de moteur d’apprentissage automatique apte à résoudre un tel problème de classification est constitué d’un encodeur du type décrit à la suivi d’un réseau de neurones totalement connecté dont les sorties correspondent aux classes de pannes à prédire.
Un tel réseau classifieur est préalablement entraîné sur des données d’entrainement constituées de différentes séquences issues de fichiers de log. Ces séquences peuvent contenir ou non des pannes. Les données d’entrainement sont labellisées avec le type de pannes à détecter (fonctionnement supervisé).
Une autre approche consiste en la prédiction future à partir d’une séquence passée pour le signal de logs numériques agrégés temporellement, tel qu’obtenu via l’invention. En effet si l’on connaît une association de clé-valeur caractéristique d’un type de panne, on peut directement savoir que celle-ci est encodée par la i-ème coordonnée du vecteur de log. Une fois agrégée temporellement, la i-ème coordonnée du signal représente le compte de l’apparition de la clé-valeur caractéristique de la panne. Si la i-ème coordonnée du signal prédit est non nulle alors le moteur d’apprentissage peut prédire l’apparition d’une (ou plusieurs) pannes du même type. Dans ce cas, il s’agit également d’un contexte d’apprentissage supervisé mais pour une tâche de régression.
L’invention peut être mise en œuvre en tant que programme d’ordinateur comportant des instructions pour son exécution. Le programme d’ordinateur peut être enregistré sur un support d’enregistrement lisible par un processeur.
La référence à un programme d'ordinateur qui, lorsqu'il est exécuté, effectue l'une quelconque des fonctions décrites précédemment, ne se limite pas à un programme d'application s'exécutant sur un ordinateur hôte unique. Au contraire, les termes programme d'ordinateur et logiciel sont utilisés ici dans un sens général pour faire référence à tout type de code informatique (par exemple, un logiciel d'application, un micro logiciel, un microcode, ou toute autre forme d'instruction d'ordinateur) qui peut être utilisé pour programmer un ou plusieurs processeurs pour mettre en œuvre des aspects des techniques décrites ici. Les moyens ou ressources informatiques peuvent notamment être distribués ("Cloud computing"), éventuellement selon des technologies de pair-à-pair. Le code logiciel peut être exécuté sur n'importe quel processeur approprié (par exemple, un microprocesseur) ou cœur de processeur ou un ensemble de processeurs, qu'ils soient prévus dans un dispositif de calcul unique ou répartis entre plusieurs dispositifs de calcul (par exemple tels qu’éventuellement accessibles dans l’environnement du dispositif). Le code exécutable de chaque programme permettant au dispositif programmable de mettre en œuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur ou en mémoire morte. De manière générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif avant d'être exécutés. L'unité centrale peut commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur ou dans la mémoire morte ou bien dans les autres éléments de stockage précités.
L’invention peut être mise en œuvre pour analyser les fichiers logs générés par un système de serveurs cloud comme illustré à la . Plusieurs serveurs S1,S2,S3 génèrent différents fichiers de logs F1,F2,F3 qui sont capturés par un élément collecteur C, par exemple un outil de capture réseau. Les fichiers de logs sont transmis à un module AL d’analyse automatique de logs configuré pour implémenter l’invention.
L’invention peut s’étendre à tout système générant des messages de logs semi-structurés. Dans le cas de la prédiction de pannes dans des infrastructures de serveurs, le manque de connaissances expertes ainsi que la génération d’un volume important de données en une courte période de temps nécessite d’apprendre automatiquement les motifs caractéristiques des pannes. De plus, pour préserver la généralisation de l’approche dans le cas de systèmes dont l’architecture peut évoluer dans le temps (rajout de nouveaux équipements, fonctionnalités ou capteurs), l’encodage de fichiers de log nécessite une approche automatique agnostique. Le caractère interprétable des logs est crucial pour remonter à l’origine des pannes. Enfin le fait de conserver similarités et différences entre les encodages de log facilite grandement l’analyse.
Par exemple on veut pouvoir relier deux logs concernant la surveillance des cpu (tous deux possèdent le motif ‘check :name=check_cpu’) et les différencier sur le fait que l’un concerne un avertissement (il possède le motif ‘level=warning’) et l’autre un incident (il possède le motif ‘level=error’). Pour ces différentes raisons, l’implémentation de l’invention dans ce cas est supérieure aux approches connues.
Si l’implémentation est présentée à la pour une infrastructure de serveur, les avantages de l’invention cités précédemment se transposent à tout autre problème où un grand nombre de logs semi-structurés nécessitent un traitement automatique et interprétable et où les connaissances expertes pour ce traitement manquent.
Dans l’exemple d’implémentation de la , la prédiction de panne est réalisée grâce à un algorithme de réseau de neurones récurrent, réalisant la prédiction de séquence futures à partir de séquences passées tel qu’illustré à la , mais la démarche se généralise pour tout autre type de prédiction et d’algorithme d’apprentissage automatique (i.e. autres types de réseaux de neurones, machines à vecteurs de support, forêts d’arbres décisionnels). L’implémentation peut se faire avec n’importe quel langage de programmation universel tel que Python, Java, C++. Elle permet de traiter des messages de logs semi-structurés qui peuvent être aux formats XML, JSON par exemple. Ces instructions peuvent être exécutées sur n’importe quel dispositif de calcul comportant une mémoire, un processeur communicant via un bus et dont la mémoire peut stocker des instructions qui peuvent être interprétées par le processeur. L’invention de par ses principes peut être parallélisable, notamment l’extraction de motifs pour représenter les logs, la représentation des logs, l’apprentissage et l’inférence d’algorithmes d’apprentissage automatique. De ce fait, elle peut être implémentée de façon très efficace sur des calculateurs massivement parallèles (par exemple des GP-GPUs, en utilisant des langages tels que OpenCL ou CUDA).
Claims (15)
- Méthode, mise en œuvre par ordinateur, de réduction de dimension d’une représentation numérique d’un fichier journal informatique dit fichier log, le fichier log comprenant une pluralité de descripteurs ayant chacun une évolution temporelle donnée, la méthode comprenant les étapes de :
- Déterminer (401) une représentation numérique d’un fichier log sous la forme d’une matrice de description dont chaque colonne correspond à un descripteur et chaque ligne correspond à un intervalle temporel, la matrice comprenant un ensemble de valeurs entières positives ou nulles représentant un compteur d’occurrence de chaque descripteur dans chaque intervalle temporel,
- Réduire (403) la dimension de la matrice de description en supprimant les colonnes qui sont des combinaisons linéaires à coefficients entiers et positifs d’autres colonnes,
- Générer (406) une première matrice de traçabilité permettant de réaliser l’opération inverse à la suppression des colonnes combinaisons linéaires d’autres colonnes.
- Méthode de réduction de dimension selon la revendication 1 comprenant une étape (404) d’identification des colonnes qui sont des combinaisons linéaires d’autres colonnes au moyen des sous étapes itératives de :
- Pour chaque première colonne de la matrice de description, sélectionner (701) des secondes autres colonnes de la matrice de description telles que la différence entre la première colonne et la seconde colonne ne comporte aucune valeur strictement négative,
- Si aucune seconde autre colonne ne vérifie la condition précédente, passer (702) à l’itération suivante,
- Sélectionner (703) la seconde colonne qui minimise ladite différence,
- Soustraire (705) à la première colonne la seconde colonne sélectionnée et itérer les étapes précédentes,
- Arrêter (706) les itérations lorsque le résultat de la soustraction donne un vecteur nul et sélectionner (707) la première colonne comme résultat d’une combinaison linéaire d’autres colonnes,
- Itérer les étapes précédentes en faisant varier la première colonne sur l’ensemble des colonnes de la matrice de description.
- Méthode de réduction de dimension selon l’une quelconque des revendications précédentes comprenant en outre la décomposition (405) des combinaisons de colonnes en combinaisons élémentaires.
- Méthode de réduction de dimension selon l’une quelconque des revendications précédentes comprenant :
- la détermination (405) d’une matrice de combinaison qui, lorsqu’appliquée à la matrice de description, substitue une colonne par la combinaison linéaire de colonnes associée,
- la multiplication itérative de la matrice de combinaison par elle-même jusqu’à ce que la matrice de combinaison n’évolue plus.
- Méthode de réduction de dimension selon la revendication 4 dans laquelle la première matrice de traçabilité est déterminée à partir de la matrice de combinaison.
- Méthode de réduction de dimension selon l’une quelconque des revendications précédentes comprenant en outre une étape préalable (402) de suppression, dans la matrice de description, des colonnes redondantes et la génération d’une seconde matrice de traçabilité permettant de réaliser l’opération inverse à la suppression des colonnes redondantes.
- Méthode de réduction de dimension selon l’une quelconque des revendications précédentes dans laquelle les descripteurs sont des champs fixes ou variables de messages de log listés dans un fichier log.
- Méthode, mise en œuvre par ordinateur, d’analyse automatique d’un fichier journal informatique dit fichier log comprenant les étapes de :
- Exécuter (801,802) la méthode selon l’une quelconque des revendications précédentes pour déterminer une représentation numérique du fichier log sous forme d’une matrice de description réduite,
- Exécuter (804) un moteur d’apprentissage automatique recevant en entrée la matrice de description réduite, le moteur étant configuré pour détecter des situations d’intérêts dans le fichier log.
- Méthode d’analyse automatique d’un fichier log selon la revendication 8 comprenant une étape d’interprétation des résultats fournis par le moteur d’apprentissage automatique au moyen d’au moins la première matrice de traçabilité et/ou la seconde matrice de traçabilité.
- Méthode d’analyse automatique d’un fichier log selon l’une quelconque des revendications 8 ou 9 comprenant une étape d’entrainement (803) du moteur d’apprentissage automatique sur des données d’entrainement constituées de représentations numériques de fichiers logs d’entrainement, l’entrainement étant configuré pour apprendre à identifier des situations d’intérêts dans les fichiers logs.
- Méthode d’analyse automatique d’un fichier log selon l’une quelconque des revendications 8 à 10 dans laquelle le moteur d’apprentissage automatique est entrainé (803) pour classifier les représentations numériques des fichiers logs de sorte à prédire l’apparition d’une panne informatique d’un type prédéterminé dans un intervalle de temps futur prédéterminé.
- Méthode d’analyse automatique d’un fichier log selon l’une quelconque des revendications 8 à 10 dans laquelle le moteur d’apprentissage automatique est entrainé (803) pour prédire l’évolution temporelle des représentations numériques des fichiers logs de sorte à détecter une déviation de cette évolution par rapport à une évolution prédéterminée, cette déviation étant caractéristique de l’apparition d’une panne informatique.
- Méthode d’analyse automatique d’un fichier log selon l’une quelconque des revendications 8 à 12 dans laquelle le moteur d’apprentissage automatique est implémenté à l’aide de réseaux de neurones récurrents et de réseaux de neurones totalement connectés.
- Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par un processeur, le programme comportant des instructions pour l'exécution de l’une des méthodes selon l’une quelconque des revendications 1 à 13, lorsque le programme est exécuté par un processeur.
- Support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution de l’une des méthodes selon l’une quelconque des revendications 1 à 13, lorsque le programme est exécuté par un processeur.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2214625A FR3144678A1 (fr) | 2022-12-29 | 2022-12-29 | Méthode de réduction de dimension d'une représentation numérique d'un fichier log informatique et méthode d'analyse d'un tel fichier |
PCT/EP2023/087711 WO2024141501A1 (fr) | 2022-12-29 | 2023-12-22 | Methode de reduction de dimension d'une representation numerique d'un fichier log informatique et methode d'analyse d'un tel fichier |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2214625 | 2022-12-29 | ||
FR2214625A FR3144678A1 (fr) | 2022-12-29 | 2022-12-29 | Méthode de réduction de dimension d'une représentation numérique d'un fichier log informatique et méthode d'analyse d'un tel fichier |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3144678A1 true FR3144678A1 (fr) | 2024-07-05 |
Family
ID=86851307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2214625A Pending FR3144678A1 (fr) | 2022-12-29 | 2022-12-29 | Méthode de réduction de dimension d'une représentation numérique d'un fichier log informatique et méthode d'analyse d'un tel fichier |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3144678A1 (fr) |
WO (1) | WO2024141501A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2201383A1 (en) | 1972-09-27 | 1974-04-26 | Tardieu Andre | Floor beam rib orientation - with ribs resting perpendicularly to supports, for reduced beam wt. |
US20190065343A1 (en) * | 2017-08-29 | 2019-02-28 | Fmr Llc | Automated Log Analysis and Problem Solving Using Intelligent Operation and Deep Learning |
US20200057906A1 (en) * | 2017-04-03 | 2020-02-20 | Nippon Telegraph And Telephone Corporation | Analysis device, analysis method, and analysis program |
CN110851654A (zh) | 2019-09-10 | 2020-02-28 | 南京邮电大学 | 基于张量化数据降维的工业设备故障检测分类方法 |
US10909079B1 (en) | 2018-03-29 | 2021-02-02 | EMC IP Holding Company LLC | Data-driven reduction of log message data |
-
2022
- 2022-12-29 FR FR2214625A patent/FR3144678A1/fr active Pending
-
2023
- 2023-12-22 WO PCT/EP2023/087711 patent/WO2024141501A1/fr unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2201383A1 (en) | 1972-09-27 | 1974-04-26 | Tardieu Andre | Floor beam rib orientation - with ribs resting perpendicularly to supports, for reduced beam wt. |
US20200057906A1 (en) * | 2017-04-03 | 2020-02-20 | Nippon Telegraph And Telephone Corporation | Analysis device, analysis method, and analysis program |
US20190065343A1 (en) * | 2017-08-29 | 2019-02-28 | Fmr Llc | Automated Log Analysis and Problem Solving Using Intelligent Operation and Deep Learning |
US10909079B1 (en) | 2018-03-29 | 2021-02-02 | EMC IP Holding Company LLC | Data-driven reduction of log message data |
CN110851654A (zh) | 2019-09-10 | 2020-02-28 | 南京邮电大学 | 基于张量化数据降维的工业设备故障检测分类方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2024141501A1 (fr) | 2024-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Farzad et al. | Unsupervised log message anomaly detection | |
CN111712813B (zh) | 多维时间序列数据的智能预处理 | |
Li et al. | FLAP: An end-to-end event log analysis platform for system management | |
EP3991044A1 (fr) | Diagnostic et triage de problèmes de performance dans des services à grande échelle | |
EP3767558B1 (fr) | Procede et dispositif de determination d'une duree estimee avant un incident technique dans une infrastructure informatique a partir de valeurs d'indicateurs de performance | |
EP3767467A1 (fr) | Procédé et dispositif de détermination d'une valeur d'indice de performance de prédiction d anomalies dans une infrastructure informatique à partir de valeurs d'indicateurs de performance | |
EP3846087A1 (fr) | Procede et systeme de selection d'un modele d'apprentissage au sein d'une pluralite de modeles d'apprentissage | |
US11568344B2 (en) | Systems and methods for automated pattern detection in service tickets | |
FR3076384A1 (fr) | Detection d'anomalies par une approche combinant apprentissage supervise et non-supervise | |
FR3098940A1 (fr) | Procédé et dispositif de détermination d’une valeur de risque d’incident technique dans une infrastructure informatique à partir de valeurs d’indicateurs de performance | |
Hegde | Anomaly detection in time series data using data-centric AI | |
US11501058B2 (en) | Event detection based on text streams | |
EP3846047A1 (fr) | Procédé et système d'identification de variables pertinentes | |
FR3144678A1 (fr) | Méthode de réduction de dimension d'une représentation numérique d'un fichier log informatique et méthode d'analyse d'un tel fichier | |
EP3924850B1 (fr) | Procédé de construction de signatures comportementales de logiciels | |
Khodabakhsh et al. | Cloud-based fault detection and classification for oil & gas industry | |
WO2022023671A1 (fr) | Procede mis en oeuvre par ordinateur pour tester la cybersecurite d'un environnement cible | |
FR2901037A1 (fr) | Procede et dispositif de generation de motifs structurels de reference aptes a representer des donnees hierarchisees | |
WO2021009364A1 (fr) | Procédé d'identification de données aberrantes dans d'un jeu de données d'entrée acquises par au moins un capteur | |
Sukumar | Open research challenges with Big Data—A data-scientist's perspective | |
Sun et al. | Unveiling hidden anomalies: Leveraging smac-lstm for enhanced software log analysis | |
EP4033361B1 (fr) | Procédé et dispositif de détermination d'au moins une machine impliquée dans une anomalie détectée dans une infrastructure informatique complexe | |
Kapur et al. | Using Paragraph Vectors to improve our existing code review assisting tool-CRUSO | |
Wessman | Advanced Algorithms for Classification and Anomaly Detection on Log File Data: Comparative study of different Machine Learning Approaches | |
WO2024209100A1 (fr) | Procédé de génération d'un code informatique résistant aux attaques par injection sql |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20240705 |