Intégrer vos logs serveurs dans Data Studio automatiquement

Si il y a bien une donnée SEO qui est de mode, c’est bien les logs serveurs. En même temps, il serait vraiment dommage de s’en passer si vous avez la possibilité d’y accéder. Le problème, c’est que les fichiers sont vite indigestes. Il faut les télécharger, les traiter et les trier. Et uniquement à la fin, on peut les visualiser. Je vous propose donc d’automatiser ce processus, et de les mettre en place dans Google Data Studio.

La logique du script est  expliqué dans ce post. Je peux vous envoyer le script complet si vous le souhaitez. Pour cela envoyez-moi un MP via Twitter. Et tant que vous y êtes pensez, à partager et RT ;). Les rapports Data Studio (embeded) se trouvent aussi au bas de cet article. 

Avant de commencer assurez-vous d’avoir:

  • vos identifiants serveur
  • vos logs serveur
  • une base de donnée (mysql dans ce cas-ci)
  • un PC capable d’executer un script pour récupérer les logs et les placer en base de données. Si vous pouvez le faire tourner sur votre serveur dédié, c’est encore mieux.

1ère étape: récupération des logs

La méthode que je donne est dans le cas où vous avez un site sur un serveur mutualisé chez OVH. Mais je suppose que cela ne doit être pas si différent pour un dédié. J’ai basé mon script sur PHP. Mais cela peut être fait sans aucun souci en JAVA ou surement en R. 

Pour récupérer les logs, il suffit d’appeler une URL et d’en récupérer son contenu. La structure de l’URL pour récupérer les logs est la suivante:

https://log.ovh.net/{{host}}/logs-{{month}}-{{year}}/{{host}}-{{date format day-month-year}}

Vous aurez besoin aussi d’une identification HTTP. Normal sinon, n’importe qui pourrait accéder à vos logs.

http authentification ovh

Il faudra les rajouter en tout début d’URL.  Et voici le code PHP pour avoir les logs de la journée d’hier.

Attention, la donnée que vous recevrez sera compressée (fichier .gz). Il faudra la décompresser pour pouvoir récupérer un fichier log. Une fonction est proposée dans le code complet (fonction transform_file).

2ème étape: lecture du fichier log

Un fichier log contient beaucoup d’informations: il comprend principalement: les données de vos visiteurs et de tous les robots crawlant votre site. L’objectif dans ce script sera d’extraire toutes les visites (ou hit) des robots de Google. D’un point de vue SEO, ce sont elles qui nous intéressent. Pour information, vous trouverez la liste complète des robots Google ici.

Afin d’optimiser le code et de limiter les appels, on enverra aussi 5000 lignes à chaque insertion dans la base. J’ai pu gagné 90% de performance ainsi.

La logique est la suivante:

  1. Lit chaque ligne du fichier
  2. Si la ligne comprend un patern des bots de Google
  3. Explose la ligne
  4. Récupère chaque données importantes: date, code réponse, URL crawlée, nom du bot, données téléchargées (variable $row).
  5. Place les dans un tableau ($insert_value)
  6. Recommence
  7. Quand le tableau possède 5000 lignes, insert dans la base de données
  8. Etc…

3ème étape écriture en base de données

Comme vous l’avez vu, je ne récupère dans ce fichier que très peu d’informations. Ma table dans MySQL sera donc aussi très simple. Elle va comprendre principalement:

  • la date de crawl (ou hit)
  • le bot ou robot
  • l’URL crawlée
  • le nombre de hit (toujours 1)
  • la taille des données téléchargées par le robot
  • le code réponse

mysql log server strcuture

Il ne reste plus qu’à tout envoyer dans la table.

 

Dernière étape: programmer ce script afin qu’il puisse s’exécuter tous les jours. Google Data Studio, de son coté, se mettra à jour automatiquement. Je peux vous envoyer le script complet si vous le souhaitez. Pour cela envoyez-moi un MP via Twitter. Et tant que vous y êtes pensez, à partager et RT ;).

4ème étape: les dashboards dans Data Studio

Il vous faudra connecter votre base de donnée MySQL en premier lieu. Puis rentrer les identifiants, pour pouvoir les visualiser dans l’outil de Google.

mysql data studio

Niveau dashboard, voici ce que j’ai mis en place.

  • Une vue Globale : elle comprend le nombre de hit unique, hit total, le poid total des informations téléchargées sur la durée. Et la répartition/hit par robot. Ici vous avez la possibilité de filtrer par robot: Desktop, Mobile, Image…

glbal log kpi dashboard

  • Une autre vue centrée sur les réponses serveurs : 301, 200 ok, 404… Le premier graphique est assez intéressant car il montre aussi la répartition des pages uniques crawlées par Google. On peut voir le que 21 octobre par exemple, moins de 50% des pages crawlées étaient en 200 OK. J’ai aussi rajouté le nombre moyen de bites téléchargées par page. Ici vous aurez la possibilité de filtrer par réponse (2XX, 3XX, 5XX…)

glbal code statut kpi dashboard

  •  Dernier slide: analyse par catégorie de pages. Est ce que sont mes pages FR qui sont le plus crawlées ? Ou EN ? Et mes images, mes fichiers CSS/JS ? Mes pages admin ? Ici vous aurez la possibilité de filtrer par type de page.

glbal log category dashboard

Et voici le résultat en direct dans Google Data Studio. Vous avez la possibilité de voir septembre et octobre 2017 sur ce compte demo. Voici le lien direct pour agrandir.  Pensez aussi à changer de page pour voir les 3 vues et la période pour jouer pleinement.

Prochaine étape: croiser ces données avec Google Analytics et la Search Console. Si vous avez des idées pour optimiser le code ou les rapports, indiquez les dans les commentaires. Et n’oubliez pas de partager sur les réseaux sociaux.

Pour aller plus loin:

Passionné, curieux et toujours ouvert aux nouvelles technologies web, je passe mon temps entre ma famille & le monde du web. N'hésitez pas à me contacter pour échanger et partager

2 réponses sur “Intégrer vos logs serveurs dans Data Studio automatiquement”

Laisser un commentaire