Aller au contenu principal
Facturation électronique obligatoire J‑1 Vérifiez votre conformité →
Essayez :
Infrastructure
☁️
Cloud Computing AWS, Azure, GCP
🖥️
Infrastructure IT Architecture réseau
📦
Virtualisation VMware, Hyper-V
💾
Sauvegarde Backup & PRA
Cybersécurité
🔒
Cybersécurité Protection totale
🛡️
Firewall & UTM Sécurité réseau
🔐
Active Directory Gestion identités
📊
Supervision 24/7 Monitoring actif
Accompagnement
🛠️
Support Technique Hotline 24/7
💡
Conseil IT Stratégie digitale
🎓
Formation Montée compétences
🔄
Infogérance Gestion IT externalisée
🚀
DevOps CI/CD & automation
✉️
Signatures e-mail Unifiées PC, Web & mobile
Solutions par Secteur
🏢
Grande Entreprise Solutions d'envergure
🏪
PME / ETI Croissance optimisée
🚀
Startup / Scaleup Innovation rapide
🏛️
Secteur Public Services publics
Technologies
🤖
Intelligence Artificielle IA & Machine Learning
⛓️
Blockchain & Web3 Technologies décentralisées
⚛️
Quantum Computing Calcul quantique
📡
Edge Computing Traitement périphérique
🛠️
Networkia Nouveau Support IT par IA — tickets N1 & N2 résolus automatiquement
🤖
DulcAI by NetworkIT Assistant IA pour vos réunions
Navigation
🤖
AI 工作室 ERP & applis sur-mesure en quelques jours
🧾
Facturation électronique Mise en conformité avant l'échéance 2026
🏷️
Offres & tarifs Prestations à prix clairs (TPE, PME, Industrie)
🤝
合作伙伴 Microsoft CSP, AWS, GCP…
📝
Blog Articles & ressources
📰
Actualités News tech & cyber
ℹ️
À Propos Notre équipe
✉️
Nous Contacter Devis gratuit
Outils IT
🧮
Calculatrice IP Sous-réseaux & masques
💰
Calculateur TCO Coût total de possession
Test de Débit Vitesse connexion
🔐
Générateur Mot de Passe Mots de passe sécurisés
🌐
DNS Lookup Résolution de noms
🔋
BatteryGuard Audit risques batteries
OCS Inventory
📊
Version Complète Plan IP + Inventaire
🌐
Plan d'Adressage IP IPs, VLANs, sous-réseaux
🖥️
Inventaire Matériel Serveurs, switchs, postes
🔧
Tous les Outils Voir la liste complète

GoAccess : Transformez vos logs web en tableaux de bord interactifs

Oubliez les scripts awk complexes et les logs statiques illisibles. GoAccess est l'outil d'analyse de journaux web open source qui convertit instantanément...

GoAccess : Transformez vos logs web en tableaux de bord interactifs

Oubliez les scripts awk complexes et les logs statiques illisibles. GoAccess est l'outil d'analyse de journaux web open source qui convertit instantanément vos fichiers de logs Nginx, Apache ou Traefik en rapports visuels interactifs, directement dans votre terminal ou via un rapport HTML dynamique.

En bref

  • Rendition instantanée : Analyse les logs en temps réel avec une interface terminal (TUI) ou un rapport HTML statique.
  • Polyvalence log : Supporte nativement les formats Common Log Format (CLF), Combined Log Format (CLF+) et les formats spécifiques de Nginx, Apache, HAProxy et Traefik.
  • Métriques avancées : Traque les codes HTTP, les temps de réponse, les URL, les referrers, les agents utilisateurs et les pays d'origine des requêtes.
  • Export flexible : Génération de rapports HTML autonomes (sans dépendance JS externe lourde) ou affichage en mode tableau dans le terminal.
  • Intégration CI/CD : Idéal pour les consultants IT pour auditer la sécurité, optimiser les performances et identifier les anomalies de trafic sans installer d'agent lourd sur le serveur.

Architecture et installation

GoAccess est conçu pour être léger et portable. Contrairement aux solutions SaaS de monitoring web, il ne nécessite pas de base de données ni de serveur applicatif. C'est un binaire compilé (souvent en Go ou en C selon la version) qui lit les fichiers texte.

Pour un consultant IT, la rapidité de déploiement est cruciale. Voici les méthodes d'installation les plus courantes sur les distributions Linux modernes (Debian/Ubuntu, RHEL/CentOS) et via Docker.

Installation via le gestionnaire de paquets

