Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
goaccess — GoAccess est un analyseur de logs web en temps réel et un visualiseur interactif qui s'exécute dans un terminal sur les systèmes *nix ou via votre navigateur. | Kitploit
Outils/GitHubGitHub/allinurl/goaccess
Utilitaires GénérauxProtection de la Vie PrivéeDétection d'AnomaliesAnalyse de Journaux
GitHuballinurl/goaccess

goaccess

GoAccess est un analyseur de logs web en temps réel et un visualiseur interactif qui s'exécute dans un terminal sur les systèmes *nix ou via votre navigateur.

Voir le dépôt
20.8k1.2kil y a 1 jourVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

GoAccess C build GoAccess

Qu'est-ce que c'est ?

GoAccess est un analyseur de journaux web open source, temps réel et visualiseur interactif qui s'exécute dans un terminal sur les systèmes *nix ou directement dans votre navigateur. Conçu pour les administrateurs système, les ingénieurs DevOps et les professionnels de la sécurité, il fournit rapidement des statistiques HTTP exploitables et des rapports visuels de serveur à la volée. GoAccess analyse vos journaux de serveur web en temps réel et présente les données directement dans le terminal ou via un tableau de bord HTML en direct, facilitant la surveillance du trafic, la détection des anomalies et le dépannage instantané des problèmes.

Plus d'informations sur : https://goaccess.io.

Tableau de bord terminal GoAccess Tableau de bord HTML GoAccess

Fonctionnalités

GoAccess analyse le fichier de journal web spécifié et affiche les données dans le terminal X. Les fonctionnalités incluent :

  • Entièrement en temps réel
    Tous les panneaux et métriques sont mis à jour toutes les 200 ms sur la sortie terminal et toutes les secondes sur la sortie HTML.

  • Configuration minimale requise
    Vous pouvez simplement l’exécuter sur votre fichier de journal d’accès, choisir le format de journal et laisser GoAccess analyser le journal d’accès et vous montrer les statistiques.

  • Suivi du temps de réponse des applications
    Suivez le temps nécessaire pour servir la requête. Extrêmement utile si vous souhaitez suivre les pages qui ralentissent votre site.

  • Authentification WebSocket :
    GoAccess offre une authentification WebSocket améliorée, prenant en charge la vérification JWT locale et externe, avec des capacités de renouvellement sécurisé des jetons et une intégration transparente avec les systèmes d’authentification externes.

  • Presque tous les formats de journaux web
    GoAccess permet toute chaîne de format de journal personnalisée. Les options prédéfinies incluent Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, etc.

  • Traitement incrémental des journaux
    Besoin de persistance des données ? GoAccess a la capacité de traiter les journaux de manière incrémentielle via les options de persistance sur disque.

  • Une seule dépendance
    GoAccess est écrit en C. Pour l’exécuter, vous n’avez besoin que de ncurses comme dépendance. C’est tout. Il intègre même son propre serveur WebSocket — http://gwsocket.io/.

  • Visiteurs
    Déterminez le nombre de hits, de visiteurs, de bande passante et les métriques pour les requêtes les plus lentes par heure ou par date.

  • Métriques par hôte virtuel
    Vous avez plusieurs hôtes virtuels (blocs de serveur) ? Il dispose d’un panneau qui affiche quel hôte virtuel consomme le plus de ressources du serveur web.

  • ASN (mappage des numéros de système autonome)
    Idéal pour détecter les modèles de trafic malveillants et les bloquer en conséquence.

  • Personnalisable par schéma de couleurs
    Adaptez GoAccess à vos goûts/couleurs. Soit via le terminal, soit en appliquant simplement la feuille de style sur la sortie HTML.

  • Prise en charge des grands ensembles de données
    GoAccess offre la capacité d’analyser de gros journaux grâce à ses tables de hachage optimisées en mémoire. Il a une très bonne utilisation de la mémoire et de bonnes performances. Ce stockage prend également en charge la persistance sur disque.

Presque tous les formats de journaux web...

