Les logs de nginx sont stockés dans /var/log/nginx
comme la normale et sont nommés via le nom de domaine. Exemple : saimyx.fr-access.log
pour les journaux d'accès de mon blog. Il y a aussi des journaux d'erreurs.
Par défaut avec Yunohost, le logiciel logrotate
ne garde que 14 jours de logs pour nginx
, et compresse les 12 derniers. Sachant qu'il partitionne les logs en un fichier par jour. Ce qui donne une liste de fichiers ressemblant à :
saimyx.fr-access.log saimyx.fr-access.log.1 saimyx.fr-access.log.2.gz saimyx.fr-access.log.3.gz
Et ainsi de suite jusqu'à saimyx.fr-access.log.14.gz
Ce n'est pas très pratique quand on veux avoir des statistiques sur un site Web, notamment avec GoAccess.
Du coup, j'ai modifié le fichier de configuration de logrotate pour nginx (/etc/logrotate.d/nginx
) et j'attends de voir si ça fonctionne.
En attendant, je ne pouvais regarder les statistiques avec GoAccess que sur le jour même ou la veille, étant donné qu'il ne comprends pas les fichiers compressés.
J'ai donc copié les 14 fichiers de logs (compressés et non-compressés) dans mon répertoire utilisateur avec la commande suivante : sudo tar -cvf ~/mon-archive-de-log.tar saimyx.fr-access.log*
.
Explications :
sudo
car les fichiers ne sont pas accessibles à un utilisateur normaltar -xvf
permet de créer un fichier d'archive à partir des fichiers donnés (voir après)*
à partir du moment où il peut y avoir des différences
Ensuite, je vais dans le répertoire où est stocké mon archive, et je la décompresse (tar -xvf mon-archive-de-log.tar
) simplement.
Penser à vous donner les droits en écriture sur les fichiers
Là ça se corse, j'ai mis du temps à trouver, il faut décompresser chaque fichier compressé et hors de question de le faire à la main. J'ai réussi à faire une boucle qui décompresse tous les fichiers contenant le nom choisi.
La boucle ressemble à ça : for i in * do echo $i done
(trouvé ici : https://fr.wikibooks.org/wiki/Programmation_Bash/Boucles) et je l'ai adaptée comme ça :
for i in saimyx.fr-access.log.*.gz; do gzip -d $i; done
En gros chaque fichiers est stocké un par un dans la variable $i
est est décompressé un par un.
Voilà, il n'y a plus qu'à dire à GoAccess d'analyser tous ces fichiers à la foix avec goaccess saimyx.fr-access.log.*
et c'est tout \o/