Presque tous les composants de votre environnement informatique (serveurs, applications, terminaux réseau, etc.) génèrent des logs. Ces logs contiennent des informations sur les événements internes ou externes, de simples informations d'état à des erreurs critiques. Les équipes informatiques utilisent ces logs pour déboguer le code, résoudre les pannes et les problèmes de performance, enquêter sur les compromissions de sécurité et même analyser le comportement des clients.

La plupart des entreprises utilisent des solutions de gestion des logs pour ingérer, stocker et analyser ces fichiers. Les logs proviennent d'une multitude de sources, de sorte qu'ils se présentent dans de nombreux types et formats différents.

L'analyse des logs consiste à convertir les données des logs en un format commun afin de les rendre lisibles par une machine. Peu importe que vous disposiez au départ de logs ingérés se présentant dans différents formats : une fois les logs analysés, vous pouvez utiliser le système de gestion des logs pour effectuer des recherches et analyser leurs événements comme s'il s'agissait d'une seule et même unité.

Dans cet article, nous examinerons plus en détail l'analyse des logs, son fonctionnement et les fonctionnalités les plus utiles. Nous vous présenterons également CrowdStrike Falcon LogScale, un système moderne de gestion des logs.

Qu'est-ce que l'analyse des logs ?

Un système de gestion des logs doit d'abord analyser les fichiers pour en extraire les informations utiles. Lors de cette opération, les logs structurés et non structurés sont convertis afin que le système de gestion des logs puisse lire, indexer et stocker leurs données. Il est ainsi possible de filtrer, d'analyser et de manipuler facilement les paires clé-valeur.

Les formats de logs les plus courants sont les suivants :

  • JSON
  • CSV
  • Log d'événements Windows
  • CEF (Common Event Format)
  • Format de log commun NCSA
  • ELF (Extended Log Format)
  • W3C

