Préambule
Ce billet de blog présente le travail réalisé pour un client institutionnel dans le cadre d’une mission d’analyse de leur politique documentaire.
Ce billet se décompose en 3 parties :
- Présentation de l’objectif, du contexte et de la démarche
- Présentation de l’étude technique avec une partie des indicateurs obtenus
- Présentation de l’étude fonctionnelle avec une partie des arborescences
Introduction
L’objectif de l’audit est de réaliser une analyse des contenus stockés dans leur fonds documentaire dans leur totalité (environ 20 To) :
- un serveur de fichiers Windows, organisationnel (avec les contenus de chaque direction) ;
- un serveur de fichiers Windows, communs (avec les contenus transverses) ;
- un serveur de GED Alfresco (avec les contenus collaboratifs).
Cette analyse s’effectue généralement en collaboration avec la DSI et se décompose en 2 parties :
- une étude technique des contenus stockés sur les différents composants ;
- une étude fonctionnelle de ces contenus.
Démarche
L’objectif est de lister tous les fichiers contenus dans les systèmes ci-dessus, en récupérant les métadonnées disponibles dans un fichier au format csv. Le nombre de fichiers étant considérable, cette collecte est découpée en plusieurs sous-ensembles afin de ne pas surcharger le système lors de la récupération de ce listing. En outre, afin de pouvoir analyser les contenus extrêmement nombreux (plusieurs millions de ligne), un tableur n’est pas suffisant, il est ainsi prévu d’indexer et rechercher les contenus à l’aide de l’outil spécialisé Elasticsearch (ELK) de la société éponyme.
Listing au format csv
Liste des fichiers
Deux scripts ont été écrits en powershell 2 afin de permettre la récupération de ces éléments sur Windows :
- Un premier script liste les éléments principaux de premier niveau (c’est à dire les sous-répertoires) du répertoire passé en paramètre et appelle un deuxième script pour chacun des sous-répertoires principaux identifiés ;
- Le deuxième script liste tous les fichiers contenus dans le répertoire principal ou un de ses sous-répertoires.
Le premier script pilote le deuxième script. Le premier script a été lancé à la main à des moments propices (soirée, veille de we) pour éviter de trop surcharger le système pendant l’exploitation quotidienne.
Le fichier csv ressemble à ceci :
En parallèle du lancement des scripts de comptage, il faut également lancer la fonction de Windows permettant de compter le nombre et le volume des fichiers et répertoires pour un répertoire donné.
Erreurs
Certaines erreurs apparaissent :
- répertoires inaccessibles, pour des raisons de droits ;
- répertoires ou fichiers avec un nom trop long ;
- répertoires ou fichiers avec des caractères interdits.
Dans l’absolu, il faudrait traiter ces erreurs. Cependant, un comptage a été fait en parallèle par le système Windows et comparé au nombre de répertoires et fichiers trouvés via les scripts ci-dessus. La différence n’est pas significative et on peut simplement ignorer ces erreur.
Injection dans le système d’indexation ELK
Le système d’indexation ELK facilite le comptage et le regroupement des données en fonction des indicateurs souhaités afin de faciliter le calcul des éléments techniques mais aussi l’étude du fonds documentaire.
ELK est un système d’indexation de contenus basé sur 3 composants :
- Logstash pour la récupération et l’analyse des données en amont, en l’occurrence les fichiers csv générés par les scripts précédents ;
- Elasticsearch, pour l’indexation des données ;
- Kibana, pour la navigation dans les données.
Traitement et import des données
Logstash permet le traitement et l’import des données afin d’extraire toutes les informations souhaitées. Par exemple, l’extraction de la source de données (Lecteur M: dans notre cas) ou la conversion de la taille des documents en Ko afin de faciliter la lecture. Attention à bien conserver toutes les données afin de pouvoir les réutiliser si nécessaire.
Requête et comptage
Elasticsearch permet la création de requêtes pour extraire et compter le nombre de fichiers comme par exemple compter le nombre de documents par source ou leur taille.
La requête suivante permet par exemple de ne compter que les documents respectant certaines contraintes :
Tableaux de bord
Kibana permet la création de tableaux de bords, notamment avec la fonctionnalité TimeLion permettant de calculer et afficher des indicateurs sur le même graphique afin, par exemple, de comparer l’évolution du nombre de documents dans le temps en fonction de leur source.
Comptages des répertoires et fichiers par source
Lorsque tous les éléments ont été injectés dans le moteur d’indexation, on compare alors les éléments obtenus entre le comptage Windows et le comptage ELK afin de vérifier que les erreurs ne sont pas significatives.
M:\Organisationnel
Les comptages sont les suivants :
Répertoire principal | Nb de répertoires | Nb de fichiers | Volume |
Total comptage listing via le calcul de Windows | 1 309 910 | 10 798 669 | 16,1 To |
Total comptage index | 1 305 950 | 10 171 949 | 17,1 To |
N:\Commun
Les comptages sont les suivants :
Répertoire principal | Nb de répertoires | Nb de fichiers | Volume |
Total comptage listing via le calcul de Windows | 581 770 | 3 402 133 | 3,45 To |
Total comptage index | 564 576 | 3 089 141 | 3,64 To |
O:\Alfresco
Un lecteur réseau a été monté sur le serveur Alfresco afin de pouvoir lister les fichiers stockés à la racine et dans les sites. Dans notre étude de cas, du fait du faible stockage et du faible nombre des éléments stockés en dehors des sites, qui représentent à peine 10 Go et quelques milliers de fichiers, ils n’ont pas été importés et ont été ignorés dans l’analyse.
Répertoire principal | Nb de répertoires | Nb de fichiers | Volume | Remarques |
Total comptage index | 50 113 | 295 702 | 781 Go | 115 sites |