Gestion des logs d’un site autonome : collecte et analyse des logs d’accès, d’erreur et applicatifs

Les logs d'un site autonome ne sont pas « une pile de fichiers », mais trois types d'enregistrements aux usages bien distincts : les logs d'accès montrent qui est venu, les logs d'erreur montrent où ça a planté, les logs applicatifs montrent où en est le processus métier. Durée de conservation, outils d'analyse, seuils d'alerte...

日志管理:访问、错误、应用三类,各有各的管法Log management: access, error and app logs are handled differently 反直觉:三类日志混在一起存,排障时一份都找不到Counter-intuitive: mixing three log types makes none findable 日志类型Type 看什么What 访问日志Access 谁访问了什么Who requested what 保留 90 天Keep 90 days 错误日志Error 哪里崩了、为什么Where it broke, why 保留 1 年Keep 1 year 应用日志App 业务流程走到哪Where the flow went 保留 30 天Keep 30 days 收集管道:写文件 → 按天切割 → 集中化 → 告警Pipeline: file -> daily rotate -> centralize -> alert 单人团队不必上 ELK,先把切割、集中、告警三件事做对Skip ELK solo; get rotation, centralization, alerting right first 红线:错误率连续 10 分钟超 1% 立即告警;日志不切割会撑爆磁盘Red line: error rate >1% for 10 min = alert; rotate or disk fills 排障顺序:先错误日志定位崩点,再访问日志看影响面,最后应用日志还原流程Triage: error log first, then access log, then app log
Les trois types de logs d’un site autonome : accès, erreur, applicatif — durée de conservation, pipeline de collecte et ordre de diagnostic

Gestion des logs d’un site autonome : collecte et analyse des logs d’accès, d’erreur et applicatifs

Conclusion d’abord : Les logs d’un site autonome ne sont pas « une pile de fichiers », mais trois types d’enregistrements aux usages bien distincts : les logs d’accès montrent qui est venu, les logs d’erreur montrent où ça a planté, les logs applicatifs montrent où en est le processus métier. Leur durée de conservation, leurs outils d’analyse et leurs seuils d’alerte diffèrent : tout stocker ensemble revient à ne rien retrouver. La solution minimale viable n’est pas de déployer la suite ELK complète, mais de réussir d’abord trois choses : découper par jour, centraliser au même endroit, alerter au-delà de 1 % d’erreurs. Conservez les logs d’accès 90 jours, les logs d’erreur 1 an et les logs applicatifs 30 jours.

1. Chaque type de log a un rôle précis, ne les mélangez pas

Beaucoup traitent tous les fichiers .log du serveur comme « les logs » et les parcourent un par un en cas d’incident. En réalité, les trois types de logs répondent à trois questions totalement différentes. Les logs d’accès (access.log de Nginx/Apache) répondent à « qui a demandé quoi et quand » ; les logs d’erreur (error.log de Nginx, erreurs PHP-FPM) répondent à « où le serveur a signalé une erreur » ; les logs applicatifs (les log écrits dans votre propre code) répondent à « où en est cette commande, pourquoi elle a échoué ».

Le jugement contre-intuitif est ici :En cas d’incident en production, le log d’accès est le dernier à consulter. Les logs d’accès sont volumineux et bruyants : les consulter en premier, c’est se noyer sous des milliers de lignes 200. Le bon ordre : d’abord les logs d’erreur pour localiser le point de rupture, puis les logs d’accès pour mesurer l’impact (combien d’utilisateurs, quelles URL), enfin les logs applicatifs pour reconstituer le processus métier. C’est la même logique que Analyse des logs de crawlers IA qui insiste sur « identifier d’abord qui vous lit » : classer avant d’analyser.

Type de log Question à laquelle il répond Emplacement typique Conservation conseillée
Log d’accès Qui, quand, quelle requête Nginx access.log 90 jours en données chaudes
Log d’erreur Où le serveur a signalé une erreur et pourquoi Nginx error.log / erreurs PHP 1 an
Log applicatif Où en est le processus métier, où il bloque log personnalisé dans le code 30 jours
Log système Événements du serveur lui-même /var/log/messages 30 jours

2. Pipeline de collecte : de « fichiers éparpillés » à « un seul endroit consultable »