GoAccess permet toute chaîne de format de journal personnalisée. Les options prédéfinies incluent, sans s’y limiter :

  • Amazon CloudFront (Distribution de téléchargement).
  • Amazon Simple Storage Service (S3)
  • AWS Elastic Load Balancing
  • Combined Log Format (XLF/ELF) Apache | Nginx
  • Common Log Format (CLF) Apache
  • Google Cloud Storage.
  • Hôtes virtuels Apache
  • Squid Native Format.
  • Format W3C (IIS).
  • Format JSON structuré de Caddy.
  • Variante CLF de Traefik

Pourquoi GoAccess ?

GoAccess a été conçu pour être un analyseur de journaux rapide, basé sur terminal. Son idée centrale est d’analyser et de visualiser rapidement les statistiques du serveur web en temps réel sans avoir besoin d’utiliser votre navigateur (idéal si vous voulez faire une analyse rapide de votre journal d’accès via SSH, ou si vous aimez simplement travailler dans le terminal).

Il sert également d’outil pratique pour la surveillance de la sécurité, facilitant la détection d’activités suspectes, de modèles de trafic inhabituels, de tentatives de force brute, de scanners, de robots et de requêtes anormales directement à partir de vos journaux.

Bien que la sortie terminal soit la sortie par défaut, il a la capacité de générer un rapport HTML complet, autonome et en temps réel, ainsi qu’un rapport JSON et CSV.

Vous pouvez le considérer davantage comme une commande de surveillance que comme autre chose.

Installation

État du paquet

Construire à partir d’une version

GoAccess peut être compilé et utilisé sur les systèmes *nix.

Téléchargez, extrayez et compilez GoAccess avec :

root@kitploit:~
$ wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
$ tar -xzvf goaccess-1.10.2.tar.gz
$ cd goaccess-1.10.2/
$ ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
$ make
# make install

Construire à partir de GitHub (Développement)

root@kitploit:~
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

Distributions

Il est plus simple d’installer GoAccess sur GNU+Linux en utilisant le gestionnaire de paquets préféré de votre distribution GNU+Linux. Veuillez noter que toutes les distributions n’auront pas la dernière version de GoAccess.

Debian/Ubuntu

root@kitploit:~
# apt-get install goaccess

Remarque : Il est probable que cela installe une version obsolète de GoAccess. Pour vous assurer d’exécuter la dernière version stable de GoAccess, voir l’option alternative ci-dessous.

Référentiel officiel GoAccess Debian & Ubuntu

root@kitploit:~
$ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
$ echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
$ sudo apt-get update
$ sudo apt-get install goaccess

Remarque :

  • Les paquets .deb dans le référentiel officiel sont également disponibles via HTTPS. Vous pouvez avoir besoin d’installer apt-transport-https.

Fedora

root@kitploit:~
# yum install goaccess

Arch

root@kitploit:~
# pacman -S goaccess

Gentoo

root@kitploit:~
# emerge net-analyzer/goaccess

OS X / Homebrew

root@kitploit:~
# brew install goaccess

FreeBSD

root@kitploit:~
# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess

OpenBSD

root@kitploit:~
# cd /usr/ports/www/goaccess && make install clean
# pkg_add goaccess

openSUSE

root@kitploit:~
# zypper ar -f obs://server:http http
# zypper in goaccess

OpenIndiana

root@kitploit:~
# pkg install goaccess

pkgsrc (NetBSD, Solaris, SmartOS, ...)

root@kitploit:~
# pkgin install goaccess

Windows

GoAccess peut être utilisé sous Windows via Cygwin. Voir les paquets de Cygwin. Ou via le sous-système GNU+Linux sous Windows 10.

Docker

Une image Docker a été mise à jour, capable de diriger la sortie d’un journal d’accès. Si vous voulez seulement produire un rapport, vous pouvez rediriger un journal depuis l’environnement externe vers un processus basé sur Docker :

root@kitploit:~
touch report.html
cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -

OU en temps réel

root@kitploit:~
tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -

Il existe également une documentation sur l’utilisation de docker-compose.

Construire dans un conteneur isolé

Vous pouvez également construire le binaire pour les systèmes basés sur Debian dans un environnement conteneurisé isolé pour éviter d’encombrer votre système local avec les bibliothèques de développement :

