API HTTP du Webserver

Le Webserver expose une API REST complete sur le port 8050. Tous les endpoints (sauf l’authentification) requierent un jeton JWT valide. La documentation Swagger interactive est disponible a l’adresse https://<webserver>:8050/docs/index.html.


Authentification

Tous les appels API requierent un jeton JWT obtenu depuis le endpoint /api/auth. Les jetons expirent apres 15 minutes et doivent etre rafraichis avant expiration.

Obtenir un jeton


curl -k -X POST https://<webserver>:8050/api/auth \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"votreMotDePasse"}'

Reponse :


{
  "code": 200,
  "expire": "2026-03-28T12:00:00+01:00",
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Utiliser le jeton

Passez le jeton dans l’en-tete Authorization pour chaque appel suivant :


curl -k -X GET https://<webserver>:8050/api/users \
  -H "Authorization: Bearer <jeton>"

Rafraichir le jeton

Appelez /refresh_token avant l’expiration du jeton courant (dans la fenetre de 15 minutes) :


curl -k -X GET https://<webserver>:8050/refresh_token \
  -H "Authorization: Bearer <jeton>"

Rafraichir tous les jetons des composants

Force le renouvellement des jetons pour tous les composants enregistres (Moniteurs, Integrateurs, etc.) :


curl -k -X GET https://<webserver>:8050/refreshTokens \
  -H "Authorization: Bearer <jeton>"

Utiliser le certificat CA (recommande)

Plutot que -k (ignorer la verification TLS), utilisez le certificat CA du Webserver :


curl --cacert /chemin/vers/webserver/config/ssl/certificates/webserver.crt \
  -X POST https://<webserver>:8050/api/auth \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"votreMotDePasse"}'


Sante et Statut

Endpoints publics — aucune authentification requise.

Methode Endpoint Description
GET /ping Verification de vie — retourne {"message":"pong"}
GET /uptime Retourne la duree de fonctionnement du service
GET /api/metrics Metriques systeme compatibles Prometheus

# Verification de vie
curl -k https://<webserver>:8050/ping

# Duree de fonctionnement du service
curl -k https://<webserver>:8050/uptime


Utilisateurs

Requiert le groupe admin.

Methode Endpoint Description
GET /api/users Lister tous les utilisateurs
GET /api/users/:username Obtenir un utilisateur specifique
POST /api/users Creer un nouvel utilisateur
PATCH /api/users Mettre a jour un utilisateur existant
DELETE /api/users/:username Supprimer un utilisateur

Creer un utilisateur


curl -k -X POST https://<webserver>:8050/api/users \
  -H "Authorization: Bearer <jeton>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "jdupont",
    "fullName": "Jean Dupont",
    "email": "jdupont@exemple.fr",
    "password": "MotDePasse@123",
    "accountType": "full",
    "group": "user",
    "enabled": "true",
    "tags": "Production,EU",
    "apps": "App1,App2",
    "maxAppsPerRow": 6,
    "horizontalSpacing": 5,
    "verticalSpacing": 15,
    "darkMode": "false"
  }'

| Champ | Type | Requis | Description | Valeurs | |-------|------|--------|-------------|---------| | `name` | string | oui | Identifiant de connexion (alphanumérique uniquement) | | | `fullName` | string | non | Nom d'affichage | | | `email` | string | non | Email pour alertes et rapports | | | `password` | string | oui | Mot de passe en clair (hache cote serveur avec bcrypt) | | | `accountType` | string | oui | Type de compte | `full`, `limited` | | `group` | string | oui | Niveau de permission | `admin`, `user`, `viewer` | | `enabled` | string | oui | Etat actif du compte | `"true"`, `"false"` | | `tags` | string | non | Tags separés par virgule pour la portée des données | `"Production,EU"` | | `apps` | string | non | Noms d'applications separés par virgule | `"App1,App2"` | | `maxAppsPerRow` | int | non | Nombre max d'apps par ligne (vue 3D) | Defaut : `6` | | `horizontalSpacing` | int | non | Espacement horizontal (vue 3D) | Defaut : `5` | | `verticalSpacing` | int | non | Espacement vertical (vue 3D) | Defaut : `15` | | `darkMode` | string | non | Activer le theme sombre | `"true"`, `"false"` | **Permissions par groupe :** - `admin` — accès complet, gestion des utilisateurs et des paramètres - `user` — creer et gerer les moniteurs, rapports, plages d'interruption dans la portee de ses tags - `viewer` — accès en lecture seule

