Dans cet article

Qu'est-ce que la gestion des logs ?

La gestion des logs se rapporte à tous les processus associés au traitement des données de logs, dont la génération, l'agrégation, le stockage, l'analyse, l'archivage et la suppression de ces logs. Un système de gestion des logs doit enregistrer tout ce qui se passe dans l'application, sur le réseau ou sur le serveur — qu'il s'agisse d'une erreur, d'une requête HTTP ou de quoi que ce soit d'autre. Ces données de log peuvent alors être utilisées pour le dépannage et l'analyse. Les applications modernes reçoivent souvent au quotidien des millions voire des milliards d'événements provenant de différents services, ce qui peut compliquer la gestion, mais aussi — ce qui est pire — l'obtention d'informations exploitables sur les incidents. Pour cette raison, la gestion des logs est essentielle aux DevOps, à l'observabilité et aux pratiques IT.

Qu'est-ce qu'un log ?

Un log est un enregistrement généré par ordinateur et horodaté d'une action ou d'un événement distinct et spécifique. Quasiment tous les systèmes modernes peuvent produire des données de log et il est recommandé que vous suiviez la bonne pratique pour le faire. Les données généralement incluses dans les logs sont par exemple : les appels de fonction, les erreurs, les requêtes HTTP, les transactions de base de données, etc. Les logs décrivent les actions au fur et à mesure que celles-ci se produisent.

Pourquoi les logs sont-ils importants ?

Les logs sont un enregistrement de tout ce qui se passe dans une application, sur le réseau ou sur un serveur. Ils sont les bases du monitoring, du suivi des erreurs et du signalement d'erreurs des applications, ce qui en fait un élément crucial de l'observabilité. En effet, cette dernière serait impossible sans les données de log.

Quatre types de données télémétriques sont utilisés pour l'observabilité et le monitoring. Vous pouvez utiliser l'acronyme MELT pour vous en souvenir.

  • Les métriques sont basées sur les données de log agrégées et fournissent des informations sur les performances des applications. Et si des outils comme New Relic génèrent automatiquement certaines métriques pour vous, il vous est également possible d'en personnaliser d'autres en fonction de vos besoins.
  • Les événements décrivent ce qui se passe dans une application. Ils sont composés de plusieurs lignes de données de log. Ils demandent plus d'espace de stockage que les logs et tendent donc à être conservés moins longtemps.
  • Les logs sont bien plus granulaires que les événements et décrivent tout ce qui se passe dans une application.
  • Les traces utilisent les spans pour connecter les événements, ce qui permet de localiser la cause profonde d'un problème et de le résoudre.

Les quatre types de données télémétriques ont les logs en commun. Sans les logs, il n'y a pas de MELT et vous ne pouvez pas observer ce qui se passe dans votre application. Résultat : au lieu d'un monitoring proactif de vos données pour détecter les problèmes, ce sont vos utilisateurs qui vous en informent, ce qui vous oblige à être réactif et non proactif. Pire encore, une fois que vous savez qu'il y a un problème, il est très difficile de le résoudre sans les logs parce que vous n'avez aucun enregistrement des erreurs dans l'application. Cela a pour conséquences : des utilisateurs mécontents, des ingénieurs stressés, des clients frustrés et vraisemblablement l'échec du produit.

Les logs fournissent également un autre avantage clé : ils ont tendance à être très petits. Pour cette raison, ils sont beaucoup plus simples à transférer et à stocker que de nombreux autres types de données, comme les événements.

Avec New Relic vous pouvez afficher tous vos logs en un seul et même endroit.

Pourquoi la gestion des logs est-elle si importante ?

Il ne suffit pas de simplement configurer une application pour émettre les données de log. Vous avez sans doute déjà entendu parler de l'expérience de pensée philosophique suivante : « Si un arbre tombe dans la forêt et que personne n'est là pour l'entendre, fait-il du bruit ? » Dans le cas des données de log, si les données sont produites, mais qu'elles ne sont pas correctement collectées et stockées, l'information est perdue. Les données de log doivent être envoyées quelque part — dans l'idéal, il s'agit d'un emplacement centralisé où elles peuvent être correctement analysées et récupérées à volonté, dans le contexte des données provenant d'autres services. 

Toutefois, la collecte centralisée des données n'est qu'une des étapes du processus de gestion des logs. En effet, la gestion des logs consiste à s'occuper de chaque élément du cycle de vie des logs, de la sortie des données de log jusqu'à leur archivage ou suppression.

De nombreuses applications modernes comprennent des microservices, des systèmes distribués et des services basés dans le cloud, et chaque partie du système qui envoie ses propres données de log. Par exemple, supposons que vous ayez besoin de savoir quelles requêtes HTTP ont le temps de réponse moyen le plus long dans l'application. Si l'application est distribuée, plusieurs services pourraient envoyer des requêtes HTTP et vous ne pouvez les comparer que si les données de log sont disponibles au même endroit. C'est là qu'une gestion des logs réussie entre en jeu.

