Article écrit par Yassine Amraoui
Avant de commencer
Le travail des entreprises repose notamment sur le bon fonctionnement de leurs processus. Cependant, les vérifications systématiques ne sont pas toujours de routine.
Heureusement, de nos jours, la plupart des domaines informatiques et des infrastructures comme les pare-feu, les bases de données et les serveurs, disposent d’historiques d’événements appelés logs.
Les logs, ou « journal » en français, sont un type de fichier stockant un historique des événements. Les logs sont horodatés, ils présentent de manière ordonnée les différents événements qui se sont produits sur l’objet supervisé. Ainsi, on peut par exemple analyser l’activité d’un processus heure par heure, minute par minute, sur une fenêtre de 5 minutes, etc.
Il existe de nombreux outils d’analyse de logs, comme ELK et Splunk. Ils centralisent le stockage et l’interprétation des logs afin de pouvoir analyser ces derniers en temps quasi réel. Ceci permet aux utilisateurs de « prévenir plutôt que de guérir ». Par exemple, une banque disposant d’une application analysant les flux bancaires en temps réel émettra une alerte sur un flux d’argent trop important dès l’instant où ce flux sera sorti de sa source. Cette alerte permet de signaler la sortie d’un flux qui risquerait de faire perdre de l’argent à la banque si celui-ci ne se déroule pas comme prévu. Ainsi, la banque prendra les précautions nécessaires et doublera de vigilance par rapport à ce flux d’argent.
La supervision
Pourquoi la supervision ?
Dans la plupart des entreprises, seules les équipes « techniques » voient les problèmes d’exécutions ; les vérifications régulières ne sont pas souvent mises en place.
Ceci implique une augmentation du temps de détection des incidents et donc, à fortiori, une correction d’incidents retardée. Des fois même, il y a plus d’investigations qu’il ne devrait. Des pertes économiques et une nuisance de l’image de l’entreprise sont alors générées. Au contraire, une entreprise ayant mis en place un système de supervision est proactive et a beaucoup plus de chances de gagner plus d’argent (du moins d’éviter d’en perdre) sur le long terme.
La supervision s’avère indispensable lorsque les vérifications manuelles sont impossibles, par exemple à cause de données complexes.
La supervision voit tout son sens apparaître dans ce contexte.
Qu’est-ce que la supervision ?
La supervision consiste à identifier des anomalies de manière automatique et en quasi-temps réel.
Le but d’un outil de supervision est de restituer en une interface unique l’état de santé des processus de l’entité supervisée (l’entreprise entière, un pôle, un serveur, etc.) et d’émettre des alertes sur les incidents critiques.
Système de supervision
L’objectif est de restituer de manière claire et concise les informations sur l’objet supervisé (health check par exemple). Pour ce faire, la supervision se base sur des indicateurs :
– Qualité : état d’un processus est OK ou KO
– Vraisemblance : données reçues semblent vraisemblables ou non
– Cohérence : données intègres ou non (comparaison inputs/outputs)
– Ponctualité : données reçues à l’instant attendu ou non
Ces indicateurs sont restitués de manière visuelle dans des dashboards sous forme de diode (vert/rouge pour OK/KO), de camembert, ou de tout autre forme permettant de saisir l’information rapidement.
Apports de la supervision et outils
Les entreprises peuvent prendre des décisions plus rapidement, voire même diminuer le nombre d’incidents.
Ceci a pour effet d’améliorer leur image au sein de leur marché.
De nombreux outils permettent de superviser des processus métiers. Ces outils ne sont pas forcément dédiés entièrement à la supervision. De nos jours, les solutions les plus utilisées sont de type Big Data : c’est le cas des outils ELK et Splunk.
La supervision des flux bancaires
Principe
Les applications de supervision peuvent s’appliquer aux flux bancaires puisque ces derniers ont besoin d’un contrôle automatique et en temps réel. Automatique car l’émission des alertes relevées par les programmes ne doivent nécessiter aucune intervention humaine. Temps réel car en cas d’anomalie les banques ont besoin d’agir le plus rapidement possible pour éviter les pertes d’argent. Ces programmes disposent tous d’une IHM (interface homme-machine) intuitive, afin que les clients puissent les paramétrer sans difficultés.
Business Activity Monitoring
Le “Business Activity Monitoring” correspond à l’ensemble des logiciels informatisés et des techniques de supervision des processus d’une entreprise. On appelle communément restitution l’interface visuelle car elle présente les données de supervision, à savoir ce qui est à l’état « OK » et ce qui est « KO ». Dans les cas d’incidents critiques — lorsque le statut de ce qui est supervisé est « KO », l’interface doit remonter des alertes ciblées. Ces alertes peuvent être soit des envois de mails, soit des notifications sur l’application (ou les deux). Les dashboards, ou tableaux de bord, sont le regroupement de l’ensemble des restitutions tel que le client puisse parcourir et comprendre de manière simple l’état actuel de son système.
Couches de supervision
Une application de supervision contient généralement trois grandes couches :
- Une couche d’intégration des données clients
- Une couche de corrélation et d’agrégation de ces données sous forme d’informations pertinentes et compréhensibles
- Une couche de restitution des données de manière visuelle.
Indicateurs techniques et fonctionnels
Les utilisateurs finaux sont en général les équipes métiers des banques. Ces dernières recherchent un ensemble d’informations restituant de manière claire l’état de santé de la plateforme. Les dashboards restituent à la fois des indicateurs fonctionnels et des indicateurs techniques :
- un indicateur fonctionnel est un indicateur présentant l’état de santé d’une couche du système, et ce de manière compréhensible même par une personne non qualifiée dans le domaine de l’informatique. Ces indicateurs sont en général une vulgarisation de l’état interne du système. Par exemple, il peut s’agir de l’agrégation des valeurs des états de sous-systèmes
- un indicateur technique est un indicateur visant à informer l’équipe technique de l’état d’un niveau du système entre deux processus métiers. Cet indicateur est souvent très précis
Difficultés des applications de supervision
Les difficultés dans les applications de supervision sont de plusieurs types.
D’une part, le plus souvent, les banques cherchent une application qui récupère des informations depuis des sources multiples, et donc c’est au développeur de créer des applications qui soient assez performantes et optimisées afin de récupérer des données provenant de plusieurs sources, puis de corréler, agréger et traiter ces informations dans des délais courts pour pouvoir remonter les résultats en quasi-temps réel. Ces résultats sont les indicateurs précédemment expliqués.
D’autre part, la volumétrie des données à traiter est très importante pour les banques.
Définir les périmètres de l’application de supervision
Pour toute application de supervision, il est important de mettre en évidence les périmètres :
- Qui va effectuer le suivi ?
- Qui va surveiller l’écran de l’application ? Un utilisateur technique ou métier ?
- Quel est le coût et la longueur du maintien et des investigations ?
Dans le cas où l’application est dédiée à l’équipe informatique d’une banque, le but du développeur est de détailler au plus bas niveau possible les anomalies, tandis que dans le cas où il s’agit de l’équipe fonctionnelle, il est préférable d’agréger les statuts des processus en statuts globaux et compréhensibles très rapidement.
Exemple type de supervision de flux bancaires
Spécifications
Supposons un cas classique où la banque dispose de flux de 2 types que l’on appellera flux_1 et flux_2. Ces deux catégories ont généralement des noms et des significations propres aux processus internes à la banque, mais ce qui intéresse le développeur c’est de simplement pouvoir les distinguer lors de la restitution des données dans l’application développée.
La banque explique au développeur, au travers d’un fichier des spécifications, ce qu’il souhaite que l’on développe. On se placera dans le cas où le client fournit un fichier de logs contenant l’historique de l’ensemble des flux bancaires. Le fichier des logs est tenu à jour en temps réel. Ces flux peuvent être valides, ou avoir des problèmes. En règle générale, le problème est mentionné dans la ligne du flux concerné dans le fichier de logs. Le but de l’application est de superviser ces flux présents dans les fichiers de logs, et de remonter en temps réel dans les dashboards ceux en anomalie.
Implémentation
Pour chaque flux, on peut par exemple lui associer une pastille rouge ou verte selon son statut indiqué sur le fichier de log. Pour ce faire, il faut organiser son code de sorte à respecter les deux règles principales suivantes :
- trier les flux par identifiant unique
- tenir à jour le statut de chaque flux au fur et à mesure que l’on reçoit des données du fichier de logs
En effet, chaque flux est identifié de manière unique par son attribut « id », ce qui fait qu’à un instant t, le flux d’id « i » peut avoir un statut « OK », puis à un instant t + Δt, avoir un statut « KO ». Sur les dashboards, il faut donc tenir à jour la table des flux, en passant le flux d’id « i » de l’état « OK » (pastille verte) à l’état « KO » (pastille rouge) si un incident pour le flux « i » apparaît dans le fichier de logs.
Fonctionnalité d’acquittement
Généralement, les banques demandent aussi d’implémenter la fonctionnalité d’acquittement des flux anormaux, ce qui a pour effet de mettre le flux anormal au statut OK (pastille verte), avec mention « acquitté ». C’est même grâce à cette fonctionnalité que les applications de supervision bancaires prennent tout leur sens : il faut rendre compte des flux anormaux pour que les banques soient alertées rapidement, et aussi qu’ils puissent maintenir à jour le tableau de l’historique des corrections des anomalies des flux via l’acquittement.
D’ailleurs, une des difficultés généralement rencontrées est qu’il peut y avoir plusieurs fichiers contenant les flux, et donc l’application doit être capable de lire et analyser l’ensemble de ces fichiers.
Bilan
La supervision des processus métiers est un élément non négligeable pour une entreprise, en particulier pour les banques. En effet, elle permet de réduire les pertes économiques, de sécuriser l’activité du parc applicatif et aussi d’améliorer son image. De nos jours, l’enjeu est de sensibiliser les entreprises aux besoin de supervision.
Bibliographie
Business Activity Monitoring, Wikipedia, https://fr.wikipedia.org/wiki/Business_activity_monitoring
Valentine Ganansia, La supervision informatique, indispensable de la sécurité en entreprise, www.atera.com, octobre 27, (2020)
Hasnae El Houari, Business activity monitoring : comment les banques peuvent-elles en tirer profit ?, www.bankobserver-wavestone.com, octobre 04, (2016)