Qu'est-ce qu'un log d'application ?

Arfan Sharif - mai 3, 2023

En général, les logiciels informatiques enregistrent des informations dans des logs d’application lorsqu’un événement se produit (par exemple, un transfert de données pour un serveur web, l’achèvement d’une sauvegarde pour une instance de base de données ou des demandes de connexion infructueuses pour un pare-feu).

Les équipes informatiques utilisent généralement les données des logs d’application pour enquêter sur les pannes, résoudre les bugs ou analyser les incidents de sécurité. L’analyse des logs d’application peut aider les équipes informatiques à identifier la cause première des incidents.

Face à la multiplication des systèmes de gestion des logs sur le marché, les entreprises utilisent les logs d’application pour d’autres choses que la résolution des problèmes, notamment pour enquêter sur les incidents de sécurité, suivre le comportement des clients, planifier la capacité des systèmes et auditer la conformité réglementaire.

Cet article explique ce qu’est un log d’application, quels sont les différents types de logs d’application et comment un outil centralisé de gestion des logs peut vous aider à extraire des informations exploitables de ces logs. Nous vous présenterons également Humio, une solution moderne de gestion des logs.

Qu’est-ce qu’un log d’application ?

Les applications logicielles génèrent des logs lorsqu’un événement se produit dans l’application (ou l’affecte). En général, les applications écrivent les informations de log pertinentes dans un fichier sur le serveur de l’application. Pour économiser de l’espace disque, certaines entreprises configurent les applications pour qu’elles envoient leurs logs à un partage réseau, à un serveur Syslog dédié ou à une application de journalisation par le biais d’un webhook. Les applications cloud peuvent quant à elles écrire leurs logs sur le service de journalisation du cloud.

Certains événements de log concernent les états internes de l’application. Par exemple :

  • Fuites de mémoire
  • Erreurs de chemin d’accès inexistant
  • Exceptions non gérées dans le code
  • Plantage du système

D’autres types d’événements concernent des facteurs externes reconnus par l’application. Par exemple :

  • Avertissements relatifs à l’espace disque
  • Redémarrages de serveur
  • Perte d’accès au réseau

Chaque application est différente. Les événements journalisés dépendent donc de la façon dont les développeurs ont configuré leur application pour enregistrer les événements. En général, les événements critiques comme les erreurs et les avertissements sont journalisés par défaut. Toutefois, il est également possible que vous rencontriez des événements liés à des opérations réussies, comme data transfer complete, backup successful ou shutting down gracefully.

Certains champs courants figurent dans la plupart des logs d’application :

  • Horodatage : date et heure de l’événement dans l’heure locale du serveur ou un autre fuseau horaire, par exemple UTC.
  • Niveau de journalisation : gravité de l’événement, par exemple DEBUG, INFO, WARNING ou CRITICAL.
  • Nom d’utilisateur : utilisateur réseau (ou connecté) responsable de l’événement. Pour certains événements liés au système, ce champ sera vide.
  • IP source : adresse IP du client (processus d’application ou utilisateur). Pour les événements locaux, ce champ peut être vide.
  • IP de destination : adresse IP du serveur local.
  • Message d’événement : description de l’événement, généralement sous forme d’un texte court.

Types de logs d’application

En fonction des événements journalisés, il peut exister différents types de logs d’application.

Logs d’accès, d’authentification et d’autorisation

Ces logs indiquent :

  • Qui s’est connecté (et s’est déconnecté)
  • Si l’opération a réussi
  • Qui a accédé aux ressources d’application (fichiers, tables de base de données, etc.)
  • Qui a demandé des données
  • Comment cet utilisateur s’est déplacé sur le réseau

Ces logs sont utiles pour retracer les actions d’un utilisateur sur le réseau. Vous pouvez vous en servir pour résoudre les problèmes d’accès, enquêter sur les incidents de sécurité ou même analyser le comportement des utilisateurs.

L’extrait ci-dessous est tiré d’un log d’accès Apache :

127.0.0.1 - jbloggs [12/Oct/2021:13:55:36 -0700] "GET /server-status HTTP/1.1" 404 2457

Ici, l’événement journalisé indique que l’utilisateur jbloggs a accédé au serveur web local le 12 octobre 2021 à 13h55, heure locale du serveur. L’utilisateur a accédé à la page server-status sous la racine du serveur web, mais le serveur web a renvoyé l’erreur 404 (Page introuvable). La taille des données transférées était de 2 457 octets.

