Configuration

L’analyse predictive se configure a trois endroits : les parametres du Webserver (une fois), chaque moniteur (un interrupteur) et le service de prediction (son environnement).

Parametres du Webserver

Parametres > fenetre des parametres du Webserver > Analyse predictive (administrateurs uniquement). Cet onglet a son propre bouton Enregistrer les parametres de prediction : le bouton Enregistrer principal de la fenetre ne l’inclut pas.

Parametre Description Par defaut
URL de l’API de prediction Adresse du service de prediction, https://hote:port. Vide : l’analyse predictive est desactivee. (vide)
Verifications a prevoir par defaut Verifications prevues pour un moniteur qui n’en fixe pas, et fenetre de son risque de depassement. 20 au plus. 5
Empreinte du certificat TLS (SHA-256) Epingle le certificat du service : seul celui-ci est accepte, auto-signe ou non. Recuperer le certificat le lit sur le service. Vide : le certificat doit etre reconnu par l’hote du Webserver. (vide)
Cle de signature (publique) La cle a installer sur le service (PREDICTION_JWT_PUBLIC_KEY). Copier la copie, Renouveler la cle la remplace (voir plus bas). creee a la premiere utilisation
Reentrainer chaque modele Chaque jour, chaque semaine, toutes les deux semaines, chaque mois, ou jamais. chaque semaine
Entrainement manuel uniquement Le Webserver ne demande jamais d’entrainement de lui-meme ; utilisez Entrainer maintenant dans le tableau des previsions. desactive
Envoyer des alertes predictives Envoyer les alertes de prevision et d’anomalie via les Integrateurs. desactive
Alerter sur Depassement prevu et anomalie, Depassement prevu ou Anomalie. les deux
Anciens reglages, pour un service de prediction plus ancien La cle d’API heritee, uniquement pour un service qui verifie encore PREDICTION_API_KEY (les requetes sont signees dans tous les cas), et une connexion InfluxDB fournie par ce webserver, uniquement pour un service lance avec PREDICTION_ALLOW_CLIENT_BACKEND=true. Laissez-les vides avec un service a jour. (vide)

Tester la connexion verifie les parametres enregistres etape par etape : l’URL est renseignee, le service repond, il accepte la signature de ce Webserver, et il lit InfluxDB. Une etape en echec indique quoi corriger. Il affiche aussi la version du service, son nombre de modeles et sa file d’entrainement. Une modification pas encore enregistree est signalee Modifications non enregistrees : enregistrez-la avant de tester.

Le tableau Previsions liste chaque moniteur dont la prediction est activee, une ligne par sonde. Filtrer les moniteurs le restreint, et il s’actualise de lui-meme tant que des modeles attendent leur entrainement. Quand un moniteur ne declenche pas d’alerte de prevision, la raison est ecrite sous sa prevision.

Parametres du moniteur

Dans le detail du moniteur, onglet Prediction (moniteurs URL, API, TCP, UDP, Ping, DNS, Base de donnees, Systeme et WebSocket) :

Parametre Description
Activer Prevoir ce moniteur sur chaque sonde ou il s’execute.
Verifications a prevoir Nombre de verifications a prevoir pour ce moniteur, 20 au plus, et fenetre de son risque de depassement. Vide : la valeur par defaut.
Nom de modele personnalise Nom optionnel du modele sur le service. Vide : <type>_<cle du moniteur>, par exemple url_shop_probe1. A renseigner uniquement pour reutiliser un modele entraine a la main.
Alertes de prevision Les alertes de prevision de ce moniteur : Par defaut, Active ou Desactive (voir ci-dessous).

Les autres reglages s’appliquent une fois Activer allume : ils sont grises tant qu’il est eteint. A cote, l’encadre Etat de la prediction montre, pour chaque sonde, le modele, la derniere prevision avec son risque de depassement, et si les alertes de prevision partent. Les administrateurs y ouvrent les parametres d’analyse predictive.

Le statut prevu est le risque d’atteindre les seuils mineur / majeur / critique du moniteur (voir Risque de depassement) : un moniteur sans seuils n’a ni statut prevu ni alerte de prevision. Modifier un seuil ou le nombre de previsions reentraine le modele du moniteur, en quelques secondes. Les alertes predictives utilisent ses canaux de notification au changement de statut.

Alertes de prevision par moniteur

Le reglage Alertes de prevision d’un moniteur :

Valeur Alertes de prevision de ce moniteur
Par defaut Suivent Envoyer des alertes predictives et Alerter sur.
Active Envoyees, meme si Envoyer des alertes predictives est desactive ou si Alerter sur vaut Anomalie. Pour n’alerter que sur quelques moniteurs critiques.
Desactive Jamais envoyees. La prevision et son risque restent visibles dans le tableau des previsions.

Il ne concerne que les alertes de prevision (risque de depassement) : les alertes d’anomalie suivent toujours les parametres globaux, et une alerte de prevision n’est envoyee que si le risque de depassement du moniteur est fiable. Le changement est pris en compte en 10 minutes au plus (aussitot avec Lancer les predictions maintenant). Desactiver les alertes de prevision d’un moniteur leve une alerte de prevision en cours ; les activer alerte sur le niveau actuel des que deux previsions consecutives le confirment. La colonne Alertes de prevision du tableau des previsions montre le resultat pour chaque moniteur et chaque sonde, Par defaut (activees) ou Par defaut (desactivees) selon les parametres globaux actuels.

