Suivis en continu Qubes

Présentation

Fonctionnalité d’exécution d’un script

Un suivi en continu consiste en un script, exécuté automatiquement par QubesPeon.

Lors de la création d’un suivi, on peut choisir parmi 3 types de déclencheurs :

  • « Enregistreur » = exécution périodique du script (toutes les x secondes, avec des plages d’exclusion possibles)
  • « COMPort watch » = exécution du script sur arrivée de données sur un port série
  • « IPPort watch » = exécution du script sur arrivée de données en provenance d’un socket TCP/IP serveur

Fonctionnalité « Historian »

En parallèle de sa capacité d’exécution, un suivi en continu « Enregistreur » peut stocker (et restituer) des données numériques horodatées.

Remarque

Les 2 fonctionnalités sont couplées car il n’est pas rare qu’un même suivi en continu périodique assure à la fois l’acquisition et le stockage de données.
Mais il est parfaitement possible d’utiliser une seule des 2 fonctionnalités.
Ainsi, on peut exécuter un traitement périodique sans utiliser l’historian. Par exemple dans le cas d’une scrutation de dossier pour importer des fichiers issus d’un autre système dans Qubes).
On peut aussi utiliser uniquement l’historian. Par exemple, on a un écran dans lequel un utilisateur fournit un fichier avec les données de plusieurs machines, qui sont alors stockées dans un historian différent pour chaque machine : on a alors autant de suivis en continu que de machines, qui n’ont pas de script associé et une périodicité très longue (pour éviter de vérifier souvent alors qu’il n’y a rien à faire).

Paramétrage

On accède à l’administration des suivis dans Qubes.exe, dans le menu « Administration » > « Configuration » > « Suivi en continu ».

La liste permet de créer, modifier, supprimer un suivi.
Quand on crée un suivi, on choisit son déclencheur. En fonction du déclencheur, on a alors accès à des paramètres différents.

Suivi en continu « Enregistreur »

Réglages qui concernent la fonctionnalité « Exécution périodique »

  • Option « Intervalle d’enregistrement »

Elle permet d’indiquer la périodicité de déclenchement du script, en secondes.
NB : Cette périodicité doit être compatible avec la durée d’exécution prévue du script : si la durée d’un script dure au moins 2 fois plus de temps que sa périodicité de déclenchement, QubesPeon va se terminer pour éviter de se retrouver bloqué dans une éventuelle boucle infinie.

  • Option « Heure de référence »

C’est l’heure à partir de laquelle la périodicité est calculée. C’est particulièrement utile quand on a plusieurs suivis en continu dont la périodicité est supérieure à 60 secondes : cela permet de décaler leurs exécutions afin d’éviter qu’elles se fassent toutes en même temps.
NB : QubesPeon peut exécuter jusqu’à 8 tâches simultanément. Si, au moment de déclencher un script, QubesPeon est déjà saturé, l’exécution n’aura pas lieu (mais si le suivi a une périodicité longue, QubesPeon réessayera quand même 3 fois de suite à 30 secondes d’intervalle).

  • Option « Plage horaire »

Par défaut, toutes les cases sont cochées.
On peut alors décocher les cases des plages horaires pendant lesquelles on souhaite que le script ne se déclenche pas, même si la périodicité d’exécution est atteinte.
NB : ce réglage se surajoute à la « Période d’exclusion des suivis script », définie dans « Administration » > « Options Serveur » > onglet « Qubes Peon ».

Réglages qui concernent la fonctionnalité « Historian »

  • Option « Paramètres suivis »

Il s’agit de la liste des noms de chaque donnée stockable dans ce suivi.
Les noms sont séparés les uns des autres par un retour à la ligne.
C’est le nom de paramètre à utiliser dans la fonction de script WriteToWatcher.

  • Option « Intervalle de sauvegarde »

Quand on utilise la fonction WriteToWatcher, l’écriture dans le suivi en continu a lieu en mémoire, ce qui permet de faire du stockage de gros volumes de données à haute cadence.
Si cette fonction est utilisée dans un script de suivi en continu exécuté par QubesPeon, l’enregistrement de ces données dans la base de données aura lieu automatiquement, suivant la périodicité indiquée dans le réglage « Intervalle de sauvegarde » si le suivi est ACTIF.

  • Option « Longueur de batch »