Parametres

Requiert le groupe admin.

Methode Endpoint Description
GET /api/setting Obtenir tous les paramètres de la plateforme
PATCH /api/updateSetting Mettre a jour les paramètres de la plateforme

Composants

Gerer les composants Mugnsoft enregistres (Sondes de Monitoring, Integrateurs, Testeurs de charge, Agents de découverte).

Statut et listage

Methode Endpoint Description
GET /api/components Lister tous les composants enregistres
GET /api/components/status Statut de tous les composants actifs/en attente
GET /api/components/status/:key Statut d’un composant specifique

Enregistrer un composant

Methode Endpoint Description
POST /api/components/probe Ajouter une Sonde de Monitoring
POST /api/components/integrator Ajouter un Integrateur
POST /api/components/loadtest Ajouter un Testeur de charge
POST /api/components/discovery_agent Ajouter un Agent de decouverte

Mettre a jour les parametres d’un composant

Methode Endpoint Description
GET /api/components/setting/:key Obtenir la configuration d’un composant
PATCH /api/components/setting/probe Mettre a jour les paramètres d’une Sonde
PATCH /api/components/setting/integrator Mettre a jour les paramètres d’un Integrateur
PATCH /api/components/setting/loadtest Mettre a jour les paramètres d’un Testeur de charge
PATCH /api/components/setting/discovery_agent Mettre a jour les paramètres d’un Agent de decouverte

Activer / Desactiver / Supprimer

Methode Endpoint Description
POST /api/components/disable/:key Desactiver un composant
POST /api/components/enable/:key/:componentType Activer un composant
DELETE /api/components/forceDelete/:key Forcer la suppression d’un composant

Gestion des certificats

Methode Endpoint Description
GET /api/reloadCertificates Recharger les certificats TLS sur le Webserver
GET /api/reloadComponentCertificates/:key Recharger les certificats TLS d’un composant

Moniteurs URL

Verifications de disponibilite et de temps de reponse HTTP/HTTPS.

Operations communes

Methode Endpoint Description
POST /api/urls Creer un nouveau moniteur URL
DELETE /api/urls/:key Supprimer un moniteur URL
DELETE /api/urls/clean/:key Supprimer uniquement les données historiques
DELETE /api/urls/ref/:key Supprimer uniquement la reference Webserver
GET /api/urls/run/:key Declencher une execution a la demande
POST /api/urls/disable/:key Desactiver un moniteur URL
POST /api/urls/enable/:key Activer un moniteur URL
GET /api/urls/status Statut de tous les moniteurs URL
GET /api/urls/details Details de tous les moniteurs URL
GET /api/urls/details/:key Details d’un moniteur URL specifique
GET /api/urls/ko Lister les moniteurs URL non-OK
GET /api/urls/disabled Lister les moniteurs URL desactives

Creer un moniteur URL


