PaaS Logs : la solution de gestion industrielle des logs par OVH est en bêta

Les entreprises du secteur industriel ainsi que les startups sont à la croisée des chemins : alors que la demande soutenue d’infrastructures et de services faisant massivement appel au cloud ne cesse d’augmenter (IDC estime que le marché devrait atteindre 113 milliards de dollars d’ici à 2019), les besoins en matière de gestion des logs évoluent et s’industrialisent eux aussi.

Chez OVH, ces besoins se sont très vites manifestés et pour cause : avec plus de 250 000 serveurs physiques répartis sur 2 continents, plus de 1 000 000 clients à travers le monde et une infrastructure réseau couvrant l’ensemble des points de présence majeurs de la planète, la capacité à pouvoir suivre, stocker et analyser les informations pertinentes sur l’état et les performances de l’infrastructure est rapidement apparue comme un enjeu majeur.

Ainsi est né le projet Thot* : une solution intégrée, évolutive et massivement distribuée de récupération, traitement et visualisation des données issues des fichiers de logs de machines, de services ou de produits. A l’origine de ce projet, une équipe spécialement dédiée à son développement a été mise en place en mars 2015. Entretien avec Pierre De Paepe, responsable technique du projet Thot et du projet PaaS Logs chez OVH.

Qu’est ce qu’un log ?

Un log est, pour reprendre la définition la plus communément admise, la représentation informatique d’un événement. Il doit être lisible par un être humain mais également suffisamment optimisé pour être décrypté par une machine. Un log peut être créé par diverses entités : qu’il s’agisse de la fluctuation du taux d'utilisation d'un processeur, d'un moteur d’avion de ligne pour vérifier les taux d’usures de certaines pièces à l’importance critique ou encore mesurer le taux de clic sur la page d'un produit en promotion... S’il existe un événement, il y a potentiellement un log de ce dernier quelque part.

Chez OVH, ce qu'on appelle "log" pour "événement informatique" est un événement informatique où seules les données techniques en rapport avec nos besoins opérationnels sont enregistrées.

A noter

Les logs traités par la solution Thot ne concernent que la partie technique de notre infrastructure : bande passante, état de santé des disques durs, température CPU etc... En aucun cas des logs liés à la conservation des données conformément à la réglementation française.

Quels sont les enjeux de la gestion à grande échelle de ces logs au sein d’une infrastructure comme OVH ?

La gestion des logs est effectivement une question d’échelle. Toutes les sociétés n’ont pas forcément ce besoin : être en mesure de procéder à l’extraction des fichiers de logs de 10 machines dans une agence de communication à taille humaine n'est pas quelque chose de techniquement complexe. Le stockage peut se faire sur un seul disque dur et un humain peut facilement analyser la masse de logs, ce qui n'est pas le cas lorsque ce sont plusieurs centaines de milliers de machines physiques sur lesquelles tournent un nombre fluctuant de machines virtuelles dont il faut surveiller l'état de santé. Et puis, à cette échelle, l’analyse de logs nous permet d’identifier rapidement un dysfonctionnement avant qu’il ne se propage, anticiper les pannes suite à des remontées qui correspondraient à un schéma prévisible car déjà rencontré ou encore centraliser le reporting de machines géographiquement éloignées du site de gestion des logs, les possibilités sont nombreuses.

Aviez-vous un cahier des charges avant de développer la solution ?

Lorsque nous nous sommes penchés sur la question des logs et de leur traitement en interne, notamment au sein de départements qui en généraient des quantités extrêmement élevées, nous nous sommes aperçus que nos collègues devaient réaliser manuellement des opérations de requête et qu’il n’existait aucun moyen d’automatiser certaines tâches sur une échelle de grandeur dépassant le milliard de fichiers par jours. Naturellement, nous avons fait le tour des solutions commerciales disponibles et le constat fut sans appel : non seulement les offres proposées étaient coûteuses à mettre en place, mais elles étaient aussi fermées : impossible dès lors, d’envisager d’adapter la solution à nos usages spécifiques.

L’impératif de sécurité était également une des raisons majeures qui nous a convaincus que le développement interne de notre plateforme était la marche à suivre, savoir que plusieurs centaines de milliers de logs par secondes d'état de santé de nos machines transitent chaque jour derrière nos pare-feux et dispositifs Anti-DDoS a indéniablement contribué à la sérénité de l’équipe : nous compartimentons et analysons les données qui sont pertinentes au maintien de l'infrastructure.

"Nous nous sommes aperçus que nos collègues devaient réaliser manuellement des opérations de requête et qu’il n’existait aucun moyen d’automatiser certaines tâches sur une échelle de grandeur dépassant le milliard de fichiers par jours."