Comme les autres parametres de prediction, il fait partie de l’export CSV du moniteur, et un import le restaure.

Les moniteurs crees par un agent Sentinel se configurent sur l’agent.

Service de prediction

Le service se configure par variables d’environnement, dans un fichier .env a cote de api.exe, ou avec --env-file pour le conteneur.

Variable Description Par defaut
INFLUXDB_URL InfluxDB dans lequel ecrit l’Integrateur. Obligatoire.
INFLUXDB_TOKEN Jeton InfluxDB (la lecture suffit).
INFLUXDB_ORG, INFLUXDB_BUCKET Organisation et bucket InfluxDB v2.
INFLUXDB_DATABASE Base InfluxDB v3.
PREDICTION_TSDB influxdb (v2, Flux) ou influxdb3 (v3, SQL). influxdb3 si seule une base est renseignee, sinon influxdb
PREDICTION_JWT_PUBLIC_KEY Fichier contenant la cle publique de signature du Webserver (plusieurs cles possibles). Relu quand il change.
PREDICTION_REQUIRE_JWT true : refuser la cle d’API heritee. false
PREDICTION_API_KEY Cle partagee heritee. Laissez vide des que chaque Webserver signe ses requetes.
PREDICTION_SSL_KEY, PREDICTION_SSL_CERT Cle et certificat TLS. Sans eux le service repond en HTTP simple : gardez-le alors sur localhost. private.key, certificate.crt
API_HOST, API_PORT Adresse et port d’ecoute. 0.0.0.0, 8000
PREDICTION_MODEL_DIR Dossier des modeles et de l’etat des entrainements. Dans le conteneur : le volume /models. dossier courant
PREDICTION_LOOKBACK_DAYS Historique parcouru pour trouver les dernieres verifications d’une prevision. 30
PREDICTION_MODEL_CACHE Modeles gardes en memoire. 32
PREDICTION_ENGINE Modele des nouveaux entrainements : median (rapide, voir Fonctionnement) ou lstm (reseau de neurones, plusieurs minutes par moniteur). Les modeles existants gardent leur moteur jusqu’a leur prochain entrainement. median
PREDICTION_RISK_MIN_PRECISION Part d’avertissements justes que le risque de depassement d’un moniteur doit atteindre sur son historique pour garder les alertes de prevision. Plus haut : moins de moniteurs, moins de faux avertissements. S’applique au prochain entrainement. 0.5
PREDICTION_RISK_MIN_LIFT De combien le risque de depassement doit classer les depassements mieux que le hasard. S’applique au prochain entrainement. 2
PREDICTION_TRAIN_TIMEOUT Secondes avant l’arret d’un entrainement. 3600
PREDICTION_TRAIN_QUEUE_MAX Entrainements en attente avant de refuser les nouvelles demandes. 100
PREDICTION_DEBUG true ajoute un point d’entree de diagnostic, POST /debug/series. false
PREDICTION_ALLOW_CLIENT_BACKEND true laisse les appelants envoyer leur propre connexion InfluxDB et leur requete. Dangereux : quiconque accede au service pourrait le faire se connecter n’importe ou. false

Renouveler la cle de signature

  1. Renouveler la cle dans l’onglet Analyse predictive. Les requetes sont desormais signees avec la nouvelle cle.
  2. La zone de texte contient maintenant la nouvelle et l’ancienne cle publique. Copiez-la dans le fichier de cle du service : le service accepte l’une ou l’autre jusqu’a la prochaine modification du fichier.
  3. Tester la connexion affiche de nouveau Connecte. Tant que l’etape 2 n’est pas faite, il indique que le service refuse la signature de ce Webserver.

Dans un cluster de Webservers la cle est partagee : renouvelez-la une seule fois, depuis n’importe quel noeud.

API

Webserver (ADMIN, sur le port API, jeton administrateur) :

Methode Chemin Description
GET /predictions Toutes les previsions enregistrees, avec l’etat du modele et des alertes. ?monitor=<cle> pour un moniteur.
GET /prediction/:type/:key La prevision d’un moniteur, par exemple /prediction/url/shop_probe1.
POST /runPredictions Rafraichir la liste des moniteurs et prevoir chaque moniteur active maintenant.
POST /trainPrediction Entrainer un moniteur maintenant : {"type":"url","key":"shop_probe1"}.
GET / POST /predictionSettings / /updatePredictionSettings Lire (secrets masques) ou enregistrer les parametres.
GET /predictionHealth Le meme test que Tester la connexion.
GET /predictionPublicKey La ou les cles publiques de signature pour le service.
POST /predictionRotateKey Renouveler la cle de signature.
POST /predictionFetchCert Lire le certificat d’un service : {"url":"https://hote:8000"}.

Service de prediction (requetes signees uniquement, sauf /health) :

Methode Chemin Description
GET /health Version, modeles, file d’entrainement, modes d’authentification. Sans identifiants, aucune donnee renvoyee.
POST /predict Prevoir un moniteur.
POST /train Mettre un entrainement en file.
GET /models, /models/{name} Etats des modeles : untrained, queued, training, ready, failed.
GET /jobs/{id} Un entrainement.
DELETE /models/{name} Retirer un modele (deplace dans previous).

Traductions