Analyse du fichier journal serveur : ce qu’il révèle sur les visiteurs

Pour qu’un système informatique puisse fonctionner correctement, le système d’exploitation doit généralement exécuter plusieurs processus en même temps. La majorité de ces tâches se déroulent en arrière-plan, sans que l’utilisateur ne s’en rende compte. Pour permettre l’enregistrement des actions des programmes, des protocoles et fichiers log sont générés automatiquement, ils sont aussi appelés fichiers journaux ou fichiers de traces. Il s’agit notamment des activités et des évènements spécifiques de chaque application comme les messages d’erreur, les modifications de paramètres, les accès aux programmes ou les rapports d’incident. Les utilisateurs avertis peuvent y trouver des informations sur la fonctionnalité et sur les erreurs. Si vous examinez les fichiers log des serveurs Web, vous pouvez aussi obtenir des informations sur le comportement général des visiteurs d’un site Internet. On parle donc d’analyse des fichiers journaux.

Qu’est-ce que l’analyse d’un fichier log ?

L’analyse des fichiers log ou plus simplement l’analyse de logs est le processus d’inspection ciblé et d’évaluation d’un fichier journal. Cette méthode est notamment utilisée par exemple pour tracer les erreurs de transmissions de données et de courriers électroniques ou pour vérifier les activités du pare-feu. Mais plus généralement cette méthode est utile dans l’optique de l’optimisation pour les moteurs de recherche (le référencement). Ainsi, ceux qui utilisent cette méthode et examinent les fichiers logs peuvent obtenir des informations intéressantes sur les visiteurs et leur comportement. Un coup d’œil sur le fichier log d’un serveur Web peut notamment par exemple révéler les données utilisateurs suivantes :

  • Adresse IP et nom d‘hôte de l’utilisateur
  • Le temps d’accès
  • Le navigateur utilisé par le visiteur
  • Le système d’exploitation du visiteur
  • Lien source ou l‘URL
  • Le moteur de recherche utilisé avec les requêtes et mots-clés
  • La durée de la session
  • Le nombre de pages consultées
  • La dernière page consultée avant de quitter le site Web

L’analyse manuelle des fichiers logs est tout simplement impossible en raison du nombre important de fichiers. Cependant il existe différents outils d’analyse qui présentent les informations pertinentes des fichiers journaux. Il suffit ainsi de tirer les bonnes conclusions des données collectées. En plus d’enregistrer des données concernant les visiteurs du site Web, le fichier journal sert également à déterminer les erreurs techniques (concernant le réseau, les programmes ou encore les composants individuels), les problèmes de sécurité ainsi que les accès automatisés par les robots.

Analyse de logs du serveur Web : problèmes courants et solutions

Le plus gros problème de l’analyse de fichiers journaux du serveur Web est le fait qu’HTTP est un protocole sans état : le protocole de transfert qui est responsable de la communication entre le serveur et le client traite chaque demande séparément. Par conséquent, le serveur Web attribue aussi deux vues de page différentes d’un seul client. Ce qui n’est pas pratique pour analyser le comportement général de l’utilisateur. Il existe toutefois plusieurs façons pour contourner ce problème :

  1. Attribution d’un ID de session : l’ID de session est un numéro généré côté serveur et qui est stocké dans le navigateur de l’utilisateur. Si un tel numéro d’identification a été attribué au visiteur, toutes les demandes qu’il fournit au serveur Web sont exécutées avec ce numéro. Toutes les actions sont ainsi regroupées en une seule session. Il existe deux façons pour attribuer un numéro ID : la première est l’utilisation des cookies, stockés après la première demande du client et transmis à chaque contact ultérieur du serveur. Toutefois, les cookies ne sont pas visibles dans le fichier journal et nécessitent donc une programmation spéciale pour une analyse ultérieure. En revanche, l’ID de session peut être transmis en tant que paramètre URL. Toutefois, ces liens spécifiques à l’utilisateur nécessitent une programmation de haut niveau. Aussi du point de vue SEO, les URL individuelles peuvent poser des problèmes. Le même contenu est accessible à une URL différente à chaque fois que le robot d’indexation visite la page, de sorte qu’il peut facilement considérer cela comme du contenu dupliqué.

  2. Identification des utilisateurs via les adresses IP : tant que toutes les actions d’un utilisateur sont attribuées à la même adresse IP, elles peuvent être attribuées de manière unique. La condition préalable est (selon de nombreux experts de la protection des données) que l’utilisateur accepte la collecte de son adresse IP complète à des fins d’analyse. Des problèmes avec cette méthode d’enquête se produisent chaque fois que les visiteurs ont assignés leur IP de manière dynamique et sont donc comptabilisés pour cette raison plusieurs fois ou bien si plusieurs utilisateurs, par exemple par l’intermédiaire d’un serveur proxy, agissent avec la même adresse IP.

  3. Utilisation de mesures indépendantes du serveur : le pixel tracking qui est le marquage des pages ou marquage Web. Ce sont des tags qui sont intégrés dans le site Web de manière invisible et qui fournissent des informations avancées comme la résolution d’écran et les plugins du navigateur installés. En combinaison avec l’adresse IP et les détails du navigateur et du système d’exploitation, les utilisateurs peuvent alors dans une certaine mesure être distingués. Cependant, une division à 100 pourcent de tous les utilisateurs n’est pas possible de cette façon. Toutefois, vous pouvez utiliser les widgets de pixel ou les éléments AJAX pour pouvoir tracer. Avec une simple analyse des fichiers log, vous ne recevrez aucune information spécifique sur la façon dont il est utilisé. 

