Qu'est-ce que la Centralized Logging ?

Arfan Sharif - mai 17, 2023

La journalisation centralisée est le processus de collecte et de centralisation des logs provenant des réseaux, de l’infrastructure et des applications à des fins de stockage et d’analyse. Elle offre aux administrateurs une vue consolidée de l’ensemble de l’activité du réseau, facilitant ainsi l’identification et la résolution des problèmes.

Cet article présente les avantages d’une architecture de journalisation centralisée, son fonctionnement et le processus de mise en place d’un tel flux de travail.

À quoi servent les logs ?

Les logs constituent une piste d’audit des activités, des événements ou des modifications survenant au sein d’un système informatique. Ils contribuent à résoudre les problèmes de fonctionnalité ou de performances du système, ainsi que les incidents de sécurité. Les logs système sont utilisés pour déterminer à quel moment des modifications ont été apportées et par qui. Par ailleurs, les logs sont souvent nécessaires pour répondre aux exigences réglementaires.

Systèmes de journalisation à service unique d’ancienne génération

Les systèmes de journalisation d’ancienne génération se concentraient exclusivement sur les machines individuelles sur lesquelles ils étaient installés. Une telle approche était considérée comme suffisante à une époque où des serveurs autonomes individuels proposaient des services complets. En revanche, à l’ère des microservices multiniveaux et de l’interconnectivité des réseaux, examiner une seule source de données ne permet pas d’obtenir la visibilité complète nécessaire.

Par exemple, si votre base de données affiche une certaine lenteur, l’analyse de ses logs de requête générés au ralenti n’est peut-être pas la seule solution. La plupart des systèmes fonctionnent sur plusieurs niveaux, à savoir les niveaux frontal et intermédiaire, auxquels s’ajoutent les bases de données. Il vous faudra donc peut-être examiner les logs générés par le serveur sous-jacent et le sous-système de stockage, ainsi que les performances de résolution des noms et le réseau.

L’importance de collecter les logs des composants distribués

Le seul moyen de comprendre ce qui se passe réellement au sein d’un système distribué est de collecter en temps réel tous les événements journalisés sur le réseau. Cela inclut les logs générés par les composants suivants :

  • Infrastructure de serveur
  • Stockage
  • BASE DE DONNÉES
  • Passerelles d’API
  • Répartiteurs de charge
  • Pare-feux
  • Etc.

Lors de la résolution d’un problème, il est souvent nécessaire de mettre en corrélation les événements provenant de plusieurs sources de logs. D’où la nécessité de capturer les logs de chaque composant contribuant au fonctionnement des applications.

Se connecter chaque jour manuellement pour accéder aux divers composants de l’infrastructure, qui peuvent se compter par dizaines, afin de consulter des centaines (voire des milliers) de lignes de logs est tellement fastidieux que cela relève de l’impossible. Avec une telle approche chronophage, vous êtes quasiment assuré de passer à un moment ou l’autre à côté d’événements importants. Pourtant, vous ne pouvez pas vous permettre d’ignorer ces logs.

Par conséquent, la seule approche viable consiste à mettre en place une solution centralisée, capable de se connecter automatiquement à l’ensemble de vos systèmes et de collecter les logs en temps réel, puis de les présenter dans une interface conviviale et claire. Penchons-nous à présent sur quelques-uns des avantages de la journalisation centralisée.

Avantages de la journalisation centralisée

Gestion de multiples formats de log

Les systèmes multiniveaux peuvent générer des logs dans différents formats. Par exemple, les systèmes Linux utilisent les formats rsyslog ou journald, tandis que Windows s’appuie sur des journaux d’événements. Par ailleurs, d’autres systèmes tels que les bases de données, les pare-feux et les systèmes SAN disposent de leurs propres formats propriétaires.

Stockage central efficace

Il n’est pas rare de voir les systèmes accumuler des téraoctets de logs. Cela peut rapidement saturer les périphériques de stockage, menacer l’intégrité du système et faire peser une charge considérable sur les performances des applications.

Toute solution moderne de gestion doit être capable de filtrer l’ensemble des logs ingérés à l’aide d’algorithmes de compression, de façon à établir l’efficacité des capacités de stockage et de conservation. Tous les logs ingérés sont stockés dans un emplacement central, ce qui permet à vos serveurs d’en effectuer la rotation et d’ainsi économiser l’espace de stockage local. Les systèmes de journalisation centralisée stockent généralement les logs dans un format propriétaire et compressé, tout en vous permettant de configurer leur durée de conservation.

Accélération des recherches au sein de l’ensemble des logs

Les systèmes de journalisation centralisée vous permettent également de rechercher des renseignements spécifiques parmi des milliers de lignes d’événements, ou d’extraire des informations et de les résumer rapidement et efficacement. Grâce aux délais de latence réduits, les clients peuvent lancer des requêtes et obtenir des résultats en moins d’une seconde.

Mise en corrélation des événements

De même, les systèmes modernes de journalisation centralisée sont capables d’optimiser et d’enrichir les événements enregistrés au moyen d’informations supplémentaires. Ils s’appuient sur l’intelligence artificielle pour mettre en corrélation des éléments d’information en apparence disparates. La mise en corrélation d’événements consiste à relier deux événements connexes ou plus de façon à identifier les éventuels problèmes et leurs causes sous-jacentes. Ces plateformes présentent les tendances et les anomalies dans des tableaux de bord et des graphiques, qui peuvent être configurés pour vous alerter lorsque des tendances, des anomalies et des corrélations d’événements significatives sont identifiées.

Les rapports et les tableaux de bord des systèmes de journalisation centralisée peuvent également servir à des fins secondaires, notamment pour la budgétisation, la planification des capacités et l’étalonnage des performances.