JSON est l'un des formats de données structurées les plus couramment utilisés. Il s'agit du format de prédilection de nombreux développeurs d'applications car son encodage Unicode le rend universellement accessible et lisible par les humains comme par les machines. L'extrait ci-dessous illustre un document JSON simple utilisant des paires clé-valeur :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{<!-- --><p>"userAccess": {<!-- --></p><p>"timestamp": "2022-01-31 17:55.50”,</p><p>"client_ip": "10.2.31.21",</p><p>"username": "bob",</p><p>"status": "Error",</p><p>"message": "File not found"</p><p>}</p><p>}</p>
{<!-- --><p>"userAccess": {<!-- --></p><p>"timestamp": "2022-01-31 17:55.50”,</p><p>"client_ip": "10.2.31.21",</p><p>"username": "bob",</p><p>"status": "Error",</p><p>"message": "File not found"</p><p>}</p><p>}</p>
Expand
{

"userAccess": {

"timestamp": "2022-01-31 17:55.50”,

"client_ip": "10.2.31.21",

"username": "bob",

"status": "Error",

"message": "File not found"

}

}

Étant donné le taux d'adhésion dont bénéficie le format JSON au sein de la communauté des développeurs, la plupart des solutions de gestion des logs offrent des options d'analyse JSON par défaut.

Comment fonctionne un analyseur de logs ?

En règle générale, les analyseurs de logs sont intégrés au moteur du logiciel de gestion des logs. Chaque gestionnaire de logs possède donc sa propre méthode d'analyse des logs.

La plupart des solutions de gestion des logs intègrent des analyseurs pour les types de données courants, tels que les logs d'événements Windows, JSON, CSV et W3C. Les analyseurs sont configurés pour reconnaître ces types de logs en fonction de la structure des données sources et des extensions de fichiers.

Une fois qu'un fichier log est ingéré, l'analyseur applique ses règles intégrées pour extraire des noms de champs utiles et les valeurs. Certains analyseurs peuvent même stocker les données extraites dans une structure hiérarchique, ce qui permet à l'utilisateur de lancer des recherches sur n'importe quel champ et d'examiner l'ensemble des résultats renvoyés pour affiner sa requête.

Pour les types de logs non standard, les utilisateurs peuvent définir des règles d'analyse personnalisées. Cette opération est généralement réalisée à l'aide d'expressions régulières ou du langage propriétaire de la solution de journalisation. Certaines solutions de gestion des logs rendent les choses encore plus faciles en permettant aux utilisateurs de créer la règle d'analyse à partir d'une interface graphique. Il leur suffit de mettre en évidence les noms des champs pertinents, et la solution de gestion des logs crée la règle d'analyse syntaxique en arrière-plan.

Une fois les logs analysés, le système de journalisation ingère les données afin que les utilisateurs puissent les interroger, les analyser et les visualiser.

Examinons les entrées de log non standard de l'extrait ci-dessous :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
2022-05-15T12:51:40+00:00 [WARN] "This is a warning" id=123 user=jbloggs<p>2022-05-15T12:52:42+00:00 [ERROR] "This is an error" id=124 user=unknown</p><p>...</p>
2022-05-15T12:51:40+00:00 [WARN] "This is a warning" id=123 user=jbloggs<p>2022-05-15T12:52:42+00:00 [ERROR] "This is an error" id=124 user=unknown</p><p>...</p>
Expand
2022-05-15T12:51:40+00:00 [WARN] "This is a warning" id=123 user=jbloggs

2022-05-15T12:52:42+00:00 [ERROR] "This is an error" id=124 user=unknown

...

Pour analyser ce log, nous pouvons utiliser l'expression régulière suivante pour extraire les champs « timestamp », « loglevel », « message », « id » et « user » des entrées :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
(?d{4}-d{2}-d{2}Td{2}:d{2})<p>[(?.+)]</p><p>s"(?.+)"s</p><p>id=(?d+)</p><p>user=(?w+)</p>
(?d{4}-d{2}-d{2}Td{2}:d{2})<p>[(?.+)]</p><p>s"(?.+)"s</p><p>id=(?d+)</p><p>user=(?w+)</p>
Expand
(?d{4}-d{2}-d{2}Td{2}:d{2})

[(?.+)]

s"(?.+)"s

id=(?d+)

user=(?w+)

Les solutions CrowdStrike permettent d'utiliser le langage CrowdStrike pour analyser le même fichier log afin d'en extraire l'horodatage :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/^(?S+)/ |<p>parseTimestamp("yyyy-MM-dd'T'HH:mm:ss[.SSS]XXX", field=ts)</p>
/^(?S+)/ |<p>parseTimestamp("yyyy-MM-dd'T'HH:mm:ss[.SSS]XXX", field=ts)</p>
Expand
/^(?S+)/ |

parseTimestamp("yyyy-MM-dd'T'HH:mm:ss[.SSS]XXX", field=ts)

Quelles sont les fonctionnalités d'analyse des logs à privilégier ?

À l'heure de choisir une solution de gestion des logs, il convient de prendre tout particulièrement en considération les fonctionnalités d'analyse des logs. Plus les logs seront ingérés et analysés rapidement et facilement, plus vous aurez de temps à consacrer à leur analyse.

Automatisation

Assurez-vous que l'outil choisi est doté d'analyseurs automatiques pour les formats de logs les plus courants. Pour les logs personnalisés, l'outil doit vous permettre d'effectuer des recherches en texte intégral sur les données brutes avant de créer des règles d'analyse personnalisées.

Personnalisation

Compte tenu du nombre de formats que peuvent prendre les logs, aucun système de gestion des logs n'est en mesure de tous les prendre en charge par défaut. C'est pourquoi la création d'une configuration d'analyse doit être simple et intuitive. Certains outils de journalisation mettent à disposition une interface graphique utilisateur pour la création de configurations d'analyse personnalisées. D'autres intègrent un éditeur chargé d'écrire des règles d'analyse personnalisées.

Visualisation

Une configuration incorrecte de l'analyse peut produire des valeurs de données erronées et donner lieu à une analyse imprécise. Avant d'enregistrer une règle d'analyse, une solution efficace de gestion des logs doit vous permettre de la tester en affichant un aperçu des paires clé-valeur d'un échantillon de données. Elle doit également offrir des aides visuelles pour la création et la mise à jour de la configuration de l'analyse, telles que le codage couleur et la mise en surbrillance des champs non conformes ou des erreurs.

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