curl -k -X POST https://<webserver>:8050/api/urls \
  -H "Authorization: Bearer <jeton>" \
  -H "Content-Type: application/json" \
  -d '{
    "display_name": "Page d accueil",
    "description": "Surveille la page d accueil principale",
    "url": "https://www.exemple.fr",
    "probe": "sonde-paris",
    "sched": "5MIN",
    "tags": "Production,Web",
    "state": "on",
    "timeout": "30",
    "retries": "2",
    "threshCri": "5000",
    "threshMaj": "3000",
    "threshMin": "1500",
    "certCheck": "on",
    "checkCertExp": "on",
    "nbDaysNotifCert": "30",
    "emailsNotifCert": "ops@exemple.fr",
    "emailOnF": "true",
    "emailR": "ops@exemple.fr",
    "emailOnSC": "true",
    "patternUrl": "Bienvenue",
    "patternComp": "string =="
  }'

**Champs principaux :** | Champ | Requis | Description | Exemple | |-------|--------|-------------|---------| | `display_name` | oui | Nom lisible | `"Page d'accueil"` | | `url` | oui | URL cible | `"https://exemple.fr"` | | `probe` | oui | Nom(s) de sonde, separés par virgule | `"sonde1"` ou `"sonde1,sonde2"` | | `sched` | oui | Frequence de verification | `"1MIN"`, `"5MIN"`, `"15MIN"`, `"30MIN"`, `"1HOUR"` | | `schedCron` | non | Expression cron personnalisée (remplace `sched`) | `"*/10 * * * *"` | | `description` | non | Description libre | | | `tags` | non | Tags separés par virgule | `"Production,EU"` | | `state` | non | Etat initial | `"on"` (defaut), `"off"` | **Seuils (millisecondes) :** | Champ | Description | Defaut | |-------|-------------|--------| | `timeout` | Delai d'expiration de la requete | `30000` | | `threshCri` | Seuil CRITIQUE (ms) | `5000` | | `threshMaj` | Seuil MAJEUR (ms) | `3000` | | `threshMin` | Seuil MINEUR (ms) | `1500` | | `retries` | Tentatives avant alerte | `2` | **Surveillance du certificat TLS :** | Champ | Description | |-------|-------------| | `certCheck` | `"on"` / `"off"` — valider le certificat TLS | | `checkCertExp` | `"on"` / `"off"` — surveiller l'expiration | | `nbDaysNotifCert` | Alerter N jours avant expiration | | `emailsNotifCert` | Email de notification pour les alertes de certificat | **Validation du contenu :** | Champ | Description | Exemple | |-------|-------------|---------| | `patternUrl` | Regex ou chaine a trouver dans le corps de la reponse | `"Bienvenue"` | | `patternComp` | Operateur de comparaison | `"string =="`, `"string !="`, `"number <"` | | `pageSizeCheck` | `"on"` / `"off"` — verifier la taille de la reponse | |

Moniteurs API

Surveillance des endpoints REST avec methodes personnalisees, en-tetes et validation de la reponse.

Methode Endpoint Description
POST /api/apis Creer un nouveau moniteur API
DELETE /api/apis/:key Supprimer
GET /api/apis/run/:key Declencher une execution a la demande
POST /api/apis/disable/:key Desactiver
POST /api/apis/enable/:key Activer
GET /api/apis/status Statut de tous les moniteurs API
GET /api/apis/details Details de tous les moniteurs API
GET /api/apis/details/:key Details d’un moniteur API specifique
GET /api/apis/ko Moniteurs API non-OK
GET /api/apis/disabled Moniteurs API desactives

Moniteurs EUM / Navigateur

Surveillance de l’experience utilisateur final basee sur Selenium (scenarios d’automatisation navigateur).

Methode Endpoint Description
DELETE /api/monitors/:key Supprimer un moniteur
DELETE /api/monitors/clean/:key Supprimer les données historiques
GET /api/monitors/run/:key/:show Declencher une execution a la demande
POST /api/monitors/stop/:key Arreter un moniteur en cours d’execution
POST /api/monitors/disable/:key Desactiver
POST /api/monitors/enable/:key Activer
GET /api/monitors/status Statut de tous les moniteurs EUM
GET /api/monitors/details Details de tous les moniteurs EUM
GET /api/monitors/details/:key Details d’un moniteur EUM specifique
GET /api/monitors/ko Moniteurs EUM non-OK
GET /api/monitors/disabled Moniteurs EUM desactives

