--- categories: web sysadmin system title: Howto GoAccess ... * Documentation: [GoAccess](https://goaccess.io) est un outil pour analyser facilement des logs Apache ou Nginx (et d'autres formats) : générer rapidement une page de rapport HTML, stats ncurses et même surveillance temps réel. ~~~ # apt install goaccess ~~~ Si besoin d'une version plus récente, l'upstream distribue des paquets Debian avec une version plus récente. ~~~ # echo "deb https://deb.goaccess.io $(lsb_release -cs) main" >> /etc/apt/sources.list.d/goaccess.list # wget -O - https://deb.goaccess.io/gnugpg.key | apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add - # apt update && apt install goaccess ~~~ Il faut ensuite éditer `/etc/goaccess.conf`, en choisissant le format de log, par exemple : ~~~ time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" ~~~ Pour HAProxy, le `log-format` est le suivant : ~~~ log-format %^ %^ %^ %^ %^ %^ %h:%^ [%d:%t.%^] %^ %^ %^/%^/%^/%L/%^ %s %b %^ %^ %^ %^ %^ {%v|%u} "%m %U %H" ~~~ Pour générer un rapport HTML (un seul fichier, les styles sont inline) : avec GoAccess 0.8.3 : ~~~ # goaccess -f access.log -a -o html ~~~ avec GoAccess 1.2 : ~~~ # goaccess access.log -a -o /var/www/rapport.html ~~~ Pour suivre un access.log en temps réel : ~~~ # goaccess -f access.log ~~~ Pour avoir un access de 12h à 16h du 1er Fevrier : ~~~ # grep "1/Fev/2017:1[2-6]" /var/log/apache2/access.log > goacces.tmp # goaccess -f goaccess.tmp -a -o html ~~~ # Interface web + WebSocket Pour avoir le suivi en temps réel dans un navigateur, on peut créer une unité systemd qui lancera GoAccess et sa WebSocket. `/etc/systemd/system/goaccess.service`. ~~~ [Unit] Description=GoAccess real time web stats. After=network.target [Service] ExecStart=/usr/bin/goaccess -p /etc/goaccess/goaccess.conf /var/log/haproxy.log -o /var/www/goaccess.html --real-time-html --daemonize Type=forking User=goaccess [Install] WantedBy=default.target ~~~ ~~~ # systemctl daemon-reload # systemctl enable goaccess # systemctl start goaccess ~~~ # Erreur ~~~ Fatal error has occurred Error occured at: src/parser.c - parse_log - xxxx No log format was found on your conf file. ~~~ Si cette erreur survient, il faut modifier le fichier de conf /etc/goaccess.conf pour décomenter les valeurs logformat correspondant.