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
- Renouveler la cle dans l’onglet Analyse predictive. Les requetes sont desormais signees avec la nouvelle cle.
- 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.
- 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). |