SAE : Traitement et Analyse de Données Web (Apache Logs)

Des logs Apache bruts, parfois plusieurs centaines de milliers de lignes. Un script Python pour tout parser, extraire les métriques utiles et générer des graphiques automatiquement.

Rôle : Développeur Python Oct 2024 – Jan 2025 Python / Matplotlib
Histogramme des connexions par semaine
Visualisation Matplotlib — répartition des connexions par navigateur (camembert) et histogramme hebdomadaire.

1. Le Défi — Analyse des Logs Serveur

Les logs Apache s'accumulent vite. L'idée : écrire un script capable de les lire, de calculer des métriques utiles (répartition navigateurs, pics de connexion), et de sortir des graphiques sans intervention manuelle.

Objectifs Clés

  • Extraction — Lire et filtrer les données pertinentes des logs d'accès.
  • Visualisation — Camembert navigateurs + histogramme connexions jour/semaine.
  • Automatisation — Gestion via arguments CLI (argparse).
  • Qualité — Tests unitaires et documentation Sphinx.

2. La Solution Technique

Package Python modulaire — logique métier isolée en modules pour faciliter les tests unitaires.

  • Python 3.7+ — Parsing de fichiers logs Apache.
  • Matplotlib — Génération des graphiques PNG.
  • Unit Testing — Répertoire tests/ pour valider chaque fonction.
  • Sphinx — Documentation technique générée depuis docstrings.
  • Git — Versionnement avec arborescence standard.

Commande d'Exécution

python3 statistiques-connexions-apache/main.py \
  -p data/access.laii.log.8 data/access.laii.log.9 \
  -d /home/papito/Documents/output/

3. Résultats & Compétences

  • Script fonctionnel — Parsing complet, graphiques générés automatiquement, tests unitaires qui passent.
  • Matplotlib maîtrisé — Camembert navigateurs, histogramme hebdomadaire — depuis des données brutes.
  • Code propre — Architecture modulaire, tests unitaires, doc Sphinx générée depuis les docstrings.
  • Leçon retenue — Les données réelles ne sont jamais au bon format. La robustesse du parsing, ça se construit avec des tests.
← ls projets/