Logs des modifications

Les logs des modifications répertorient les modifications apportées à l’application, par exemple :

  • Ajout de nouveaux utilisateurs
  • Modification des autorisations
  • Mise sur liste blanche d’adresses IP
  • Modification des paramètres de configuration
  • Mise à niveau des versions logicielles

Lorsqu’un composant d’une application cesse de fonctionner, l’une des causes premières potentielles peut être une modification récente de la configuration. Les logs des modifications permettent d’identifier les modifications apportées, ainsi que de déterminer quand elles l’ont été et par qui. Ces informations peuvent vous aider à résoudre le problème rapidement.

L’équipe SecOps peut également s’appuyer sur les logs des modifications pour détecter les incidents de sécurité. Par exemple, elle peut configurer des alertes lors de la création d’utilisateurs à privilèges ou de l’enregistrement d’une nouvelle bibliothèque de logiciels.

L’événement ci-dessous indique que l’administrateur Active Directory a créé un utilisateur.

A user account was created.
Subject:
   Security ID:  DOMAIN-FR\administrator
   Account Name:  administrator
   Account Domain:  DOMAIN-FR
   Logon ID:  0x20f9d
New Account:
   Security ID:  DOMAIN-FR\John.Bloggs
   Account Name:  John.Bloggs
   Account Domain:  DOMAIN-FR

Logs d’erreurs

Les logs d’erreurs fournissent plus de détails sur les problèmes qui sont survenus dans l’application. Certaines erreurs n’entraînent pas de dégradation des performances. Toutefois, si elles ne sont pas résolues, elles peuvent provoquer une panne. La surveillance des logs d’erreurs permet d’identifier les problèmes avant qu’ils ne deviennent des incidents, réduisant ainsi le délai moyen de reprise (MTTR, Mean Time to Recovery). L’analyse historique peut mettre en évidence des schémas de performances ou de comportement des utilisateurs conduisant aux conditions d’erreur.

Par exemple, si les utilisateurs reçoivent constamment des erreurs de délai d’attente, cela peut indiquer des latences réseau, des problèmes de capacité ou une mauvaise configuration des seuils de délai d’attente. Les erreurs provenant de bibliothèques d’applications peuvent être le signe d’un problème d’incompatibilité après une mise à niveau ou d’une version de bibliothèque non prise en charge.

Lorsque les logs d’erreurs révèlent des exceptions non gérées au sein de l’application, ces informations peuvent aider les développeurs à améliorer le système à l’aide d’un correctif.

Des erreurs d’application peuvent se produire pour de nombreuses raisons. C’est pourquoi les événements du log d’erreurs peuvent varier considérablement. Voici des exemples d’erreurs fréquemment journalisées :

  • Avertissements relatifs à l’espace disque
  • Expiration imminente de licences
  • Plantages d’applications
  • Épuisement de la mémoire
  • Vidages de mémoire
  • Etc.

L’extrait de code ci-dessous montre un événement d’erreur de ce type, qui a été généré en raison d’un espace disque insuffisant.

"EventTime": "2022-06-22T13:48:55.445645-08:00",
 "Hostname": "WIN-26101992",
 "Message": "There is not enough disk space available to complete this operation",
 "Severity": "CRITICAL"

Logs de disponibilité

Les logs de disponibilité fournissent des informations sur la disponibilité de votre application. En voici quelques exemples :

  • Logs de cluster indiquant les basculements ou l’ajout/la suppression de nœuds
  • Logs système indiquant les sauvegardes de données réussies
  • Logs du système d’exploitation indiquant les arrêts et les redémarrages
  • Logs de réplication indiquant les latences

Les logs de disponibilité sont utiles pour créer des rapports sur les SLA. Vous pouvez calculer la disponibilité de l’application, enquêter sur les éventuels arrêts ou basculements non planifiés, ou vérifier le comportement attendu pendant les périodes de maintenance. L’extrait ci-dessous montre un exemple d’entrée d’un log de disponibilité :

"EventTime": "2022-06-22T13:48:55.445645-08:00",
 "Hostname": "WIN-12101992",
 "Uptime": "72000",
 "LastReboot": "2022-06-21T17:48:55.487655-08:00"
 "Severity": "INFO"