Le parametre :show controle l’affichage d’une fenetre navigateur pendant l’execution (true necessite que la sonde tourne comme processus, pas comme service).


Moniteurs TCP

Verifications de connectivite de port TCP.

Methode Endpoint Description
POST /api/tcps Creer un nouveau moniteur TCP
DELETE /api/tcps/:key Supprimer
GET /api/tcps/run/:key Declencher une execution a la demande
POST /api/tcps/disable/:key Desactiver
POST /api/tcps/enable/:key Activer
GET /api/tcps/status Statut de tous les moniteurs TCP
GET /api/tcps/details Details de tous les moniteurs TCP
GET /api/tcps/details/:key Details d’un moniteur TCP specifique
GET /api/tcps/ko Moniteurs TCP non-OK
GET /api/tcps/disabled Moniteurs TCP desactives

Creer un moniteur TCP


curl -k -X POST https://<webserver>:8050/api/tcps \
  -H "Authorization: Bearer <jeton>" \
  -H "Content-Type: application/json" \
  -d '{
    "display_name": "Redis Port 6379",
    "description": "Verifier le port TCP Redis",
    "destIp": "10.0.1.20",
    "destPort": "6379",
    "probe": "sonde-paris",
    "sched": "1MIN",
    "tags": "Production,Cache",
    "state": "on",
    "timeout": "5000",
    "retries": "2",
    "threshCri": "1000",
    "threshMaj": "500",
    "threshMin": "200",
    "emailOnF": "true",
    "emailR": "ops@exemple.fr"
  }'


Moniteurs Ping

Verifications ICMP ping (latence, gigue, perte de paquets).

Methode Endpoint Description
POST /api/pings Creer un nouveau moniteur Ping
DELETE /api/pings/:key Supprimer
GET /api/pings/run/:key Declencher une execution a la demande
POST /api/pings/disable/:key Desactiver
POST /api/pings/enable/:key Activer
GET /api/pings/status Statut de tous les moniteurs Ping
GET /api/pings/details Details de tous les moniteurs Ping
GET /api/pings/details/:key Details d’un moniteur Ping specifique
GET /api/pings/ko Moniteurs Ping non-OK
GET /api/pings/disabled Moniteurs Ping desactives

Creer un moniteur Ping


curl -k -X POST https://<webserver>:8050/api/pings \
  -H "Authorization: Bearer <jeton>" \
  -H "Content-Type: application/json" \
  -d '{
    "display_name": "Ping Passerelle",
    "destIp": "10.0.0.1",
    "count": "5",
    "probe": "sonde-paris",
    "sched": "1MIN",
    "tags": "Production,Reseau",
    "state": "on",
    "timeout": "5000",
    "retries": "2",
    "threshCri": "500",
    "threshMaj": "200",
    "threshMin": "100",
    "jitterThreshCri": "100000",
    "jitterThreshMaj": "50000",
    "jitterThreshMin": "20000",
    "emailOnF": "true",
    "emailR": "ops@exemple.fr"
  }'


Moniteurs DNS

Verifications de resolution DNS (nslookup).

Methode Endpoint Description
POST /api/nslookups Creer un nouveau moniteur DNS
DELETE /api/nslookups/:key Supprimer
GET /api/nslookups/run/:key Declencher une execution a la demande
POST /api/nslookups/disable/:key Desactiver
POST /api/nslookups/enable/:key Activer
GET /api/nslookups/status Statut de tous les moniteurs DNS
GET /api/nslookups/details Details de tous les moniteurs DNS
GET /api/nslookups/details/:key Details d’un moniteur DNS specifique
GET /api/nslookups/ko Moniteurs DNS non-OK
GET /api/nslookups/disabled Moniteurs DNS desactives

Moniteurs Base de Donnees