Analyse de la sécurité

Une gestion centralisée et sophistiquée des logs est également essentielle pour assurer l’efficacité des contrôles de cybersécurité réalisés à l’aide des solutions de gestion des événements et des informations de sécurité (SIEM) et d’orchestration de la sécurité, d’automatisation et de réponse à incident (SOAR), qui présentent également l’avantage de réduire les coûts. Associées à une gestion moderne des logs, ces solutions permettent d’obtenir des délais de conservation et de stockage plus long à moindre coût.

Comment fonctionne la journalisation centralisée ?

Qu’il soit distribué ou centralisé, le processus de journalisation s’articule autour de quatre étapes :

  1. Collecte
  2. Traitement
  3. Indexation
  4. Visualisation

Penchons-nous sur chacune d’elles.

Collecte

La première étape de la journalisation consiste à collecter tous les logs et à les regrouper dans un emplacement sûr, de façon à pouvoir y accéder et les analyser en cas de besoin.

Cette étape nécessite l’intégration des systèmes sources à l’application de journalisation. Cette intégration peut être réalisée via un agent qui s’exécute sur le serveur source. Cet agent lit les logs serveur et les envoie à la plateforme de journalisation centralisée sur un port spécifique.

L’intégration peut également être réalisée au moyen de méthodes natives. Par exemple, le daemon Syslog d’un serveur peut être configuré pour envoyer les données de log directement au serveur de journalisation. Dans le cas de services hébergés dans le cloud, l’intégration peut impliquer la connexion à l’environnement de journalisation du service cloud (par ex., AWS CloudWatch ou Azure Monitor) et la lecture des événements.

Traitement

Cette deuxième étape convertit toutes les données brutes collectées en un format plus facilement exploitable. Cette conversion peut comprendre l’analyse des événements journalisés et l’extraction de champs spécifiques tels que la date et l’heure, l’adresse IP source, le nom de l’utilisateur, le nom de l’application et le message de l’événement.

Le traitement peut aussi inclure des étapes d’enrichissement des informations journalisées. Par exemple, un log contenant des adresses IP peut être enrichi par la recherche de leur géolocalisation et l’ajout de cette information au flux d’événements. De même, les horodatages de logs disparates peuvent être convertis en un même fuseau horaire.

Le traitement peut également impliquer le filtrage des enregistrements inutiles et la compression des autres données.

Indexation

L’étape d’indexation est un processus interne au cours duquel la plateforme de journalisation indexe tous les événements journalisés, une fois leur traitement terminé. Cela revient à créer un index de base de données ou en texte intégral. Cet index peut ensuite être utilisé pour optimiser la vitesse de recherche dans les logs.

Une fois leur indexation terminée, les événements du log sont prêts pour la recherche et le filtrage.

Visualisation

Au cours de cette étape, le système de journalisation centralisée met à jour et actualise tous les graphiques et tableaux de bord intégrés et personnalisés, afin d’offrir une vue d’ensemble à jour du système.

Bien que les quatre étapes présentées ci-dessus soient distinctes, elles peuvent se dérouler simultanément et en temps réel. Cela signifie que pendant que vous consultez un graphique de tendance créé à partir d’événements ingérés une minute plus tôt, le système peut très bien collecter, traiter et indexer de nouvelles données entrantes, afin de mettre à jour le graphique visualisé de façon dynamique.

En savoir plus

Reportez-vous à la partie 3 de notre série de guides sur la journalisation Kubernetes pour découvrir comment fonctionne la journalisation centralisée au sein d’un cluster Kubernetes. Lire le guide Centralizing Kubernetes Log

Bonnes pratiques en matière de journalisation centralisée

Bien qu’il s’agisse d’une thématique à part entière, voici quelques bonnes pratiques à adopter lors du déploiement d’un système de journalisation centralisée au sein de votre entreprise.

Impliquez vos équipes

Dans un premier temps, il convient d’impliquer les équipes et les personnes qui utiliseront la plateforme, telles que les développeurs, les équipes DevOps et SecOps, etc.

Déterminez les informations à collecter

Vous devez déterminer quels logs sont les plus pertinents dans le cadre de votre surveillance et quels événements vous souhaitez capturer. Par exemple, dans vos logs de pare-feux, il est possible que seuls les refus de connexion vous intéressent. Par ailleurs, tenez compte des éléments suivants :

  • Pendant combien de temps souhaitez-vous conserver vos logs ?
  • Quel fuseau horaire commun utiliserez-vous pour standardiser les horodatages ?
  • Quels sont les champs communs d’information dont vous souhaitez pouvoir disposer ?

Clarifiez vos besoins en matière d’informations

Décidez ensuite quels types d’informations vous souhaitez tirer des logs. S’agit-il des anomalies en temps réel ou des tendances historiques ? Ou souhaitez-vous utiliser vos logs uniquement pour des alertes liées aux événements de sécurité ?

Assurez-vous que des intégrations existent pour tous vos systèmes sources

Il existe de nombreuses solutions de gestion des logs sur le marché. Certaines sont mieux adaptées à un hébergement sur site, tandis que d’autres sont plutôt de type SaaS. Ces deux configurations présentent leurs avantages et leurs inconvénients. Bien que la plateforme elle-même soit un élément à prendre en considération, la solution choisie doit également disposer d’intégrations (natives ou disponibles via des plug-ins communautaires) pour tous les systèmes sources que vous souhaitez surveiller.

Gardez à l’esprit les exigences de conformité

Dans le cas de solutions SaaS, vérifiez s’il existe des restrictions réglementaires. Certaines réglementations interdisent le stockage des logs dans des datacenters situés à l’étranger. De même, certaines normes sectorielles exigent que les informations sensibles contenues dans les logs soient masquées ou chiffrées.

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.