Analyser les logs

Consulter et exploiter les logs

Analyser les logs

Lorsque votre site rencontre un problème ou simplement si vous souhaitez obtenir quelques informations sur son fonctionnement, il est très utile de pouvoir consulter les logs du serveur web.

Sur notre hébergement vous trouverez les logs des serveurs web dans le dossier ~/admin/logs/ voici ce que vous trouverez dans chacun des sous dossiers:

Quand vous chercher à diagnostiquer un problème, n’oubliez pas également que la solution (Magento, WordPress…) utilisée pour votre site dispose généralement de log interne souvent plus précis pour les problème de l’application et situé dans un dossier propre à chaque système.

Par ailleurs les logs PHP ne sont par défaut pas activé et vous pouvez les mettre en place grâce aux instructions disponible sur la page dédiée.

Utiliser le shell

Voci quelques exemples de commande shell vous permettant de consulter vos logs

Afficher en direct les requètes sur vos sites

tail -f ~/admin/logs/http/$(date -u +'%Y')/http-$(date -u +'%Y-%m-%d').log

Compter le nombre de requète HTTP sur le site www.ethersys.fr pour la journée du 21 janvier 2019:

zcat ~/admin/logs/http/2019/http-2019-01-21.log.gz | grep "www.ethersys.fr" | wc -l

Compter le nombre d’IPs uniques ayant accédés au site www.ethersys.fr pour la journée du 16 février 2019:

zcat ~/admin/logs/http/2019/http-2019-02-13.log.gz | grep "www.ethersys.fr"  | awk '{print $2}' | sort | uniq | wc -l

Afficher le top 20 des IPs ayants effectuées le plus de requète pour la journée du 13 février 2019:

zcat ~/admin/logs/http/2019/http-2019-02-13.log.gz  | awk '{print $2}' | sort -n | uniq -c | sort -nr | head -20

Afficher le top 20 des adresses les plus consultées du 14 avril 2022:

zcat admin/logs/http/2022/http-2022-04-12.log.gz | awk '{print $1$8}' | sort -n | uniq -c | sort -nr | head -20

Si le format des lignes de log avancé est choisis dans le paramétrage du site on peut également effectuer des tri sur la durée des requètes.
Par exemple pour obtenir les 50 requètes les plus longues du 14 avril 2022:

zcat ~/admin/logs/http/2022/http-2022-04-14.log.gz | awk -vFPAT='([^ ]*)|("[^"]+")' '{print $13 " " $1 " " $7}' | sort -nr | uniq | head -50

Goaccess

Pour obtenir des affichages plus évolué qu’avec les outils de base du shell, il est possible d’uitliser des outils dédié à l’affichage des logs comme par exemple GoAccess

goaccess --ws-url="wss://{{goaccess_vhost_fqdn}}:443" --real-time-html --log-file=/var/log/goaccess/last.log --output=/var/www/goaccess/index.html --log-format='%v %h %l %e %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"' --time-format='%H:%M:%S' --date-format='%d/%b/%Y'
zcat ~/admin/logs/http/2019/http-2019-0 | goaccess --log-format='%v %h %l %e %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"' --time-format='%H:%M:%S' --date-format='%d/%b/%Y'