Définition
L'agrégation des logs désigne le mécanisme de capture, de normalisation et de consolidation de logs provenant de différentes sources au sein d'une plateforme centralisée en vue de la corrélation et de l'analyse des données. Les données agrégées servent ensuite de source unique d'informations fiables pour différents cas d'usage, notamment pour la résolution de problèmes de performance des applications ou d'erreurs, l'identification des goulots d'étranglement au niveau de l'infrastructure ou la détermination de la cause sous-jacente d'une cyberattaque.
Cet article aborde l'importance de l'agrégation des logs, les différentes étapes du processus et les types de logs qu'il est conseillé de collecter. Nous examinerons également les fonctionnalités que toute plateforme d'agrégation et de gestion des logs digne de ce nom doit intégrer.
En quoi l'agrégation des logs est-elle importante ?
L'agrégation des logs vous permet de regrouper les événements provenant de différentes sources au sein d'un emplacement unique afin de pouvoir rechercher, analyser et exploiter les données associées. Elle est non seulement essentielle pour l'observabilité de bout en bout, mais est également utile pour toute une série d'activités, notamment :
- Analyse et surveillance en temps réel : les solutions de gestion des événements et des informations de sécurité (SIEM) s'appuient sur les logs pour identifier les failles de sécurité, les schémas d'attaque et les tendances.
- Surveillance des applications : les solutions de gestion des performances des applications (APM, Application Performance Management) utilisent les logs pour détecter rapidement les problèmes de fonctionnement ou de performance d'une application, limitant ainsi le délai moyen de résolution et améliorant la disponibilité de l'application.
- Planification des capacités : les logs système indiquent souvent la saturation des ressources et les goulots d'étranglement liés à l'infrastructure qui en résultent. Ils facilitent l'atténuation rapide de ces problèmes et permettent aux équipes en charge des opérations d'évaluer l'utilisation actuelle des capacités de l'infrastructure et de prévoir leur utilisation future.
- AIOps : certains systèmes modernes de gestion des logs s'appuient sur des technologies d'intelligence artificielle (IA) et des algorithmes de Machine Learning (ML) pour mettre en corrélation les événements, détecter les anomalies et analyser les tendances.
- Audit et conformité : les logs présentent également un certain intérêt à des fins d'audit, notamment pour la vérification des enregistrements des accès à la base de données, des connexions au serveur et des requêtes d'API ayant abouti/échoué. Ces enregistrements sont souvent nécessaires pour assurer le respect des cadres réglementaires tels que la norme PCI DSS ou la loi HIPAA.
- Atténuation des menaces de sécurité : l'analyse des logs facilite souvent l'identification des menaces de sécurité telles que les attaques DDoS et les attaques par force brute. Les logs de flux du réseau et les logs du pare-feu peuvent également être utilisés pour bloquer le trafic non approuvé.
- Visualisation des données : les logs agrégés peuvent être utilisés pour créer des tableaux de bord à des fins de visualisation des données.
- Analyse et visualisation avancées : l'agrégation des logs permet également de tirer parti des opérations d'analyse avancée comme l'extraction de données, les recherches en texte libre et les requêtes RegEx complexes à des fins d'analyse approfondie, ainsi que pour la création de tableaux de bord. Cela peut s'avérer utile pour les NOC (Network Operations Center) et les SOC (Security Operations Center).
En quoi consiste précisément l'agrégation des logs ?
Le processus d'agrégation et d'analyse des logs provenant de différentes sources comporte plusieurs étapes.
Identification des sources des logs
Les applications distribuées des entreprises modernes intègrent de nombreux éléments mobiles. Vous devez donc identifier tous les composants dont vous souhaitez agréger les logs. Pour faciliter la gestion des logs, vous pouvez choisir de capturer uniquement certains types d'événements (tentatives de connexion ayant échoué ou requêtes dont le délai d'exécution est supérieur à un seuil prédéfini, par exemple) ou certains niveaux d'importance.
Par exemple, vous pouvez décider de collecter toutes les tentatives de connexion ayant échoué depuis le système de détection des intrusions réseau (NIDS) et uniquement les messages d'erreur critiques concernant le plantage des pods de votre cluster Kubernetes.
Collecte des logs
Une fois les sources des logs identifiées, l'étape suivante consiste à collecter ces logs. Idéalement, cette collecte doit être automatique. Elle peut être effectuée de différentes manières :
- Les applications peuvent utiliser des protocoles standard de journalisation des messages, tels que Syslog, pour transférer leurs logs en continu vers un système centralisé.
- Vous pouvez installer des intégrations et des collecteurs personnalisés (également appelés « agents ») sur les serveurs afin qu'ils lisent les logs à partir de la machine locale et les envoient à la plateforme de journalisation.
- L'instrumentation du code capture les messages provenant de parties spécifiques du programme, un processus qui dépend souvent des conditions d'erreur spécifiques rencontrées.
- Les systèmes de gestion des logs peuvent accéder directement aux systèmes source et copier les logs sur le réseau.
Analyse des logs
Les logs doivent être analysés avant que des informations pertinentes puissent en être extraites. Ce processus d'analyse consiste à extraire des informations clés de chaque événement journalisé et à les convertir en un format commun. Les informations sont ensuite stockées à des fins d'examen ultérieur. Les logs peuvent être relativement volumineux et contenir une multitude de données inutiles. L'analyse a pour but d'extraire les seules données pertinentes, en ignorant les autres.
L'analyse peut, par exemple, mapper les horodatages initiaux en fonction des valeurs d'un fuseau horaire donné. Les horodatages sont des métadonnées critiques liées à un événement, et vos logs peuvent en contenir plusieurs, selon les sources des logs.
Un analyseur peut extraire du log d'autres informations importantes, comme les noms d'utilisateur, les adresses IP source et de destination, le protocole réseau utilisé et le message réel. Il peut également filtrer les données afin de ne conserver que les événements de type ERREUR ou AVERTISSEMENT, en excluant tous les événements de niveau de gravité inférieur.
Traitement des logs
Au terme de l'analyse, l'agrégation des logs peut effectuer différentes actions dans le cadre du traitement des données.
L'indexation consiste à établir une carte des données analysées et stockées sous la forme d'une colonne, un peu comme un index de base de données. Elle a pour but de simplifier et d'accélérer l'interrogation des logs. Les index uniques présentent également l'avantage de supprimer les données en double.
L'enrichissement des données peut également se révéler très utile pour tirer d'autres renseignements des logs. Il peut prendre différentes formes, par exemple :
- Ajout d'une géolocalisation aux données du log à partir des adresses IP
- Remplacement des codes de statut HTTP par les messages réels
- Ajout de détails relatifs au système d'exploitation et au navigateur web
Le masquage consiste à retirer des messages journalisés des données sensibles telles que des clés de chiffrement, des données personnelles ou des jetons d'authentification et des identifiants.
Stockage des logs
La plupart des plateformes de gestion des logs compressent les logs analysés, indexés et enrichis avant de le stocker. Ce processus permet de réduire l'utilisation de la bande passante du réseau et les coûts de stockage des logs. En règle générale, la compression repose sur un format propriétaire.
Dans le cadre de l'agrégation des logs, vous devez également définir des règles de rétention, qui détermineront la durée de stockage des logs. Cette durée peut dépendre de différents facteurs, comme l'espace de stockage disponible, les exigences du secteur ou les règles propres à l'entreprise. En outre, les exigences en matière de rétention peuvent varier en fonction du type de log. Au terme de la durée déterminée, les anciens logs peuvent être définitivement supprimés ou être archivés dans un espace de stockage moins coûteux et à plus grande latence. La suppression et l'archivage des logs contribuent à améliorer l'efficacité des requêtes en réduisant la taille des données critiques, et sont également utiles pour les audits.
Quels types de logs agréger ?
Les types de logs qu'il convient d'agréger varient en fonction de vos cas d'usage, et sont déterminés lors de la phase d'identification des logs abordée ci-dessus. Voici une liste non exhaustive des logs qu'il est recommandé de capturer :
- Logs système générés par Syslog, journalctl ou Event Log
- Logs du serveur web
- Logs de middleware
- Logs des applications, y compris ceux des microservices
- Logs des flux du réseau
- Logs du pare-feu, de la solution antivirus et du système de détection des intrusions
- Logs de la base de données
- Logs de la passerelle d'API
- Logs des répartiteurs de charge
- Logs du service DNS
- Logs du service d'authentification
- Logs du serveur proxy
- Logs des modifications de la configuration
- Logs des sauvegardes et des restaurations
En fonction de vos besoins, vous pouvez exclure certains logs, comme ceux qui concernent les contrôles d'intégrité et les connexions ayant abouti. Vous pouvez également ignorer la plupart des logs provenant de composants tels que les bastions ou les serveurs FTP de la zone démilitarisée. Cela étant dit, il peut être judicieux de capturer les logs d'authentification provenant de ces systèmes également.
Fonctionnalités d'une plateforme d'agrégation des logs
Le marché actuel regorge de plateformes d'agrégation des logs. Au moment de choisir, assurez-vous que la plateforme intègre les fonctionnalités suivantes.
Collecte efficace des données
La plateforme d'agrégation des logs doit collecter les logs provenant de différentes sources, comme les serveurs d'applications, les bases de données, les endpoints d'API ou les serveurs web. Cette collecte peut être native à la plateforme ou exécutée via des plug-ins gérés de manière active. En outre, la plateforme doit prendre en charge les principaux formats de log, tels que les fichiers .txt, .csv, .json et .xml.
Capacités robustes de traitement
La plateforme doit pouvoir évaluer, indexer, compresser, stocker et analyser de manière efficace les données à l'échelle de l'entreprise. Elle doit également offrir un langage de requête simple et riche pour la recherche, le tri, le filtrage et l'analyse des logs, de même que permettre la création de tableaux de bord et de rapports.
Surveillance en temps réel
Les délais d'ingestion, d'analyse, d'indexation, de compression et de stockage des logs doivent être courts. Les utilisateurs doivent être en mesure d'examiner les logs en temps réel, à mesure qu'ils sont ingérés et traités.
Évolutivité
La plateforme doit pouvoir faire face à des flux soudains de données de log et empêcher toute perte de données pendant la transmission. Par ailleurs, l'augmentation progressive du volume de données ne doit pas impacter les performances de recherche et d'interrogation.
Sécurité
Les données de log stockées doivent être chiffrées lorsqu'elles sont au repos et en transit. Dans certains secteurs, il s'agit souvent d'un impératif. La plateforme doit également intégrer des mécanismes de contrôle des accès basés sur les rôles afin de surveiller l'accès des utilisateurs aux données.
Génération d'alertes et intégration
La plateforme d'agrégation des logs doit permettre aux opérateurs de créer des alertes basées sur des critères spécifiques associés aux événements journalisés. Elle doit ensuite pouvoir envoyer ces alertes à une multitude de systèmes de communication. L'intégration avec des plateformes et des outils tiers est également une fonctionnalité très pratique, qui permet notamment aux solutions de journalisation de créer automatiquement des tickets de service.
Rentabilité
Enfin, la plateforme d'agrégation des logs doit présenter un coût total de possession réduit et un retour sur investissement élevé.
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