root@kitploit:~
$ curl -L "https://github.com/allinurl/goaccess/archive/refs/heads/master.tar.gz" | tar -xz && cd goaccess-master
$ docker build -t goaccess/build.debian-12 -f Dockerfile.debian-12 .
$ docker run -i --rm -v $PWD:/goaccess goaccess/build.debian-12 > goaccess

Vous pouvez en savoir plus sur l’utilisation de l’image Docker dans DOCKER.md.

Paquets de distribution

GoAccess a des exigences minimales, il est écrit en C et nécessite seulement ncurses. Cependant, voici un tableau de quelques dépendances optionnelles dans certaines distributions pour construire GoAccess à partir des sources.

Remarque : Vous pouvez avoir besoin d’installer des outils de construction comme gcc, autoconf, gettext, autopoint etc. pour compiler/construire des logiciels à partir des sources. par exemple, base-devel, build-essential, "Development Tools".

Stockage

Tables de hachage par défaut

Le stockage en mémoire offre de meilleures performances au prix de limiter la taille de l’ensemble de données à la quantité de mémoire physique disponible. GoAccess utilise des tables de hachage en mémoire. Il a une très bonne utilisation de la mémoire et de bonnes performances. Ce stockage prend également en charge la persistance sur disque.

Options de ligne de commande / Configuration

Voir les options qui peuvent être fournies à la commande ou spécifiées dans le fichier de configuration. Si spécifié dans le fichier de configuration, les options longues doivent être utilisées sans préfixer --.

Utilisation / Exemples

Remarque : Rediriger des données dans GoAccess ne provoquera pas de boîte de dialogue de configuration du journal/date/heure, vous devrez le définir au préalable dans votre fichier de configuration ou en ligne de commande.

Pour commencer

Pour afficher dans un terminal et générer un rapport interactif :

root@kitploit:~
# goaccess access.log

Pour générer un rapport HTML :

root@kitploit:~
# goaccess access.log -a > report.html

Pour générer un fichier de rapport JSON :

root@kitploit:~
# goaccess access.log -a -d -o report.json

Pour générer un rapport CSV vers stdout :

root@kitploit:~
# goaccess access.log --no-csv-summary -o csv

GoAccess offre également une grande flexibilité pour le filtrage et l’analyse en temps réel. Par exemple, pour diagnostiquer rapidement des problèmes en surveillant les journaux depuis le lancement de goaccess :

root@kitploit:~
# tail -f access.log | goaccess -

Et encore mieux, pour filtrer tout en maintenant un tube ouvert pour préserver l’analyse en temps réel, nous pouvons utiliser tail -f et un outil de correspondance de motifs tel que grep, awk, sed, etc. :

root@kitploit:~
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -

ou pour analyser depuis le début du fichier tout en maintenant le tube ouvert et en appliquant un filtre

root@kitploit:~
# tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -

Fichiers de journaux multiples

Il existe plusieurs façons d’analyser plusieurs journaux avec GoAccess. La plus simple est de passer plusieurs fichiers de journal à la ligne de commande :

root@kitploit:~
# goaccess access.log access.log.1

Il est même possible d’analyser des fichiers depuis un tube tout en lisant des fichiers ordinaires :

root@kitploit:~
# cat access.log.2 | goaccess access.log access.log.1 -

Remarque : le tiret unique est ajouté à la ligne de commande pour indiquer à GoAccess qu’il doit lire depuis le tube.

Maintenant, si nous voulons ajouter plus de flexibilité à GoAccess, nous pouvons utiliser zcat --force pour lire les fichiers compressés et non compressés. Par exemple, si nous voulons traiter tous les fichiers de journal access.log*, nous pouvons faire :

root@kitploit:~
# zcat --force access.log* | goaccess -

Remarque : Sur Mac OS X, utilisez gunzip -c au lieu de zcat.

Prise en charge multi-thread

Utilisez --jobs=<count> (ou -j) pour activer l’analyse multi-thread. Par exemple :

root@kitploit:~
# goaccess access.log -o report.html -j 4

Et utilisez --chunk-size=<256-32768> pour ajuster la taille des blocs, la taille de bloc par défaut est 1024. Par exemple :

root@kitploit:~
# goaccess access.log -o report.html -j 4 --chunk-size=8192

Sorties HTML en temps réel