Un autre problème de l’analyse des fichiers journaux est la fonction de mise en cache du navigateur Web ou du serveur proxy utilisé. Bien que cette fonction soit essentielle pour livrer rapidement les données demandées, elle veille aussi à ce que l’utilisateur ne communique pas toujours avec le serveur Web. Les requêtes concernant le contenu mis en cache apparaîtront dans les fichiers journaux du serveur uniquement de manière limitée (code de statut 304 « Not modified »). Enfin, il convient aussi de noter que des ressources supplémentaires sont nécessaires pour l’enregistrement permanent, le stockage et l’évaluation des accès au serveur notamment pour les projets Web à très fort trafic. En outre, l’analyse des logs ne comporte pas certains indicateurs importants comme le taux de rebond ou la durée du séjour des visiteurs, ce qui explique pourquoi il ne devrait être utilisé qu’en complément à d’autres instruments de mesures et non pas comme l’unique méthode pour analyser les visiteurs.

Examiner les fichiers logs : fonctionnement

Pour avoir un aperçu d’une analyse d’un fichier log, vous devez d’abord jeter un coup d’œil au contenu et à la structure de ce log. Par exemple le fichier journal d’un serveur Web Apache nommé access.log  est automatiquement généré dans le répertoire Apache.

Les informations délivrées par le fichier log Apache

Les entrées créées sont stockées sous le format Common Log (ou NCSA Common log format) qui possède une syntaxe prédéfinie :

%h %I %u %t "%r" %>s %b

Les différents éléments correspondent aux informations suivantes :

%h Adresse IP du client  
%I L’identité du client n’est pas visible par défaut. Par conséquent, il y a souvent un moins (-) à ce niveau, qui indique une information manquante dans le fichier journal  
%u L’ID utilisateur du client, qui est associé par exemple à la protection de répertoire avec une authentification http ; normalement non assigné  
%t Horodatage du point d’accès  
%r Informations sur la requête HTTP (méthode, ressource demandée et version du protocole)  
%>s Code de statut, avec lequel le serveur a répondu à la requête  
%b Quantité de données transférées en byte  

Ainsi une entrée complète dans access.log ressemble à ceci :

203.0.113.195 - user [07/Oct/2016:10:43:00 +0200] "GET /index.html HTTP/2.0" 200 2326

Dans cet exemple, le client avec l’adresse IP 203.0.113.195 et l’ID utilisateur user a appelé le 7 octobre 2016 à 10h43 l’index.html et a utilisé HTTP/2.0. Le serveur a répondu avec un code de statut 200 (requête traitée avec succès, le résultat est transféré) et a transmis 2326 bytes.

Dans le fichier httpd.conf, vous pouvez aussi étendre les entrées du fichier log en ajoutant deux éléments supplémentaires au format du journal : \"%{Referer}i\" et \"%{User-agent}i\". De cette façon, vous pouvez découvrir quels liens ou quelle pages les visiteurs ont utilisés pour accéder à votre site Web, ainsi que le programme client et le système d’exploitation utilisé. Grâce aux derniers détails, le format du fichier log combiné permet de vérifier les applications externes qui récupèrent les données de votre serveur Web, comme les programmes de messagerie, mais également les robots d’indexation et les robots de spam. Pour plus d’informations sur les propriétés des fichiers journaux, vous pouvez consulter notre article d’introduction sur ce sujet.

Les outils qui permettent l’analyse des entrées de log

Si vous avez les droits nécessaires pour accéder au fichier journal de votre serveur Web, il est alors théoriquement possible de vérifier manuellement les accès individuels au client à votre projet sans outil supplémentaire. Toutefois si l’on suppose que votre site Internet comporte 1000 visiteurs par jour et que ces derniers ouvrent en moyenne dix pages, il y a alors 10000 nouvelles entrées de journal chaque jour, sans compter les appels du contenu incorporé : ainsi une telle quantité ne peut être évaluée manuellement. C’est pourquoi, des outils sont nécessaires pour pouvoir réaliser l’analyse de fichiers log, exporter et segmenter les données.

Si le volume du fichier journal est plus petit, vous pouvez utiliser des programmes de traitement de données traditionnels comme Microsoft Excel. Pour cela, il suffit de convertir le fichier log au format CSV et d’importer le fichier de la manière suivante comme indiqué dans les instructions de Microsoft. Dans Excel, vous pouvez structurer les informations sur les requêtes collectées, puis par exemple trier par adresse IP, code de statut ou référent. Comme il y a des limites à la taille du journal importé, les résultats d’une analyse de fichier journal via Excel ne sont toutefois qu’un instantané.

