Les deux types de logs essentiels
access.log : l'historique complet de toutes les requêtes HTTP. Pour chaque ligne : adresse IP, date et heure, URL demandée, code de réponse, navigateur utilisé.
error.log : les erreurs serveur (codes 4xx, 5xx), les tentatives bloquées, les problèmes de configuration. C'est votre premier indicateur de problèmes.
Anatomie d'une ligne de log
185.220.101.42 - - [25/May/2026:03:15:22] "GET /wp-admin/setup-config.php HTTP/1.1" 403 0 "-" "python-requests/2.28.0"
Décodage : IP connue du réseau Tor · 3h15 du matin (horaire typique de scan) · tentative d'accès à un fichier d'installation WP inexistant · 403 = accès refusé (votre .htaccess fonctionne) · python-requests = bot automatisé, pas un humain.
Les codes HTTP à connaître
Chaque ligne de log contient un code à trois chiffres. Voici ceux qui comptent vraiment :
| Code | Signification | Action |
|---|---|---|
| 200 | Succès — page servie normalement | Rien à faire |
| 301 / 302 | Redirection permanente ou temporaire | Vérifier que la cible est correcte |
| 403 | Accès refusé par le serveur | Votre .htaccess fonctionne — normal pour les scans |
| 404 | Page introuvable | En masse vers /wp-admin → scan automatisé |
| 500 | Erreur interne du serveur | À investiguer immédiatement dans error.log |
| 503 | Service indisponible | Surcharge ou maintenance — surveiller la durée |
Ce que vous devez surveiller
- Codes 401/403 répétés depuis la même IP : tentatives de force brute ou scan
- 404 en masse vers
/wp-admin/,/admin/,/phpmyadmin/: scan automatisé - User-agents suspects :
python-requests,masscan,sqlmap - Pics de trafic à des heures atypiques : signes possibles de DDoS
Commandes pratiques en SSH
Trouver toutes les tentatives d'accès bloquées à wp-admin :
grep "wp-admin" access.log | grep " 403 " | awk '{print $1}' | sort | uniq -c | sort -rn
Voir les 50 dernières lignes en temps réel :
tail -f -n 50 access.log
Outils d'analyse accessibles
Lire les logs à la main est utile ponctuellement, mais des outils automatisent l'analyse et produisent des rapports visuels :
- GoAccess : outil open source en ligne de commande ou interface web. Analyse en temps réel, graphiques, top URLs, top IPs. Idéal pour une analyse rapide sans installation lourde.
- AWStats : souvent préinstallé chez les hébergeurs mutualisés comme Infomaniak. Accessible depuis le panneau de contrôle sans configuration supplémentaire.
- Fail2ban : pas un outil d'analyse mais de réaction — il lit vos logs et bannit automatiquement les IPs qui déclenchent trop d'erreurs 401/403. Recommandé sur tout serveur exposé.
Fréquence de consultation recommandée
Il n'est pas nécessaire de lire les logs chaque jour. Une approche pragmatique pour une association ou une petite structure :
- Hebdomadaire : vérification rapide des codes 500 dans error.log — cinq minutes suffisent.
- Mensuelle : analyse des tendances via AWStats ou GoAccess — qui visite, quelles pages, quels bots.
- En cas d'incident : consultation immédiate des logs des 24-48 heures précédentes pour reconstituer ce qui s'est passé.
Cadre légal
Les logs contiennent des adresses IP — c'est-à-dire des données personnelles selon la LPD. Mentionnez leur collecte dans votre politique de confidentialité et définissez une durée de conservation (généralement 30 à 90 jours). Au-delà, suppression ou anonymisation.
Exercice pratique
✅ À faire maintenant : connectez-vous en SSH à votre serveur. Exécutez tail -n 100 access.log pour voir les 100 dernières lignes. Identifiez trois patterns différents : un visiteur humain, un robot légitime (Googlebot), et une tentative automatisée.