Brevet FR3144678A1 — publié le 20240705

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 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 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. représente un organigramme détaillant les étapes de mise en œuvre d’un procédé de détermination d’une représentation numérique d’un fichier informatique log, représente un exemple de fichier informatique log et d’une représentation numérique d’un tel fichier, représente un exemple d’agrégation temporelle de représentations numériques de messages de log, représente un organigramme détaillant les étapes de mise en œuvre d’un procédé de réduction de dimension selon un mode de réalisation de l’invention, illustre sur un schéma, la suppression de colonnes doublons dans une matrice d’encodage, selon une étape de l’invention, illustre sur un schéma, la génération d’une matrice de traçabilité permettant de reconstruire la matrice d’encodage à partir d’une matrice de dimension réduite dans laquelle les colonnes doublons ont été supprimées, représente un organigramme détaillant une étape de sélection de colonnes correspondant à une combinaison linéaire d’autres colonnes dans une matrice d’encodage, selon une étape de l’invention, représente un organigramme détaillant les étapes de mise en œuvre d’un procédé d’analyse automatique d’un fichier informatique log selon un mode de réalisation de l’invention, représente un schéma fonctionnel d’un exemple de moteur d’apprentissage automatique configuré pour mettre en œuvre le procédé d’analyse automatique de la , représente un schéma d’un système informatique configuré pour mettre en œuvre l’invention. 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 X l . 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 X l sur 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 à N kv colonnes et N t lignes 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 D 1 est une matrice de traçabilité qui permet de retrouver la matrice M à partir de la matrice M 1 . 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 M 1 . En effet, certaines colonnes de la matrice M 1 peuvent ê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 sondes check_load_parent , memory, check_cpu , check_swap_openvz et check_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 M 1 les 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 C 2 qui permet de supprimer dans la matrice M 1 les colonnes qui sont des combinaisons linéaires d’autres colonnes et une matrice D 2 de 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 M 1 qui 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 M 1 , 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 M 1 et 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 ). est initialisée à la matrice identité. Si est une combinaison des colonnes : Pour : Tant que : est d’abord créée telle que si n’est pas une combinaison alors et toutes les autres valeurs de la ligne sont nulles ( . Si en revanche est une combinaison, et pour tous les indices de la combinaison, où est le coefficient associé à la colonne . Par exemple et partout ailleurs, 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é D 1 et D 2 est identifiée par l’étape 406 sur la . En réalité ces matrices sont déterminées en parallèles des matrices C 1 et C 2 . 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 X t d’une séquence temporelle de taille T et fournit en sortie une représentation (c t ,h t ) 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 X t et 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). 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.