Ceci est une ancienne révision du document !
Table des matières
Statistiques des logs Apache httpd avec GoAccess
Information
Il peut être utile d'avoir des informations compréhensibles sur les logs apache. GoAccess permet de créer des rapports lisibles pour mieux en retirer des informations.
GoAccess n'a pas pour but de remplacer des outils comme Google Analytics ou Piwik. Il est clairement orienté administrateur système.
GoAccess est aussi dans les dépôts Debian, mais pas à jour (package goaccess
). On privilégie le dépôt officiel.
Installation
Installation des dépendances :
apt install libncursesw5-dev libgeoip-dev geoip-database lsb-release
Ajouter les dépôts GoAccess et installer :
echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/goaccess.list wget -O - http://deb.goaccess.io/gnugpg.key | apt-key add - apt update apt install goaccess
Modifier /etc/goaccess.conf
et ajouter :
time-format %T date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
Utilisation
Pour générer un rapport au format html :
goaccess -f /home/www-data/logs/domain.info-access.log -a -o /home/www-data/html/domain.info.html
Vous pouvez ensuite charger la page avec un navigateur.
Il est recommandé de protéger cette page générée par un fichier .htaccess
ou similaire afin de ne pas l'exposer au public. Des informations confidentielles peuvent apparaître selon ce qui se trouve dans vos logs !
Il est possible d'automatiser ce rapport dans une tâche cron.
Script d'automatisation de rapports logs html avec variables
#!/bin/bash ################################################### # goaccess parameters # ################################################### #Dossier des fichiers log logfolder="/home/www-data/logs/apache2" #Dossier de sortie des rapports html outfolder="/home/www-data/html" #Gestion des ip exclues des rapports excludelist="-e 69.162.124.226-69.162.124.238" # 69.162.124.226-69.162.124.238 - Range UptimeRobot #Exclure des referers excludereferer="--ignore-referer=domain.info --ignore-referer=*.domain.info" #Autres options options="-a -d --double-decode -q" #Tout les paramètres params=$options" "$excludelist" "$excludereferer #Affichage des paraètres pour contrôle echo "GoAccessParameters : "$params ################################################### # all vhosts # ################################################### echo "All Vhosts" zcat -f $logfolder/*.log* | goaccess -o $outfolder/all-vhosts.html --html-report-title "All Vhosts" $params ################################################### # domain.info # ################################################### echo "domain.info" zcat -f $logfolder/domain.info-ssl-access.log* | goaccess -o $outfolder/domain.info-ssl.html --html-report-title "domain.info SSL" $params zcat -f $logfolder/domain.info-access.log* | goaccess -o $outfolder/domain.info.html --html-report-title "domain.info" $params