Dans une équipe d’une personne, la situation est souvent la suivante : un log Nginx, un log PHP, un log écrit par l’application, dispersés dans des répertoires différents ; au redémarrage du serveur ou au changement de machine, l’historique est perdu. La première étape de la gestion des logs n’est pas l’analyse, mais de les centraliser.

Un pipeline se fait en quatre étapes : l’application écrit les fichiers, on les découpe par jour, on les centralise, et on met une alerte sur les erreurs. Pour le découpage, logrotate s’en charge jour par jour avec compression gzip, pour éviter un fichier unique de plusieurs Go impossible à ouvrir ; pour la centralisation, on peut commencer simple : rsyslog ou un agent léger envoie les logs vers une machine dédiée ou un service de logs cloud.

Une équipe d’une seule personne n’a pas besoin de déployer d’emblée une usine à gaz comme ELK : un stockage centralisé avec une interface de recherche suffit, et on envisagera plus lourd quand le volume augmentera. Pour un site derrière un CDN, il faut aussi collecter les logs de l’edge et ceux de l’origine, voir Accélération mondiale par CDN.

Étape Mise en œuvre Outil / configuration Conséquence si on ne le fait pas
Écriture des fichiers Sortie au format unifié format combined Champs incomplets, scripts d’analyse difficiles à écrire
Découpage Découpage quotidien avec compression logrotate Fichier trop volumineux qui sature le disque
Centralisation Regroupement sur un seul stockage rsyslog / logs cloud Historique perdu au changement de machine
Alertes Notification sur seuil de taux d’erreur Règles de la plateforme de supervision On ne découvre le problème que quand un utilisateur se plaint

Trois. Les logs d’erreur : la catégorie à surveiller en priorité dans une équipe d’une seule personne

Sur les trois catégories, les logs d’erreur ont la plus forte densité d’information par ligne et méritent d’être surveillés en premier. Les logs d’accès font plusieurs centaines de milliers de lignes par jour, les logs d’erreur peut-être quelques centaines, mais chaque ligne correspond à un échec réel. Les centraliser à part et leur dédier des alertes offre le meilleur rapport effort/résultat.

Fixez des seuils chiffrés : un taux d’erreur 5xx supérieur à 1 % pendant 10 minutes consécutives déclenche une alerte immédiate ; une erreur anormale isolée (échec de connexion à la base de données, échec de callback de paiement) déclenche une alerte dès la première occurrence, sans attendre le cumul. Les logs d’erreur doivent être hiérarchisés : les warning se consultent régulièrement, les error et critical exigent une notification en temps réel. Pour les applications comme PHP, il faut aussi isoler les erreurs fatales et les requêtes lentes.

Exemple concret : Un matin, l’alerte se déclenche : le taux d’erreur 5xx passe de 0,1 % à 3 %. Vous ouvrez d’abord les logs d’erreur et voyez une masse de « PHP-FPM: unable to connect », ce qui pointe vers un pool de processus backend saturé ; vous regardez ensuite les logs d’accès pour identifier les URL déclencheuses et découvrez qu’une nouvelle API en production a saturé le pool à cause d’une requête lente ; vous consultez enfin les logs applicatifs pour confirmer quelle requête SQL en est la cause. Diagnostic en dix minutes : c’est la valeur d’avoir traité les logs d’erreur en premier.

Niveau d’erreur Exemple Mesure à prendre Seuil d’alerte
critique Base de données inaccessible, paiement échoué Notification immédiate Alerte dès la première occurrence
erreur 5xx, erreurs fatales Notification en temps réel > 1 % sur 10 minutes
avertissement Requêtes lentes, tentatives de reconnexion Consultation dans le récapitulatif quotidien Récapitulatif au-delà de 2 fois la baseline
notification Messages métier normaux Archivage sans alerte Pas d’alerte

Quatre. Les logs applicatifs : rendre le parcours métier traçable

Les logs d’accès et d’erreur sont des enregistrements « objectifs » du serveur, mais ils ne répondent pas à une question métier du type « pourquoi cette demande n’est pas arrivée dans le CRM ». C’est là qu’interviennent les logs applicatifs : vous écrivez vous-même des logs aux étapes clés du parcours métier — demande soumise, écrite en base de données, poussée vers le CRM, échec du retour du CRM.

