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 :

CodeSignificationAction
200Succès — page servie normalementRien à faire
301 / 302Redirection permanente ou temporaireVérifier que la cible est correcte
403Accès refusé par le serveurVotre .htaccess fonctionne — normal pour les scans
404Page introuvableEn masse vers /wp-admin → scan automatisé
500Erreur interne du serveurÀ investiguer immédiatement dans error.log
503Service indisponibleSurcharge ou maintenance — surveiller la durée

Ce que vous devez surveiller

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 :

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 :

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.