Chaque point de l’historian peut stocker un très grand nombre de mesures, surtout si l’acquisition a lieu à haute fréquence.
Pour minimiser l’espace de stockage nécessaire, une compression est effectuée lors de l’écriture dans la base de données et toutes les mesures qui ont eu lieu dans une même plage de temps sont stockées dans un même enregistrement de base de données.
La taille de la plage de temps est la longueur de batch, en secondes (on recommande 86400 s, ce qui correspond à 1 jour).

Réglages annexes

  • Option « Equipement »

On peut sélectionner un équipement Qubes.
Il s’agit d’une donnée informative, utilisable dans le script de traitement, récupérable en faisant ReadContextVar(‘Watcher.EquipementGPAOID’);

Suivi en continu « COMPort watch »

  • Option « Machine »

On indique le nom de machine (ou l’adresse IP) du QubesRouter qui monitore le port série qui nous intéresse.
Si on ne l’a pas laissé sur le port standard, on peut préciser le port.

  • Options « Port série »

On indique les réglages du port série : n° de port COM, baud rate, nb de bits de données, parité, nb de bits de stop.

  • Option « Frame terminator »

Le suivi peut recevoir beaucoup de données. Pour indiquer que le flux de données est terminé et que l’application consommatrice de données peut les traiter, le protocole d’échange utilise généralement une séquence de caractères spéciale : le terminateur de trame.
Quand ce dernier est défini (en hexadecimal) QubesPeon accumule les données en mémoire. Dès qu’il rencontre la séquence de caractères dans les données accumulées, il déclenche automatiquement le script de traitement.

  • Option « Max buffer size »

Si on n’utilise pas de terminateur de trame (ou pour éviter d’accumuler des données indéfiniment), on peut définir une taille de buffer : quand les données reçues accumulées ont atteint la taille indiquée, le script du suivi est déclenché.

  • Option « Exécuter le script à la connexion »

Certains protocoles attendent que le client qui se connecte envoie des données avant de répondre.
Cette option permet que le script s’exécute avant même d’avoir reçu quoi que ce soit, dès que la connexion est établie.

  • Option « Equipement »

On peut sélectionner un équipement Qubes.
Il s’agit d’une donnée informative, utilisable dans le script de traitement, récupérable en faisant ReadContextVar(‘Watcher.EquipementGPAOID’);

NB : Dans le script de traitement, pour accéder aux données reçues, il faut utiliser ReadContextVar(‘InBuffer’).
Pour envoyer des données sur la connexion, il faut utiliser WriteContextVar(‘OutBuffer’).

Suivi en continu « IPPort watch »

  • Option « Machine »

On indique le nom de machine (ou l’adresse IP) et le port du socket serveur auquel QubesPeon doit se connecter et maintenir sa connexion.

  • Option « Frame terminator »

Le suivi peut recevoir beaucoup de données. Pour indiquer que le flux de données est terminé et que l’application consommatrice de données peut les traiter, le protocole d’échange utilise généralement une séquence de caractères spéciale : le terminateur de trame.
Quand ce dernier est défini (en hexadecimal) QubesPeon accumule les données en mémoire. Dès qu’il rencontre la séquence de caractères dans les données accumulées, il déclenche automatiquement le script de traitement.

  • Option « Max buffer size »

Si on n’utilise pas de terminateur de trame (ou pour éviter d’accumuler des données indéfiniment), on peut définir une taille de buffer : quand les données reçues accumulées ont atteint la taille indiquée, le script du suivi est déclenché.

  • Option « Keepalive »

De par la conception des réseaux TCP/IP, si la communication réseau entre le serveur et QubesPeon est coupée, QubesPeon ne va plus recevoir de données, mais ne sait pas qu’il y a une coupure et va alors attendre indéfiniment.
Pour qu’il se rende compte d’une éventuelle coupure, il faut qu’il envoie périodiquement des sondes de keepalive. On peut définir une fréquence rapide ou normale.
S’il détecte que le serveur est devenu injoignable (coupure réseau ou arrêt du serveur), QubesPeon va fermer sa connexion en cours et réessayer périodiquement de la rouvrir.

  • Option « Exécuter le script à la connexion »

Certains protocoles attendent que le client qui se connecte envoie des données avant de répondre.
Cette option permet que le script s’exécute avant même d’avoir reçu quoi que ce soit, dès que la connexion est établie.

NB : Dans le script de traitement, pour accéder aux données reçues, il faut utiliser ReadContextVar(‘InBuffer’).
Pour envoyer des données sur la connexion, il faut utiliser WriteContextVar(‘OutBuffer’).