GoAccess a la capacité de produire des données en temps réel dans le rapport HTML. Vous pouvez même envoyer le fichier HTML par email car il est composé d’un seul fichier sans dépendances de fichiers externes, n’est-ce pas génial !

Le processus de génération d’un rapport HTML en temps réel est très similaire au processus de création d’un rapport statique. Seule l’option --real-time-html est nécessaire pour le rendre en temps réel.

root@kitploit:~
# goaccess access.log -o /usr/share/nginx/html/votre_site/report.html --real-time-html

Pour visualiser le rapport, vous pouvez naviguer vers http://votre_site/report.html.

Par défaut, GoAccess utilisera le nom d’hôte du rapport généré. Optionnellement, vous pouvez spécifier l’URL à laquelle le navigateur du client se connectera. Voir FAQ pour un exemple plus détaillé.

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io

Par défaut, GoAccess écoute sur le port 7890. Pour utiliser un port autre que 7890, vous pouvez le spécifier comme (assurez-vous que le port est ouvert) :

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --port=9870

Et pour lier le serveur WebSocket à une adresse différente de 0.0.0.0, vous pouvez le spécifier comme :

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1

Remarque : Pour produire des données en temps réel sur une connexion TLS/SSL, vous devez utiliser --ssl-cert=<cert.crt> et --ssl-key=<priv.key>.

Filtrage

Travailler avec les dates

Un autre tube utile serait de filtrer les dates du journal web

Ce qui suit obtiendra toutes les requêtes HTTP commençant le 05/Dec/2010 jusqu’à la fin du fichier.

root@kitploit:~
# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a -

ou en utilisant des dates relatives comme le jour d’hier ou de demain :

root@kitploit:~
# sed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -

Si nous voulons analyser seulement une certaine période de DATE a à DATE b, nous pouvons faire :

root@kitploit:~
# sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a -

Si nous voulons conserver seulement une certaine quantité de données et recycler le stockage, nous pouvons garder seulement un certain nombre de jours. Par exemple, pour conserver & afficher les 5 derniers jours :

root@kitploit:~
# goaccess access.log --keep-last=5

Hôtes virtuels

En supposant que votre journal contienne le champ de l’hôte virtuel. Par exemple :

root@kitploit:~
vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] "GET /shop HTTP/1.1" 200 615 "-" "Googlebot-Image/1.0"

Et vous souhaitez ajouter l’hôte virtuel à la requête afin de voir à quel hôte virtuel appartiennent les URLs principales :

root@kitploit:~
awk '$8=$1$8' access.log | goaccess -a -

Pour faire la même chose, mais aussi utiliser le filtrage et l’analyse en temps réel :

root@kitploit:~
tail -f  access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -

Pour exclure une liste d’hôtes virtuels, vous pouvez faire ce qui suit :

root@kitploit:~
# grep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess -

Fichiers, codes d’état et robots

Pour analyser des pages spécifiques, par exemple, les pages vues, html, htm, php, etc. dans une requête :

root@kitploit:~
# awk '$7~/\.html|\.htm|\.php/' access.log | goaccess -

Remarque : $7 est le champ de la requête pour le format de journal common et combined (sans hôte virtuel). Si votre journal inclut un hôte virtuel, vous voudrez probablement utiliser $8 à la place. Il est préférable de vérifier quel champ vous ciblez, par exemple :

root@kitploit:~
# tail -10 access.log | awk '{print $8}'

Ou pour analyser un code d’état spécifique, par exemple, 500 (Erreur interne du serveur) :

root@kitploit:~
# awk '$9~/500/' access.log | goaccess -

Ou plusieurs codes d’état, par exemple, tous les 3xx et 5xx :

root@kitploit:~
# tail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -

Et pour obtenir un aperçu estimé du nombre de robots (crawlers) qui frappent votre serveur :

root@kitploit:~
# tail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -

Astuces

Aussi, il est utile de souligner que si nous voulons exécuter GoAccess à une priorité inférieure, nous pouvons le faire comme :

root@kitploit:~
# nice -n 19 goaccess -f access.log -a

et si vous ne voulez pas l’installer sur votre serveur, vous pouvez toujours l’exécuter depuis votre machine locale !