Pour que les logs applicatifs soient utiles, chaque entrée doit porter un identifiant métier, par exemple un ID de demande ou un numéro de commande. Ainsi, en cas de problème, il vous suffit de rechercher cet ID pour reconstituer tout le parcours de la demande, de sa soumission à sa clôture. N’écrivez pas de logs inutiles (“exécution ligne 10”) : chaque entrée doit répondre à une question métier. Limitez le volume à quelques dizaines de Mo par jour, et n’incluez pas le corps complet des requêtes : c’est lent et cela expose des données personnelles.

Le lien entre lenteur et logs mérite aussi d’être mentionné : trop de logs, ou une écriture disque synchrone à chaque requête, ralentit les réponses. Pour savoir comment analyser les indicateurs de lenteur, voir Core Web Vitals. Pour le cadre général de la surveillance et des alertes, voir Surveillance et alertes du site.

Étape métier À journaliser Identifiant associé Comment enquêter en cas de problème
Soumission de la demande Champs du formulaire, page source ID de demande Rechercher la soumission par ID
Enregistrement en base Écriture réussie / échouée ID de demande Vérifier si la donnée est en base
Envoi vers le CRM Code de retour de l’API, durée ID de demande Vérifier si le CRM a reçu
Notification par e-mail Envoi réussi / échoué ID de demande Vérifier si le commercial a reçu

5. Pièges à éviter : les trois erreurs les plus courantes dans la gestion des logs

Premier piège : “ni rotation ni rétention”. Si les logs s’écrivent toujours dans un seul fichier, au bout de trois mois il pèse plusieurs Go, un simple grep prend une éternité, ou pire, il remplit le disque et fait tomber votre site. La rotation quotidienne avec une politique de rétention est le minimum.

Deuxième piège : “garder seulement le temps réel sans archiver”. Quand le disque est plein, on supprime les plus anciens, et au moment de chercher l’origine d’une panne survenue deux mois plus tôt, il n’y a plus rien. Conservez les données chaudes 90 jours, puis compressez et archivez au moins un an : cela coûte très peu. Troisième piège : “écrire des données sensibles dans les logs”. Mettre les mots de passe utilisateurs ou des numéros de carte bancaire complets dans les logs, c’est créer une source de fuite supplémentaire dans votre base de logs. Masquez systématiquement les champs sensibles, ou ne les écrivez pas sur disque.

Erreur fréquente Symptôme visible Vrai problème Bonne pratique
Pas de rotation Le fichier unique grossit sans fin Disque plein, recherche lente Rotation quotidienne avec logrotate
Pas d’historique Suppression des plus anciens quand le disque est plein Aucune donnée pour revenir en arrière 90 jours en chaud, 1 an en archive
Écriture de données sensibles Les logs facilitent le débogage La base de logs devient une source de fuite Masquage des champs sensibles
Les trois types mélangés Il faut tout fouiller en cas d’incident Localisation lente, beaucoup de bruit Priorité aux erreurs, recherche par catégorie

FAQ — Questions fréquentes