Sur Debian/Ubuntu :

sudo apt update
sudo apt install goaccess

Sur RHEL/CentOS/AlmaLinux (via EPEL) :

sudo dnf install epel-release
sudo dnf install goaccess

Installation via Docker (Recommandé pour l'audit distant)

Si vous n'avez pas les droits root sur le serveur cible mais que vous avez accès au volume de logs, l'approche Docker est la plus propre. Elle isole l'outil de l'environnement de production.

# Dockerfile simple pour GoAccess
FROM alpine:3.19
RUN apk add --no-cache goaccess
ENTRYPOINT ["goaccess"]

Lancement avec le mapping du log Nginx :

docker run --rm -it \
  -v /var/log/nginx:/logs \
  ghcr.io/allin/goaccess:latest \
  /logs/access.log --log-format=COMBINED

Note technique : Assurez-vous que le format de log (--log-format) correspond strictement à la configuration de votre serveur. Un décalage de champs rendra l'analyse incohérente.

Configuration avancée et formats de log

Le point d'échec le plus fréquent avec GoAccess est la mauvaise interprétation du format de log. Par défaut, GoAccess attend le Combined Log Format. Cependant, les configurations Nginx ou Traefik personnalisées peuvent différer.

Adapter le format de log

Si votre log Nginx ressemble à ceci : $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"

Vous pouvez définir un format personnalisé dans un fichier de configuration goaccess.conf ou via la ligne de commande :

goaccess access.log \
  --log-format='%h %l %u %t "%r" %>s %b "%i" "%a"'

Les codes de formatage principaux :

  • %h : Adresse IP
  • %t : Date/Heure
  • %r : Requête (Méthode URL Protocole)
  • %>s : Code de statut final
  • %b : Taille du corps de la réponse
  • %i : Referer
  • %a : User-Agent

Filtrage et exclusion

En tant que consultant, vous devez souvent exclure le trafic interne (health checks, balayeurs de sécurité) pour avoir une vision claire du trafic utilisateur réel.

goaccess access.log \
  --exclude-ip=192.168.1.0/24 \
  --exclude-ip=10.0.0.0/8 \
  --exclude-agent='Mozilla/5.0 (compatible; Googlebot/2.1)'

Vous pouvez aussi filtrer par URL pour isoler un endpoint spécifique :

goaccess access.log --ignore-urls=/api/health /api/metrics

Génération de rapports HTML interactifs

Le véritable atout de GoAccess est sa capacité à générer un rapport HTML autonome. Contrairement à des solutions comme Matomo ou Google Analytics, ce fichier HTML ne nécessite pas de backend. Il contient les données chiffrées/compressées dans le fichier lui-même. C'est parfait pour envoyer un rapport à un client ou l'archiver dans un ticket de support.

Commande de génération

goaccess access.log \
  --log-format=COMBINED \
  --date-format=%d/%b/%Y:%H:%M:%S \
  --date-format=%Y-%m-%d \
  --html-report-report.html \
  --no-query-string \
  --canonical-domain=https://example.com

Détails des flags clés :

  • --html-report-report.html : Nom du fichier de sortie.
  • --no-query-string : Supprime les paramètres ?id=123 pour regrouper les URLs similaires (évite la fragmentation des statistiques).
  • --canonical-domain : Force le domaine affiché dans les URL, utile si le log ne contient pas le nom d'hôte complet.
  • --show-custom-headers : Permet d'afficher des en-têtes HTTP personnalisés si vous les avez ajoutés dans le log.

Personnalisation du rapport HTML

Vous pouvez modifier le CSS et le titre du rapport via le fichier de configuration goaccess.conf ou en créant un fichier HTML de template. Pour un rendu plus professionnel, voici un extrait de configuration pour modifier la couleur du thème et le titre :

# goaccess.conf
html-title = Rapport de Trafic Web - [Nom du Client]
html-css = /opt/goaccess/custom.css
html-favicon = /opt/goaccess/favicon.ico

Le rapport généré inclut automatiquement :

  1. Visiteurs uniques vs requêtes totales.
  2. Répartition par statut HTTP (2xx, 3xx, 4xx, 5xx) avec un graphique en anneau.
  3. Top 10 des URLs les plus visitées.
  4. Top 10 des Referrers (sources de trafic).
  5. Top 10 des User-Agents (navigateurs/OS).
  6. Géolocalisation (si vous utilisez un plugin de base de données IP comme MaxMind, sinon estimation par ASN).

Analyse en temps réel et monitoring

Pour les incidents de production ou l'analyse de pic de charge, le mode terminal est imbattable. Il met à jour les statistiques en direct au fur et à mesure que les lignes s'écrivent dans le log.

Lancement en mode temps réel

tail -f /var/log/nginx/access.log | goaccess --log-format=COMBINED

Navigation dans l'interface TUI :

  • Fleches Gauche/Droite : Naviguer entre les différentes sections (URLs, IPs, Agents, etc.).
  • Fleches Haut/Bas : Déplacer la sélection dans la liste.
  • Entrée : Filtrer la vue par l'élément sélectionné (ex: cliquer sur une IP pour voir uniquement le trafic de cette IP).
  • Ctrl+C : Quitter.

Ce mode permet de diagnostiquer rapidement une attaque DDoS (pic anormal d'IPs uniques) ou une erreur 502 récurrente sur un endpoint spécifique.

Bonnes pratiques pour consultants IT

1. Toujours vérifier l'horodatage

Les logs Nginx sont souvent en UTC. Si votre rapport HTML affiche des heures décalées, vérifiez le fuseau horaire système du serveur ou utilisez l'option --localtime avec le bon fuseau :

goaccess access.log --localtime --timezone=Europe/Paris

2. Sécurité des rapports HTML

Le rapport HTML contient des données de trafic. Ne le publiez jamais sur un serveur web public sans protection. Il peut révéler des structures d'URL sensibles (ex: /admin/user/123) ou des failles de sécurité tentées (codes 404/403 sur des endpoints admin).

  • Action : Chiffrez l'archive ou restreignez l'accès via HTTP Basic Auth si vous devez le partager via un lien web.

3. Automatisation avec Cron

Pour générer un rapport quotidien à 08h00 et l'envoyer par email :

# /etc/cron.d/goaccess-report
0 8 * * * root goaccess /var/log/nginx/access.log --html-report-report.html --no-query-string && mail -s "Rapport Web Journalier" client@example.com < /var/log/nginx/report.html

4. Gestion des logs compressés

GoAccess peut lire directement les fichiers .gz ou .zip. C'est essentiel pour analyser les logs historiques sans les décompresser manuellement (économie de disque).

goaccess /var/log/nginx/access.log.1.gz --log-format=COMBINED

5. Corrélation avec les erreurs

Utilisez le filtre de statut pour isoler uniquement les erreurs 5xx et identifier les endpoints défaillants :

goaccess access.log --filter-status=500-599

Points cles

GoAccess n'est pas un outil de monitoring en continu au sens de Prometheus ou Zabbix. C'est un outil d'analyse post-mortem et de diagnostic instantané.

Pour un consultant IT, sa valeur réside dans sa capacité à :

  1. Auditer la sécurité : Identifier les scanners de ports (beaucoup de 404/405 rapides), les bots malveillants ou les tentatives d'injection.
  2. Optimiser les performances : Repérer les endpoints lents (si le log contient le temps de réponse) ou les ressources statiques mal servies.
  3. Facturer avec des preuves : Fournir un rapport HTML propre et visuel au client pour justifier une refonte, une mise à jour de cache ou une augmentation de la bande passante.

C'est un outil léger, sans dépendance, qui s'intègre parfaitement dans les environnements hétérogènes (Nginx, Apache, HAProxy, Traefik) et qui transforme des gigaoctets de texte brut en insights actionnables en moins de deux minutes.


Source : IT Connect

Cet article vous a été utile ? Partagez-le !

Articles similaires

Découvrez d'autres articles sur le même sujet

Le verdict Kalshi : pourquoi le "trading" sportif n'est pas un swap et ce que cela change pour l'infrastructure IT
Ars Technica

Le verdict Kalshi : pourquoi le "trading" sportif n'est pas un swap et ce que ce...

Les tribunaux américains viennent de clôturer le débat juridique majeur opposant les plateformes de prédiction (predicti...

Lire la suite
Sécuriser les actifs cloud à l'ère de l'IA : le guide indispensable pour les consultants IT
Dark Reading

Sécuriser les actifs cloud à l'ère de l'IA : le guide indispensable pour les con...

L'intégration massive des outils d'intelligence artificielle dans les environnements cloud redéfinit la surface d'attaqu...

Lire la suite
TechCrunch

La stratégie de levier financier des Neoclouds : quand la dette privée finance l...

L'acquisition de 1 milliard de dollars de dette privée par Neocloud Lambda pour acheter des puces Nvidia et les louer à...

Lire la suite
Voir toutes les actualités