====== 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 [[https://www.google.com/intl/fr_fr/analytics/|Google Analytics]] ou [[https://matomo.org/|Matomo]]. 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 ===== Sources ===== [[https://goaccess.io/|goaccess.io]]