wiki/HowtoGoAccess.md

97 lines
2.3 KiB
Markdown

---
categories: web sysadmin system
title: Howto GoAccess
...
* Documentation: <https://goaccess.io/man>
[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 http://deb.goaccess.io $(lsb_release -cs) main" >> /etc/apt/sources.list.d/goaccess.list
# wget -O - http://deb.goaccess.io/gnugpg.key | apt-key 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.