Execution de requetes SQL et validation des resultats (MySQL, MSSQL).

Methode Endpoint Description
POST /api/dbs Creer un nouveau moniteur DB
DELETE /api/dbs/:key Supprimer
GET /api/dbs/run/:key Declencher une execution a la demande
POST /api/dbs/disable/:key Desactiver
POST /api/dbs/enable/:key Activer
GET /api/dbs/status Statut de tous les moniteurs DB
GET /api/dbs/details Details de tous les moniteurs DB
GET /api/dbs/details/:key Details d’un moniteur DB specifique
GET /api/dbs/ko Moniteurs DB non-OK
GET /api/dbs/disabled Moniteurs DB desactives

Moniteurs SNMP

Interrogation des OID SNMP et evaluation des seuils.

Methode Endpoint Description
POST /api/snmps Creer un nouveau moniteur SNMP
DELETE /api/snmps/:key Supprimer
GET /api/snmps/run/:key Declencher une execution a la demande
POST /api/snmps/disable/:key Desactiver
POST /api/snmps/enable/:key Activer
GET /api/snmps/status Statut de tous les moniteurs SNMP
GET /api/snmps/details Details de tous les moniteurs SNMP
GET /api/snmps/details/:key Details d’un moniteur SNMP specifique
GET /api/snmps/ko Moniteurs SNMP non-OK
GET /api/snmps/disabled Moniteurs SNMP desactives

Moniteurs Systeme

Auto-surveillance de la sonde : CPU, memoire et espace disque du serveur hebergeant la sonde.

Methode Endpoint Description
POST /api/syss Creer un nouveau moniteur Systeme
DELETE /api/syss/:key Supprimer
GET /api/syss/run/:key Declencher une execution a la demande
POST /api/syss/disable/:key Desactiver
POST /api/syss/enable/:key Activer
GET /api/syss/status Statut de tous les moniteurs Systeme
GET /api/syss/details Details de tous les moniteurs Systeme
GET /api/syss/details/:key Details d’un moniteur Systeme specifique
GET /api/syss/ko Moniteurs Systeme non-OK
GET /api/syss/disabled Moniteurs Systeme desactives

Applications

Regroupez les moniteurs en applications logiques avec statut agrege et vues de topologie.

Methode Endpoint Description
POST /api/apps Creer une nouvelle application
DELETE /api/apps/:key Supprimer une application
DELETE /api/apps/clean/:key Supprimer les données historiques
POST /api/apps/disable/:key Desactiver
POST /api/apps/enable/:key Activer
GET /api/apps/status Statut de toutes les applications
GET /api/apps/details/:key Details d’une application specifique

Creer une application


curl -k -X POST https://<webserver>:8050/api/apps \
  -H "Authorization: Bearer <jeton>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ecommerce-prod",
    "display_name": "E-Commerce Production",
    "description": "Tous les moniteurs e-commerce en production",
    "tags": "Production,Ecommerce",
    "apps": "Checkout,Catalog,Paiement",
    "bRule": "or",
    "threshCri": "1",
    "threshMaj": "2",
    "threshMin": "3",
    "state": "on",
    "emailOnF": "true",
    "emailR": "ops@exemple.fr",
    "emailOnSC": "true"
  }'


Rapports

Generer et envoyer des rapports de performance.

Methode Endpoint Description
POST /genAndSendReport Generer et envoyer un rapport specifique
POST /genAndSendReportAll Generer et envoyer tous les rapports
POST /genAndSendReportUrl Rapport des moniteurs URL
POST /genAndSendReportApi Rapport des moniteurs API
POST /genAndSendReportTcp Rapport des moniteurs TCP
POST /genAndSendReportPing Rapport des moniteurs Ping
POST /genAndSendInfraReport Rapport d’infrastructure

Plages d’Interruption

Creer des fenetres de maintenance planifiees pour suspendre les alertes.