Une gestion des logs réussie vous permet de :

  • Réduire le passage d'un contexte à l'autre : le stockage de vos données en un seul et même endroit supprime le besoin de changer d'outil et de contexte. Si vos données de log sont stockées dans différents endroits, vous serez probablement obligé de vérifier plusieurs emplacements et outils pour déboguer un problème.
  • Trouver et résoudre les problèmes plus rapidement : une solution de gestion des logs vous permet de rapidement récupérer, analyser et visualiser les données de log en contexte, et elle vous aide à rapidement identifier et éliminer les problèmes avant qu'ils n'aient un impact sur les utilisateurs.
  • Rechercher instantanément dans vos logs les données dont vous avez besoin : une bonne solution de log fournit toutes les fonctionnalités de recherche nécessaires pour rapidement descendre dans la hiérarchie des logs et obtenir les données dont vous avez besoin.
  • Visualiser toutes vos données dans un seul et même endroit : avec les données de log centralisé, vous pouvez utiliser les MELT pour développer les vues et les dashboards personnalisés qui vous permettent d'avoir un aperçu de haut niveau sur les performances de l'application.

Découvrez ci-dessous les fonctionnalités dont vous avez besoin pour profiter de ces avantages.

Quelles sont les fonctionnalités de gestion des logs nécessaires

Vous obtiendrez le maximum de vos outils de gestion des logs s'ils comprennent les fonctionnalités suivantes :

  • Une instrumentation flexible et complète : afin de collecter toutes les données de log en un seul et même endroit, il est nécessaire d'instrumenter votre application. L'instrumentation est le processus d'installer des agents qui suivent les données circulant dans votre application. Par exemple, il peut s'agir d'une application qui a plusieurs services cloud et des API Java, Rails et .NET, et qui utilise principalement React et JavaScript en frontend. Chacun de ces services doit être instrumenté et votre outil de gestion des logs doit disposer d'agents pour le plus de langages et de services de programmation possible afin que vous puissiez obtenir une couverture complète de tous vos services. Et si vous pouvez choisir d'instrumenter une partie de votre application (telles que les données sensibles), tout service non instrumenté laissera des vides dans vos données de log.
  • La compatibilité avec le transfert des logs : s'il n'est pas possible d'instrumenter un service, vous aurez besoin de transférer vos logs. Votre outil de gestion des logs doit pouvoir prendre en charge ce transfert. 
  • Une capacité d'interrogation puissante : si une erreur se présente, vous devez pouvoir accéder immédiatement à vos logs. C'est pourquoi il est important que votre solution de gestion des logs ait la capacité d'interroger rapidement et efficacement les données. Par exemple, New Relic utilise NRQL (New Relic Query Language), ce qui offre une large gamme de requêtes flexibles permettant aux utilisateurs d'obtenir les données nécessaires.
  • La sécurisation du stockage des données : la sécurité est essentielle pour traiter les données de log sensibles, surtout pour les applications qui nécessitent de hauts niveaux de conformité tels que la norme HIPAA (une norme de sécurisation des renseignements de santé et médicaux).

Quelles sont les étapes du processus de gestion des logs ?

Voici les principales étapes du processus de gestion des logs :

  • Création : vos services doivent tout d'abord produire des données de logs. Les services tiers disposent souvent de la fonctionnalité d'envoi de ces données. Vous pouvez également instrumenter vos services pour enregistrer les logs. 
  • Collecte : la collecte des données de log est la deuxième d'étape du processus. Elle implique généralement une combinaison d'instrumentation et de transferts des logs afin que tous les logs soient collectés dans un emplacement centralisé.
  • Agrégation : l'agrégation est le processus qui consiste à prendre les données de log collectées et les organise dans un format normalisé et pratique. Ceci comprend l'analyse des données de log à partir de différentes sources et la transformation du format de données selon les besoins afin que les celles-ci soient cohérentes. Par exemple, vos données agrégées peuvent être normalisées au format JSON. Il est également assez fréquent d'enrichir les logs avec des métadonnées qui fournissent un contexte supplémentaire, tel que le service ou l'adresse IP depuis laquelle le log a été envoyé.
  • Stockage : une fois les données de log collectées, elles doivent être stockées dans la base de données. Par exemple, toutes les données de log envoyées à New Relic sont stockées dans NRDB (la base de données New Relic). Dans l'idéal, ces données devraient être indexées pour assurer l'efficacité de leur interrogation et analyse.
  • Archivage : après une certaine période, il n'est plus nécessaire d'avoir un accès continu à certaines données de log, mais il vous faudra peut-être les conserver à d'autres fins, notamment pour des raisons juridiques ou pour respecter la politique de l'entreprise. Dans ce cas, l'archivage des données plus anciennes vous permet d'optimiser le stockage et de rendre l'interrogation de vos données de log plus efficace.
  • Suppression : vous pouvez également décider de supprimer les données de log après une certaine période afin de gagner de l'espace.

Enfin, l'objectif du processus de gestion des logs consiste à rendre les logs disponibles pour le dépannage, l'analyse, la visualisation, les rapports et les alertes. Cela serait impossible sans une solution de gestion des logs efficace. Certains outils comprennent même cette fonctionnalité, mais l'utilisation de solutions d'observabilité et de monitoring des performances est également fréquente en combinaison avec la gestion des logs.

Bien démarrer avec la gestion des logs et essayer New Relic.

Le meilleur moyen d'en savoir plus sur la gestion des logs est d'en avoir une expérience pratique. Inscrivez-vous pour obtenir un compte New Relic gratuit. Avec ce compte vous obtiendrez 100 Go/mois d'ingestion des données, un utilisateur Full Platform et un nombre illimité d'utilisateurs Basic. Vous pourrez ensuite vous plonger dans la documentation sur la gestion des logs.