Massive Logger

L’analyse des logs de production peut parfois être un véritable défi en raison du très fort volume généré par les architectures à fort trafic. Ainsi l’architecture mise en œuvre pour www.lemonde.fr génère des millions de lignes de logs quotidiens répartis sur une dizaine de serveurs.

Dans un premier temps, l’analyse n’était effectuée qu’à postériori et elle consistait à parcourir les différents fichiers de logs des différents serveurs à la recherche de l’erreur. Le fameux syndrome de l’aiguille dans une botte de foin… Par ailleurs, aucune analyse automatique n’était effectuée sur ces logs. Par son aspect manuel, fastidieux et aléatoire, cette méthode n’était pas satisfaisante et il a été décidé de regrouper tous les logs dans un référentiel unique.  

La première approche consistant à regrouper tous les fichiers de logs dans un fichier unique s’est rapidement heurtée à la problématique de volumétrie et s’est donc révélée impossible à mettre en œuvre. Il a donc été nécessaire d’agréger les logs (group by) avant de les fusionner puis de les agréger à nouveau après fusion afin d’avoir un résultat exploitable.

L’avantage de cette approche est qu’elle est simple à mettre en œuvre et qu’elle permet une analyse automatique des logs. Pour www.lemonde.fr, elle permet l’envoi d’un mail quotidien avec le top 10 des erreurs. L’inconvénient majeur est que la remontée d’information n’est pas temps réel et que le processus d’agrégats provoque une perte d’information.

Une seconde approche a donc été mise en œuvre avec un objectif de remontée et d’analyse temps réel et un minimum de perte d’information.

Cette approche est basée sur les composants suivants :

  • Rsyslog pour la transmission, le formatage et l’agrégation des logs
  • ElasticSearch pour la persistance, l’analyse et la purge des logs
  • Kibana pour le rendu graphique de l’analyse des logs

Les avantages de cette approche sont une analyse temps réel des logs et donc la capacité à détecter les anomalies au plus tôt sur un tableau de bord graphique. Par ailleurs, les logs sont disponibles dans ElasticSearch pour des analyses plus détaillées.

Pour plus d’information :

 

Jacques B

Ajouter un commentaire