De quoi est composée la solution Thot ?

Pour schématiser, nous avions besoin de trois éléments principaux que nous appellerons le « socle » : un dispositif de récupération des logs (INPUT), un dispositif de tri et de classification de ces logs et, enfin, un dispositif de visualisation et de reporting des données extraites de ces derniers (OUTPUT).

Pour rentrer dans le détail, certains départements font appel à Syslog-ng pour la partie récupération des logs, des containers Docker font tourner les services qui permettent la validation des logs en provenance de Syslog-ng ainsi que leur mise au bon format (le cas échéant), leur enrichissement et leur classification. Ces services sont également les garants de la mise à l’échelle de l’infrastructure ainsi que de sa haute disponibilité, pérennisant ainsi l’évolution de nos besoins sur le long terme. Enfin, Graylog est utilisé afin de réaliser des interfaces de visualisation des données accessibles directement et en quasi temps réel depuis une interface web en https. En complément de Graylog en OUTPUT, nous avons opté pour Elastic Search afin d’offrir au personnel autorisé une solution de recherche en temps réel très avancée ainsi que le choix de la façon dont ils accèdent aux données des logs : ils peuvent réaliser des requêtes directement en ligne de commandes ou faire appel à d’autres solutions de visualisation (Grafana, Kibana etc…)

L'architecture Thot en image

Quels sont les départements les plus consommateurs de la solution Thot ?

Sans conteste, les équipes CDN et hébergement mutualisé occupent la tête du peloton : avec plus de 200 000 logs enregistrés par secondes quotidiennement, leurs usages répondent typiquement à l’idée que l’on se fait d’une structure industrielle où le volume de données permet d’avoir une vision d’ensemble : chez CDN par exemple, il leur suffit de classer les logs par régions afin de savoir où se situent les plus gros consommateurs de données. Fortes de cette information, les équipes peuvent alors orienter les décisions de manière à accorder une attention particulière aux « points chauds » de l’infrastructure.
Au sein du département hébergement mutualisé, la possibilité de surveiller les logs de l'état de centaines de milliers de serveurs permet aux équipes d’avoir une vision stratégique du parc : analyse de tendances, identification de schémas de pannes avant que celles-ci ne surviennent, le personnel n'est plus réactif : il devient pro-actif et le service tout entier gagne en réactivité.

Vient ensuite le département Over The Box qui gère les logs sur le statut et les pannes potentielles des machines commercialisées ou des solutions maison que nos clients connectent chez nous. A partir d’une interface de visualisation qui centralise ces milliers de machines, nos opérateurs peuvent identifier les pannes les plus récurrentes et remonter « l’historique » des machines concernées afin de détecter les « root causes » de ces pannes et ainsi développer des mesures correctives rapidement.

L’objectif final est ambitieux : généraliser Thot à tous les services qui ont un besoin en matière de gestion de données, de prédiction d’événements et de projection de tendances sur des questions complexes.

"La possibilité de surveiller les logs de centaines de milliers de serveurs permet aux équipes d’avoir une vision stratégique du parc."

Lorsque l’on parle de questions ou de requêtes, de quoi s’agit-il au juste ?

Concevoir une solution de gestion des logs c’est bien, mais celle-ci ne sert strictement à rien si l’on ne sait pas quoi chercher, et quelle question formuler au système afin qu’il nous retourne la réponse attendue. C’est pourquoi il est important de bien définir les champs pertinents (date, heure, cycles cpu, température de disques durs…) et trier les logs pertinents de ceux qui ne le sont pas. A noter que les données issues des logs sont systématiquement tronquées afin que le système ne prennent en compte que les champs définis par les ingénieurs, ceci afin de garantir la confidentialité des échanges de nos clients au sein de notre infrastructure.

Ensuite, de bonnes pratiques permettent de formuler des requêtes suffisamment précises afin qu’en retour, le résultat délivré soit aussi proche de la réalité que l’autorise le système : rationaliser les formats date/heure à l’aide de la norme ISO 8601, se limiter à un nombre maximum de champs prédéfinis, standardiser le formatage des logs, ne pas loger d’informations nominatives ou des mots de passe… Plus la liste des bonnes pratiques s’allonge, plus la gestion en aval des logs s’en trouvera facilitée.

Un exemple de tableau de bord Grafana

Les logs étant traités et disponibles en quasi temps réel, vous ne devez pas quitter votre tableau de bord des yeux