Par conséquent l’utilisation d’un analyseur de fichier log est recommandée pour des études à long terme basées sur les fichiers log de votre trafic. A la différence des tableurs, ces outils ont été développés spécifiquement pour la présentation graphique et l’examen des fichiers log. Dans les tableaux de bord qui sont accessibles via un simple navigateur, les chiffres de code précédemment mentionnés dans le fichier journal sont traités visuellement. Une partie de cela se produit presque en temps réel, par exemple avec l’outil open source GoAccess, nous y avons justement déjà consacré un article dans notre guide.

L’analyse des fichiers log et le sujet de la protection des données.

Une analyse des logs, qui contient des données des visiteurs des sites Internet, touche donc forcément aux aspects de la protection des données et, dans ce contexte deux aspects ressortent en particulier. Le premier point important de cette méthode d’analyse est la possibilité de sauvegarder toutes les données obtenues sur votre propre serveur. Si vous hébergez votre serveur Web, et les fichiers log associés via un fournisseur externe, vous devez alors connaître exactement quels services sont disponibles pour une protection des données sécurisée. Il est important de connaître aussi l’emplacement du serveur, si possible dans l’Union européenne afin de s’assurer d’un niveau élevé de l’intégrité des données et de la protection de la vie privée de vos visiteurs. Avec les outils de suivi comme Google Analytics, l’emplacement des serveurs pour les visiteurs et les données en dehors des Etats-Unis sont une préoccupation constante, car toutes les informations utilisateurs sont alors stockées sur les serveurs de Google qui se trouvent principalement aux Etats-Unis.

Le deuxième point est la question de la personnalisation en ce qui concerne les données de l’analyse des fichiers log. Bien que les informations comme le temps d’accès, les sites visités ou le navigateur utilisé fournissent rarement des informations personnelles spécifiques, la situation concernant les adresses IP enregistrées est bien différente. En particulier avec les adresses IP statiquement assignées, il existe la possibilité d’établir une référence personnelle directe et cela est critiqué par les experts de la protection des données. La détermination de l’emplacement sur la base de l’adresse IP est illégale dans certains pays dont la France. En général les Webmasters sont invités à stocker les adresses sous une forme anonyme et de les supprimer après une semaine maximum. Sauf si il y a une obligation de les conserver sous une forme publique.

Toutefois, si vous souhaitez examiner les fichiers journaux, l’option d’anonymisation n’est pas possible car vous ne pouvez pas combiner les différentes actions d’un utilisateur unique pour l’analyse. Pour respecter la réglementation, les opérateurs de site Web devraient donc informer les utilisateurs de l’enregistrement des adresses IP à des fins d’analyse. Les Etats-Unis n’ont actuellement aucune loi, mais par contre les tribunaux de l’Union européenne ont confirmé le fait que les adresses IP peuvent constituer dans certains cas des données personnelles, ce qui confirme aussi la position de la  France qui considère que les adresses IP sont une donnée personnelle relevant de la loi du 6 janvier 1978 sur l’informatique.

Analyse des fichiers log du serveur : une base solide de l’analyse Web

L’enregistrement des données utilisateur est l’un des moyens les plus importants pour mesurer le succès d’un projet Web. Ce n’est qu’en observant le développement du trafic et le comportement des visiteurs que vous pouvez améliorer la correspondance de vos offres et contenus au public cible. Contrairement aux outils de tracking comme Piwik et Google Analytics, l’analyse des fichiers journaux repose sur les données standards reçues par le serveur sans l’aide de JavaScript. Les données peuvent être enregistrées, même si l’utilisateur bloque le langage de script. Mais cet avantage a ses propres limites : bien que d’assigner des accès individuels à des sessions d’utilisateurs spécifiques est possible, l’analyse reste beaucoup plus complexe qu’avec le tracking des cookies. L’analyse de logs ne comporte pas certaines données, comme le taux de rebond ou la durée exacte de visite des utilisateurs.

La mise en cache des programmes clients est également difficile. Il permet des requêtes utilisateurs sans contact avec le serveur, qui n’apparaît que dans une forme restreinte dans le fichier log du serveur, comme les adresses IP dynamiques, qui empêchent une assignation concrète des différents accès à des utilisateurs individuels. Les résultats d’une analyse de log devraient être principalement pris comme un instantané et selon la taille de votre projet Web, être utilisés en complément à d’autres méthodes d’analyse. Si vous êtes responsable de l’hébergement et de l’évaluation des fichiers logs et que vous informez vos visiteurs au sujet de la collecte des adresses IP et des autres données, vous disposez alors d’une base solide et conforme à la réglementation pour analyser le comportement des utilisateurs. L’analyse des fichiers journaux est particulièrement utile lorsque vous essayer d’examiner la différence entre le trafic mobile et le trafic classique de bureau, ainsi que pour détecter les robots comme le robot d’indexation de Google.