====== Gestion des logs avec Yunohost ====== ===== Les logs de nginx ===== ==== Description des logs ==== 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'' ==== Changement de configuration ==== Ce n'est pas très pratique quand on veux avoir des statistiques sur un site Web, notamment avec [[https://goaccess.io/|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. ==== Utiliser les logs à titre de statistiques ==== 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 : * On doit utiliser ''sudo'' car les fichiers ne sont pas accessibles à un utilisateur normal * ''tar -xvf'' permet de créer un fichier d'archive à partir des fichiers donnés (voir après) * Ensuite je donne l'emplacement où je veux mettre mon archive * Et enfin, je donne les fichiers à compresser. Comme ils commencent tous pareil, je donne le nom en commun et pour lui dire de traiter tous les fichiers ayant ce début, je rajoute l'étoile ''*'' à 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/