Cahier des clauses techniques particulières
Fonctionnement général Fichier de configuration lire Fichier de log analyser extraire statistiques exploiter graphes stocker compiler data ware house interpréter rapport Cahier des clauses techniques particulières - Hugo ETIEVANT
Fichier de configuration Permet la configuration fine de l’analyse du fichier de log Valeurs par défaut en constante préprocesseur du programme (#define) À analyser avant le fichier de log (Non encore implémenté) Cahier des clauses techniques particulières - Hugo ETIEVANT
Lecture du fichier de log ouvrir fichier fin de fichier ? non lire ligne lire et traiter caractère oui fin de ligne ? fermer fichier non oui Cahier des clauses techniques particulières - Hugo ETIEVANT
Format d’une ligne de log Exemple Description 134.214.92.116 Adresse IP du client - Nom du propriétaire du processus ayant émis la requète vers le client admin Nom de l’utilisateur si authentification [03/Jul/2002:15:55:40 -0400] Date et temps de traitement de la requète "GET /intro.html HTTP/1.1" Première ligne de la requète HTTP et version du protocole 200 Code d’erreur HTTP 30226 Taille du fichier retourné "http://urfist/" URL de la page référençant la ressource demandée "Mozilla/4.03 [fr] (Win95; I)" Nom et version du navigateur, système d’exploitation Cahier des clauses techniques particulières - Hugo ETIEVANT
Lecture d’une ligne de log Algo itératif La récursivité provoquerait un « stack overflow » Pas de recours à des fonctions de haut niveau Leur appel ralentirait le traitement et occuperait trop d’espace mémoire Définition d’une structure en mémoire pour stocker les infos d’une ligne (1 seule instance) #define LIGNE_MAX 4096 #define ESPACE ' ' #define ACCOLADE1 '[' #define ACCOLADE2 ']' #define QUOTES '"' #define TIRET '-' #define MOTS 9 #define HOST_SIZE_MAX 128 #define HYPHEN_SIZE_MAX 64 #define USER_SIZE_MAX 64 #define DATE_SIZE 29 #define REQUEST_SIZE_MAX 1024 #define REFERER_SIZE_MAX 1024 #define AGENT_SIZE_MAX 64 #define SIZE_MAX 1024 typedef struct ligneoffile { char host[HOST_SIZE_MAX]; char hyphen[HYPHEN_SIZE_MAX]; char user[USER_SIZE_MAX]; char date[DATE_SIZE]; char request[REQUEST_SIZE_MAX]; unsigned short int status; unsigned long int size; char referer[REFERER_SIZE_MAX]; char agent[AGENT_SIZE_MAX]; } ligneoffile; Cahier des clauses techniques particulières - Hugo ETIEVANT
Cahier des clauses techniques particulières - Hugo ETIEVANT Format d’une requête La requête d’une ligne de log est composée des 3 champs : Méthode (GET, POST, HEAD…) Ressource (chemin du fichier à télécharger) Protocole (nom et version) Exemple GET /images/logo.png HTTP/1.1 #define REQUEST_METHOD_SIZE_MAX 4 #define QUERY_METHOD_SIZE_MAX 1012 #define PROTO_METHOD_SIZE_MAX 8 typedef struct request { char method[REQUEST_METHOD_SIZE_MAX]; char query[QUERY_METHOD_SIZE_MAX]; char proto[PROTO_METHOD_SIZE_MAX]; } request; Cahier des clauses techniques particulières - Hugo ETIEVANT
Cahier des clauses techniques particulières - Hugo ETIEVANT Format d’une URL Il est défini par les RFC suivantes : 1738, 1808, 2396 et 2718 du W3C. Pour chaque ligne, extraction du domaine du Referer. S’il ne correspond pas à celui du site d’analyse, alors le comparer à la liste des outils de recherche prédéfinis S’il correspond alors extraction des paramètres sinon c’est un partenaire Permet de comptabilisé les affluents et les mots clés de recherche. Cahier des clauses techniques particulières - Hugo ETIEVANT
Détection des attaques Analyse des URL des ressources demandées (query) détection d’intrusion suivant des schémas prédéfinis remontée dans les répertoires (../../../) accès à ces programmes (exe, cgi) Cahier des clauses techniques particulières - Hugo ETIEVANT
Cahier des clauses techniques particulières - Hugo ETIEVANT Détection des erreurs Listage des ressources pour lesquelles il existe des codes d’erreur HTTP de la famille des 400 et des 500. Permet de connaître les affluents pointant vers une ressource qui n’existe plus (400) les contacter pour mise à jour correction des liens internes morts Detection des moments d’interruption de service (500) Cahier des clauses techniques particulières - Hugo ETIEVANT
Cahier des clauses techniques particulières - Hugo ETIEVANT Détection des robots Statistiques de trafic sur le fichier /robots.txt permet de connaître la fréquence de mise à jour des outils de recherche Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : graphe Représente les chemins de navigation des visiteurs Chemins les plus long Points d’entrée et de sortie Permet modifier la navigation si certaines pages ne sont pas souvent accédées depuis d’autres Algos de recherche opérationnelle (graphe orienté valué) : dessin d’un maillage des pages et autres ressources ordonnés selon les composantes fortement connexes Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : histogramme Facile à produire et simple à comprendre S’applique à beaucoup d’objets Nombre de hits, de visites, d’erreurs ; quantité de données… Disponible à différents niveaux de granularité Heure, jour, moi, an… Incrustation d’autres données Min, max, moy… Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : camembert Répartitions relatives des données Adapté aux données fortement aggrégées Os, navigateurs, types d’affluent… Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : courbes Représentation d’une évolution dans le temps de plusieurs quantités absolues Top 10 des pages, navigateurs, os, partenaires… Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : aires Représentation d’une évolution dans le temps de plusieurs quantités relatives 2 1 3 Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : schémas Pour des représentations spéciales Comportement par affluent Cahier des clauses techniques particulières - Hugo ETIEVANT
Graphiques à produire : tableaux Simples listes énumératives associant des objets (chaînes de caractères) à des données (quantités relative/absolue). Top 10 des outils de recherche, des mots clés, pages d’entrée/de sortie… Cahier des clauses techniques particulières - Hugo ETIEVANT
La librairie graphique GD Création d’images PNG/JPEG Très simplement Bonne documentation Malheureusement Installation impossible sur les machines du bâtiment 710 À cause de multiples dépendances entre modules introuvables Réalisation impossible du rapport graphique – pour le moment Cahier des clauses techniques particulières - Hugo ETIEVANT