Avantages de l’utilisation de solutions de gestion des logs

L’analyse des logs d’application directement sur le système hôte peut être un véritable casse-tête. Les logs d’application sont souvent détaillés, complexes et difficiles à mettre en corrélation. Qui plus est, certains logs sont mis à jour en continu, ce qui complique le suivi de l’ensemble des messages. Enfin, les applications distribuées comportent de nombreux éléments mobiles, qui disposent tous de leur propre log. Dès lors, la mise en corrélation de tous les logs pour un événement spécifique revient souvent à chercher une aiguille dans une botte de foin.

C’est là que les solutions de gestion des logs prennent tout leur sens. Une solution de gestion des logs ingère les logs d’application de tous vos systèmes, les analyse, les indexe, puis vous permet d’effectuer des recherches parmi les données. Cette approche offre plusieurs avantages.

Résolution plus rapide des problèmes

Les solutions de gestion des logs simplifient et accélèrent la résolution des incidents, car tous les logs sont accessibles via une interface intuitive. Les opérateurs n’ont pas besoin de se connecter à chaque serveur ni d’utiliser des commandes comme tail et grep pour filtrer les résultats.

Accès aux informations pertinentes

Vous pouvez utiliser des configurations d’analyse de logs personnalisées pour extraire uniquement les données pertinentes des logs d’application. Cela limite les données renvoyées dans les requêtes et simplifie les tableaux de bord et les diagrammes.

Analyse historique

Les solutions de gestion des logs vous permettent de conserver davantage de données plus longtemps que sur un serveur unique ou un partage réseau. Par conséquent, vous pouvez effectuer une analyse historique plus performante des données d’application. Ces analyses sont très utiles pour créer des rapports de tendances.

Mise en corrélation des logs

Les solutions de gestion des logs intègrent des analyseurs qui reconnaissent les types de logs les plus courants. Cela facilite l’ingestion de logs provenant de différentes applications ainsi que leur mise en corrélation à l’aide de champs courants tels que le nom d’utilisateur ou l’adresse IP. La mise en corrélation d’événements sans lien apparent peut fournir un contexte nécessaire.

Visualisation

Les tableaux de bord qui comprennent des graphiques, des diagrammes ou des cartes facilitent l’identification des tendances, des anomalies ou des pics de trafic dans les applications.

Alertes

Les solutions de gestion des logs vous permettent de configurer des alertes en fonction de critères prédéfinis, tels que des seuils de valeur pour un champ spécifique. Les alertes sont déclenchées lorsque les événements journalisés indiquent que la valeur du champ a dépassé le seuil, ce qui permet de prévenir les équipes concernées.

Par exemple, vous pouvez configurer des alertes pour les erreurs fatales ou critiques, les activités de connexion suspectes ou l’utilisation intensive du processeur. Certaines solutions de journalisation peuvent déclencher automatiquement une action, comme la création d’un ticket de service ou l’application de mesures de correction automatisées à partir d’un playbook.

Journalisez toutes vos données et répondez à toutes les questions – gratuitement

Falcon LogScale Community Edition (anciennement Humio) offre une plateforme moderne et gratuite de gestion des logs pour le cloud. Exploitez l’ingestion des données de streaming pour bénéficier d’une visibilité instantanée sur les systèmes distribués, de même que détecter et résoudre les incidents.

Falcon LogScale Community Edition, disponible instantanément et gratuitement, inclut les fonctionnalités suivantes :

  • Ingestion de jusqu’à 16 Go de données par jour
  • Durée de rétention de 7 jours
  • Aucune carte de crédit n’est requise
  • Accès continu sans période d’essai
  • Journalisation sans index, alertes en temps réel et tableaux de bord en direct
  • Accès à notre place de marché et à nos packages, y compris aux guides de création de nouveaux packages
  • Formation et collaboration avec une communauté active

Démarrer gratuitement

À PROPOS DE L'AUTEUR

Arfan Sharif est responsable du marketing produits pour le portefeuille d’observabilité chez CrowdStrike. Il possède plus de 15 ans d’expérience dans les solutions de gestion des logs, ITOps, d’observabilité, de sécurité et d’expérience client pour des entreprises telles que Splunk, Genesys et Quest. Arfan est titulaire d’un diplôme en informatique de la Buckinghamshire New University, et a travaillé aussi bien dans le marketing produits que dans l’ingénierie commerciale.