Methode Endpoint Description
POST /downtime/create Creer une plage d’interruption
POST /downtime/update/:key Mettre a jour une plage d’interruption
DELETE /downtime/delete/:key Supprimer une plage d’interruption
GET /downtime/detail/:key Obtenir une plage d’interruption specifique
GET /downtime/details Lister toutes les plages avec details
GET /downtime/some/:tags Plages d’interruption pour des tags donnes
GET /downtime/cronjobs Lister les planifications cron des plages

Cles API et Gestion des Jetons

Generer des cles API longue duree pour l’automatisation et l’integration CI/CD.

Methode Endpoint Description
GET /apiKeys Lister toutes les cles API
POST /genAPIKey Generer une cle API avec TTL configurable
POST /genAPIKeyComponent Generer une cle API pour un composant
POST /revokeAPIKey Revoquer une cle API
GET /getComponentToken Obtenir le jeton JWT courant d’un composant
GET /gettoken Obtenir les details du jeton utilisateur courant

# Generer une cle API d'un an
curl -k -X POST https://<webserver>:8050/genAPIKey \
  -H "Authorization: Bearer <jeton>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "pipeline-cicd",
    "ttl": "8760",
    "group": "admin"
  }'


Hotes

Gerer les hotes surveilles avec distribution de fichiers d’instrumentation via SSH.

Methode Endpoint Description
GET /hosts Lister tous les hotes
POST /addHost Ajouter un hote
POST /updateHost Mettre a jour un hote
DELETE /host/:probe/:key Supprimer un hote
GET /getHostDetails/:key Obtenir les details d’un hote
GET /hostsList Liste plate de tous les hotes
POST /sendInstrumFiles/:key Envoyer les fichiers d’instrumentation via SSH/SFTP

Equipements (SNMP)

Gerer les equipements surveilles par SNMP.

Methode Endpoint Description
GET /devices Lister tous les equipements SNMP
POST /addDevice Ajouter un equipement
POST /updateDevice Mettre a jour un equipement
DELETE /device/:probe/:key Supprimer un equipement
GET /getDeviceDetails/:key Obtenir les details d’un equipement
POST /device/testsnmp Tester la connectivite SNMP
POST /device/testoid Tester un OID specifique

Operations de Base de Donnees

Operations de bas niveau sur le store KV. Requiert le groupe admin.

Methode Endpoint Description
GET /api/backupKV Declencher une sauvegarde du store KV
GET /api/reinitKV Reinitialiser le store KV (⚠ destructif)
POST /backupDatabase Sauvegarder le store KV du Webserver
POST /backupDatabase/:key Sauvegarder le store KV d’un composant specifique
POST /reinitDatabase/:svrType/:key Reinitialiser le store KV d’un composant (⚠ destructif)
GET /webserver/:bucket/allV Obtenir toutes les valeurs d’un bucket
GET /webserver/:bucket/allK Obtenir toutes les cles d’un bucket
GET /webserver/:bucket/allKV Obtenir toutes les paires cle-valeur d’un bucket

Champs d’Alerte Communs

Tous les types de moniteurs (URL, API, TCP, Ping, DNS, DB, SNMP, EUM) partagent les memes champs d’alerte :