root@kitploit:~
# ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess - --log-format=COMBINED

Remarque : SSH nécessite -n pour que GoAccess puisse lire depuis stdin. Assurez-vous également d’utiliser des clés SSH pour l’authentification car cela ne fonctionnera pas si une phrase de passe est nécessaire.

Dépannage

Nous recevons beaucoup de questions et de problèmes qui ont déjà été résolus précédemment.

  • Problèmes de correspondance date/heure ? Vérifiez que votre format de journal et les paramètres régionaux système dans lesquels vous exécutez GoAccess correspondent. Voir #1571
  • Problèmes de correspondance de motifs ? Les espaces sont souvent un problème, voir par exemple #136, #1579
  • Autres problèmes de correspondance des entrées de journal : Voir >200 problèmes fermés concernant les formats de journal/date/heure
  • Problèmes de traitement des journaux ? Voir >111 problèmes concernant le traitement des journaux

Traitement incrémental des journaux

GoAccess a la capacité de traiter les journaux de manière incrémentielle via son stockage interne et de vider ses données sur le disque. Cela fonctionne de la manière suivante :

  1. Un ensemble de données doit d’abord être persistant avec --persist, puis le même ensemble de données peut être chargé avec.
  2. --restore. Si de nouvelles données sont passées (par tube ou via un fichier journal), il les ajoutera à l’ensemble de données original.
REMARQUES

GoAccess garde une trace des inodes de tous les fichiers traités (en supposant que les fichiers resteront sur la même partition), en plus, il extrait un extrait des données du journal ainsi que la dernière ligne analysée de chaque fichier et l’horodatage de la dernière ligne analysée. par exemple, inode:29627417|line:20012|ts:20171231235059

D’abord, il compare si l’extrait correspond au journal en cours d’analyse, si c’est le cas, il suppose que le journal n’a pas changé radicalement, par exemple, n’a pas été tronqué. Si l’inode ne correspond pas au fichier actuel, il analyse toutes les lignes. Si le fichier actuel correspond à l’inode, il lit alors les lignes restantes et met à jour le nombre de lignes analysées et l’horodatage. Par précaution supplémentaire, il n’analysera pas les lignes du journal avec un horodatage ≤ à celui stocké.

Les données en tube fonctionnent en fonction de l’horodatage de la dernière ligne lue. Par exemple, il analysera et ignorera toutes les entrées entrantes jusqu’à ce qu’il trouve un horodatage ≥ à celui stocké.

Exemples
root@kitploit:~
// journal d’accès du mois dernier
# goaccess access.log.1 --persist

puis, chargez-le avec

root@kitploit:~
// ajoutez le journal d’accès de ce mois-ci, et conservez les nouvelles données
# goaccess access.log --restore --persist

Pour lire uniquement les données persistées (sans analyser de nouvelles données)

root@kitploit:~
# goaccess --restore

Contribuer ##Toute aide sur GoAccess est la bienvenue. La meilleure façon d'aider est de l'essayer et de donner votre avis. N'hésitez pas à utiliser le traqueur de problèmes GitHub et les pull requests pour discuter et soumettre des modifications de code.

Vous pouvez contribuer à nos traductions en modifiant les fichiers .po directement sur GitHub ou en utilisant l'interface visuelle inlang.com

Profitez-en !

Télécharger l’outil
  • Prise en charge Docker
    Possibilité de construire l’image Docker de GoAccess depuis l’amont. Vous pouvez toujours le configurer entièrement en utilisant le mappage de volumes et en éditant goaccess.conf. Voir la section Docker ci-dessous. Il existe également une documentation sur l’utilisation de docker-compose.

  • DistributionNCursesGeoIP (opt)GeoIP2 (opt)OpenSSL (opt)
    Ubuntu/Debianlibncurses-devlibgeoip-devlibmaxminddb-devlibssl-dev
    RHEL/CentOSncurses-develgeoip-devellibmaxminddb-developenssl-devel
    Archncursesgeoiplibmaxminddbopenssl
    Gentoosys-libs/ncursesdev-libs/geoipdev-libs/libmaxminddbdev-libs/openssl
    SlackwarencursesGeoIPlibmaxminddbopenssl