Non et heureusement ! Nous n’avons pas besoin de garder les yeux rivés sur les millions de logs que nous recevons chaque jour car notre solution se comporte comme une sentinelle : Thot et Graylog permettent le paramétrage d’alertes sur les bases d’indicateurs que nous définissons nous-mêmes en fonction des besoins du service. Le système peut alors prévenir l’utilisateur lorsque des messages répondant à certains critères sont identifiés, confirmant là aussi, la pertinence de bien nommer et trier ses logs en amont.

Les structures de tailles plus modestes auraient-t-elles un intérêt à se doter d’un outil de gestion de logs aussi poussé ?

Pour répondre à cette question, il faut d’abord se donner un contexte et identifier ce que l’on entend par besoin. En fonction de l’activité de la structure, sa taille et ses objectifs, être capable de récupérer et d’analyser les données peut s’avérer crucial.

Prenons comme exemple une société de vente en ligne. Nous avons établi qu’un log était en quelque sorte le compte rendu d’un événement compréhensible par un humain et traitable par une machine afin d’en exploiter les données pertinentes. Il n’y a pas de limites à ce que l’on peut mesurer comme événements : il peut s’agir du temps passé sur la page (grâce à l’ajout de champs dédiés à cet effet dans les règles de nomenclature des logs), des actions de la souris (mouseover, clic…), des recherches effectuées au sein du moteur de recherche du site. Toutes ces informations ont une valeur qu’un expert en acquisition de trafic ou en expérience utilisateur peut ensuite analyser afin de déterminer des axes d’amélioration ou répondre à une problématique jusque-là vaguement suggérée par le chiffre d’affaire en baisse.

"Toutes ces informations ont une valeur qu’un expert en acquisition de trafic ou en expérience utilisateur peut ensuite analyser afin de déterminer des axes d’améliorations."

Grâce à un outil d’analyse en temps réel tel que Thot, l’expert en acquisition de trafic pourrait demander au système de lui montrer les logs des clients qui ont abandonné le processus d’achat à la page de confirmation du panier. Après recherches, il s’avère que cette page est tellement chargée d’images qu’elle prend près de 12 secondes en moyenne à se charger à cause d’une requête trop longue dans la base de données pour certains clients (information rapportée par les logs de temps d’attente des clients). L’augmentation des performances de 50% de cette dernière grâce à quelques optimisations au sein de la gestion des requêtes et la réduction de la taille des images permettraient de faire passer ce délai à 3 secondes, réduisant d’autant la frustration des utilisateurs.

En situation réelle et pour conclure, les données fournies par Thot seraient à même de livrer des indications sur la source du problème : est-ce la base de données qui cause ces ralentissements ou le poids des images ? Avec un système de gestion des logs avancé, les décideurs possèdent les outils afin de mener l’action corrective la plus adaptée.

Une solution de gestion des logs peut véritablement devenir un outil d’aide à la décision : qu’ils adoptent l’appellation « dashboard analytics » ou « Predictive Data Mastermind Infrastructure » l’enjeu est le même : présenter sous formes d’indicateurs visuels les leviers sur lesquels construire une décision commerciale pertinente. Donc pour répondre à la question : la taille d’une structure ne détermine pas forcément son besoin, ses objectifs et son usage sont les premiers facteurs à considérer : les startups du marché de l’ioT l’ont d’ailleurs très vite compris.

Quelques chiffres de l'infrastructure Thot

164 noeuds au sein du cluster Elastic Search
180 machines connectées
507 To de logs stockés au sein de l'infrastructure
Entre 100 000 et 300 000 logs traités par seconde
12 milliards de logs transitent par notre solution tous les jours
211 milliards de documents enregistrés

Depuis 2 mois, nous avons mis en place sur notre page Runabove le projet PaaS Logs, la déclinaison intégrée, managée et publique de notre outil interne Thot. Que vous soyez devops, DSI, Data analyst ou expert en acquisition de trafic, le PaaS Logs se veut un outil polyvalent. Nos équipes, qui travaillent chaque jour à l’amélioration de la solution, développent en open source de nombreuses fonctionnalités et la communauté y est très active : c’est sur notre page par exemple, que vous pourrez naviguer au sein des différents modèles de scripts, d’API et de modèles de widgets graphiques que vous pouvez ajouter à votre infrastructure rapidement.

Nos ingénieurs ainsi que les bêta-testeurs publics s’échangent retours et expériences utilisateur quotidiennement, pour rejoindre l’aventure une seule adresse : RunAbove

*NB : Dans la mythologie égyptienne, Thot est le seigneur du temps et le scribe des dieux. Par extension, il est celui qui détient le savoir, et donc qui le transmet. Personnage mythique important, il est considéré comme l'inventeur du langage et de l'écriture.

Source : IDC