Je pars du principe que vous maîtrisez un minimum Docker avec Portainer 😉
GoAccess est un analyseur de journaux web en temps réel et interactif, qui s’exécute dans un terminal ou via HTML.
GoAccess va vous permettre de visualiser en temps réel, sous forme de tableaux, l’ensemble des logs (fichiers journaux) des hôtes proxy de votre proxy inverse Nginx Proxy Manager.

docker-compose.ymlNous allons créer le répertoire de travail et le fichier Compose pour le service GoAccess, qui utilisera l’image spécialisée pour NPM.
mkdir goaccess
cd goaccess
nano docker-compose.yml
version: '3.8'
services:
goaccess:
image: 'xavierh/goaccess-for-nginxproxymanager:latest'
container_name: goaccess
restart: always
ports:
- '7880:7880'
environment:
- TZ=Europe/Brussels #optional
- LANG=fr_FR.UTF-8 #optional
- LANGUAGE=fr_FR.UTF-8 #optional
- SKIP_ARCHIVED_LOGS=False #optional
- DEBUG=False #optional
- BASIC_AUTH=False #optional
- BASIC_AUTH_USERNAME=user #optional
- BASIC_AUTH_PASSWORD=pass #optional
- EXCLUDE_IPS=127.0.0.1 #optional - comma delimited
- LOG_TYPE=NPM+R #optional
- ENABLE_BROWSERS_LIST=True #optional
- CUSTOM_BROWSERS=Kuma:Uptime,TestBrowser:Crawler #optional - comma delimited
- HTML_REFRESH=5 #optional - Refresh the HTML report every X seconds. https://goaccess.io/man
- KEEP_LAST=30 #optional - Keep the last specified number of days in storage. https://goaccess.io/man
- PROCESSING_THREADS=1 #optional - This parameter sets the number of concurrent processing threads in the program's execution, affecting log data analysis, typically adjusted based on CPU cores. Default is 1. https://goaccess.io/man
volumes:
- /data/compose/1/data/logs:/opt/log
#- /path/to/host/custom:/opt/custom #optional, required if using log_type = CUSTOM
Le point crucial de cette configuration est de s’assurer que le conteneur GoAccess puisse accéder aux logs de NPM sur votre machine hôte.
| Paramètre | Ligne à Modifier | Explication |
|---|---|---|
| Log Path (Volume) | - /data/compose/1/data/logs:/opt/log |
La ligne la plus importante. Doit pointer vers le répertoire des logs de NPM sur l’hôte. /opt/log est le chemin d’entrée dans le conteneur. Le chemin /data/compose/1/ indique ici un déploiement Portainer. |
| Log Path (Alternative) | - ./data/logs:/opt/log |
Si vous ajoutez GoAccess au Compose de NPM et que vous n’avez pas modifié les volumes de ce dernier. |
| Port | '7880:7880' |
Le service web de GoAccess sera accessible via le port 7880. |
| Fuseau Horaire | - TZ=Europe/Brussels |
Permet d’ajuster l’heure affichée dans les statistiques. |
| Langue | - LANG=fr_FR.UTF-8 et - LANGUAGE=fr_FR.UTF-8 |
Passe l’interface GoAccess en français. |
| Exclusion d’IP | - EXCLUDE_IPS=127.0.0.1 |
Permet d’exclure les adresses IP internes du monitoring. Vous pouvez ajouter plusieurs adresses IP séparées par une virgule. |
| Type de Log | - LOG_TYPE=NPM+R |
Définit la configuration de GoAccess pour lire les logs de NPM. |
LOG_TYPELe paramètre - LOG_TYPE est essentiel pour déterminer quels logs sont analysés :
| Valeur | Logs analysés | Instances GoAccess créées |
|---|---|---|
NPM |
Fichiers proxy-host-*_access.log et .log.gz. |
1 (Accès direct à http://localhost:7880) |
NPM+R |
Logs NPM PLUS logs de redirection, fallback et dead-host. |
2 (La seconde instance est accessible via http://localhost:7880/redirection/) |
NPM+ALL |
Logs NPM PLUS logs de redirection et logs d’erreur. |
3 (Instances sur /redirection/ et /error/) |
Par défaut, l’authentification n’est pas activée.
Sans authentification (Défaut) :
- BASIC_AUTH=False #optional
Avec authentification :
Il faut définir le statut à True et définir le nom d’utilisateur et le mot de passe.
- BASIC_AUTH=True #optional
- BASIC_AUTH_USERNAME=anyblabla #optional
- BASIC_AUTH_PASSWORD=blablalinux #optional
Rafraîchissement HTML :
- HTML_REFRESH=5 #optional (La page HTML sera rafraîchie toutes les cinq secondes.)
Rétention des données :
- KEEP_LAST=30 #optional (Les statistiques sur les trente derniers jours seront prises en compte.)
docker compose up -d
Vous pouvez ensuite accéder à l’interface de GoAccess via votre navigateur à l’adresse http://<Votre_IP_Hôte>:7880.
Je vous conseille de vous rendre sur la page de projet GitHub, ou encore mieux, sur la page “man” du site officiel pour plus de détails sur les options avancées.