Faut-il absolument une plateforme de logs type ELK pour un site indépendant ?
Non. Monter un ELK dès le départ quand on travaille seul, c’est un investissement excessif. La solution minimale viable consiste d’abord à bien faire trois choses : une rotation quotidienne des logs, une centralisation via rsyslog ou un service de logs cloud, et une alerte sur le taux d’erreur. Ces trois étapes se configurent en une demi-journée avec des outils existants. N’envisagez ELK ou un service de logs commercial que lorsque vous produisez plusieurs Go de logs par jour et que plusieurs personnes doivent faire des recherches et analyser des tendances sur le long terme.
Pourquoi ne pas mélanger les logs d’accès, d’erreur et applicatifs ?
Parce qu’ils ne répondent pas du tout aux mêmes questions. Les logs d’accès disent qui est venu, les logs d’erreurs disent où ça a planté, les logs applicatifs disent où en est le parcours métier. Mélangés, en cas d’incident il faut chercher quelques lignes d’erreur critiques parmi des centaines de milliers de lignes de bruit : le rendement est catastrophique. Stockez-les séparément, indexez-les séparément, définissez des durées de rétention séparées. Pour diagnostiquer, commencez par les logs d’erreurs pour localiser le point de rupture, puis consultez les logs d’accès pour mesurer l’impact, et enfin les logs applicatifs pour reconstituer le déroulé.
Combien de temps conserver chaque type de log ?
Les logs d’accès : 90 jours en données chaudes, puis compression et archivage au-delà. Les logs d’erreurs : 1 an, car le diagnostic et les incidents de sécurité remontent souvent à plusieurs mois. Les logs applicatifs : 30 jours suffisent, le volume est important et ils ne servent qu’au suivi métier récent. Avec une rotation quotidienne et une compression gzip, un an de logs ne pèse en général que quelques Go : pas besoin de sacrifier l’historique pour économiser du stockage.
Comment définir les seuils d’alerte des logs d’erreurs ?
À deux niveaux. Un taux d’erreurs 5xx supérieur à 1 % pendant 10 minutes consécutives déclenche une alerte en temps réel ; la valeur saine doit rester sous 0,5 %. Une erreur de niveau critical (base de données injoignable, échec de callback de paiement) déclenche une alerte dès la première occurrence, sans attendre le cumul. Le niveau warning (requêtes lentes, tentatives temporaires) ne notifie pas en temps réel : un récapitulatif quotidien suffit. Après la mise en production, calibrez les seuils sur votre baseline réelle : mieux vaut être plus strict que la baseline que laisser passer une vraie panne.
Quel niveau de détail pour les logs applicatifs, et quel impact sur les performances ?
Loguez aux points clés du parcours métier, avec un ID de demande ou de commande sur chaque ligne, sans écrire tout le corps de la requête. L’écriture disque synchrone a un coût : privilégiez des logs asynchrones ou un tampon. Visez moins de quelques dizaines de Mo de logs par jour. La règle : chaque ligne doit répondre à une question métier. Les lignes de débogage inutiles (numéro de ligne exécutée) sont à supprimer avant la mise en production.
Peut-on consigner les mots de passe et les informations de paiement dans les logs ?
Jamais. Les logs sont stockés de façon centralisée, conservés longtemps et consultables par plusieurs personnes : y écrire des mots de passe ou des numéros de carte complets revient à créer une nouvelle source de fuite dans la base de logs. Les champs sensibles sont systématiquement masqués ou non écrits sur disque, par exemple seuls les quatre derniers chiffres de la carte. Par ailleurs, l’accès aux logs doit être restreint : tout le monde ne doit pas pouvoir fouiller les logs applicatifs, surtout quand ils contiennent des données métier.

Pour conclure

La valeur de la gestion des logs ne tient pas au volume stocké, mais à la capacité à localiser un incident en trois minutes. Pour un site indépendant géré par une seule personne, séparer les trois types de logs, les centraliser avec une rotation quotidienne et alerter au-delà de 1 % d’erreurs : une fois cette base en place, le temps de diagnostic quotidien passe de « des heures à fouiller les logs » à « un coup d’œil à l’alerte ». Les plateformes de logs lourdes viendront avec l’échelle, elles ne sont pas nécessaires au démarrage.

Trois étapes pour passer à l’action. Premièrement, séparez le stockage des trois types de logs (accès, erreurs, application) et définissez une durée de rétention pour chacun, avec une rotation quotidienne. Deuxièmement, centralisez-les avec rsyslog ou un service de logs cloud, pour pouvoir les rechercher par identifiant métier. Troisièmement, déclenchez une alerte dès que le taux d’erreur dépasse 1 % sur 10 minutes, ou dès qu’une erreur critique apparaît, même une seule fois. Une fois ces trois étapes en place, votre vision de la production passe de « on découvre le problème quand un utilisateur se plaint » à « on le sait avant lui ». Pour le rythme de maintenance, référez-vous à calendrier de maintenance du site et planifiez le tout ensemble.

Une phrase à retenir : un log n’est pas un fichier qu’on garde par nostalgie sur un disque, c’est la boîte noire de l’accident. Sans classification ni centralisation au quotidien, le jour où ça casse, il ne reste que des impressions et des suppositions.

Cratère
Cratère Expert Cratère

Officiel de l'organisme · Cratère Crater

Cratère (Crater) est une société de services d'expansion internationale spécialisée dans le développement de sites WordPress autonomes, le référencement Google et la croissance globale GEO, au service des secteurs du matériel intelligent, de l'équipement industriel, du SaaS et des énergies nouvelles.

Capacités produitLivre blanc méthodologiqueRapports sectoriels
965partages
78articles de base de connaissances