**Conditions de notification :** | Champ | Description | Exemple | |-------|-------------|---------| | `notifyStatus` | Statut minimum declenchant les alertes | `"MINOR"`, `"MAJOR"`, `"CRITICAL"` | | `notifyAfter` | Alerter apres N echecs consecutifs | `"3"` | | `notifyFor` | Continuer les alertes pendant N cycles apres violation | `"5"` | | `retries` | Nombre de tentatives avant alerte | `"2"` | **Alertes Email :** | Champ | Description | |-------|-------------| | `emailOnF` | `"true"` — envoyer un email en cas d'echec | | `emailOnSC` | `"true"` — envoyer un email en cas de changement de statut | | `emailR` | Adresse(s) email des destinataires, separées par virgule | **Alertes Slack :** | Champ | Description | |-------|-------------| | `slackOnF` | `"true"` — poster sur Slack en cas d'echec | | `slackOnSC` | `"true"` — poster sur Slack en cas de changement de statut | | `slackChan` | Canal Slack (remplace le parametre global) | | `slackTok` | Token du bot Slack (remplace le parametre global) | **Alertes Microsoft Teams :** | Champ | Description | |-------|-------------| | `teamsOnF` | `"true"` — poster sur Teams en cas d'echec | | `teamsOnSC` | `"true"` — poster sur Teams en cas de changement de statut | | `teamsWH` | URL du webhook Teams | **Alertes PagerDuty :** | Champ | Description | |-------|-------------| | `pdOnF` | `"true"` — declencher PagerDuty en cas d'echec | | `pdOnSC` | `"true"` — declencher PagerDuty en cas de changement de statut | | `pdAPI` | Cle d'integration API PagerDuty |

Valeurs de Planification Communes

Le champ sched accepte les valeurs suivantes :

Valeur Description
1MIN Toutes les 1 minute
5MIN Toutes les 5 minutes
15MIN Toutes les 15 minutes
30MIN Toutes les 30 minutes
1HOUR Toutes les heures
6HOUR Toutes les 6 heures
12HOUR Toutes les 12 heures
1DAY Une fois par jour
CRON Expression cron personnalisee (definir schedCron)

Codes de Statut

Toutes les reponses API incluent un champ code numerique :

Code Signification
200 Succes
400 Requete invalide — parametres manquants ou incorrects
401 Non autorise — jeton expire, mauvaises credentials, ou groupe insuffisant
404 Non trouve
429 Trop de tentatives de connexion — IP bloquee pendant 5 minutes
500 Erreur interne du serveur

Valeurs de statut des moniteurs :

Statut Couleur Signification
OK Vert Toutes les verifications passent dans les seuils
MINOR Jaune Temps de reponse au-dessus du seuil MINEUR
MAJOR Orange Temps de reponse au-dessus du seuil MAJEUR
CRITICAL Rouge Temps de reponse au-dessus du seuil CRITIQUE
ERROR Rouge Verification echouee (connexion refusee, timeout)
DOWN Gris Moniteur desactive ou sonde inaccessible

Interface Swagger

La reference API interactive complete est disponible a :

https://<webserver>:8050/docs/index.html

L’interface Swagger permet d’explorer tous les endpoints, d’inspecter les schemas de requete/reponse et d’executer des appels directement depuis le navigateur avec un jeton JWT valide.

Interface Swagger du Webserver

Modele de Script Shell

Utilisez ce modele pour construire des scripts d’automatisation contre l’API Webserver :


#!/bin/bash
WEBSERVER="https://webserver.exemple.fr:8050"
CACERT="/chemin/vers/webserver.crt"  # ou utilisez -k pour les tests

# 1. Authentification
TOKEN=$(curl -s --cacert "$CACERT" -X POST "$WEBSERVER/api/auth" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"votreMotDePasse"}' \
  | jq -r '.token')

if [ -z "$TOKEN" ] || [ "$TOKEN" = "null" ]; then
  echo "Echec de l'authentification"
  exit 1
fi

# 2. Appels API
curl -s --cacert "$CACERT" -X GET "$WEBSERVER/api/urls/status" \
  -H "Authorization: Bearer $TOKEN" \
  | jq .

# 3. Obtenir tous les moniteurs non-OK pour chaque type
for TYPE in urls apis monitors tcps pings nslookups dbs snmps syss; do
  echo "=== NON-OK $TYPE ==="
  curl -s --cacert "$CACERT" -X GET "$WEBSERVER/api/$TYPE/ko" \
    -H "Authorization: Bearer $TOKEN" \
    | jq .
done

Voir aussi

Traductions