API HTTP du Discovery Agent
L’API REST du Discovery Agent Mugnsoft fournit des points de terminaison pour le declenchement de la decouverte, l’interrogation des metriques systeme et processus, la gestion des seuils et la configuration des notifications. Version 3.0.0
Introduction
L’API du Discovery Agent vous permet de :
- Declencher la decouverte systeme et processus a la demande
- Interroger les metriques en temps reel et historiques (CPU, memoire, I/O, trafic reseau)
- Configurer les seuils et les lignes de base automatiques
- Gerer les utilisateurs et l’authentification
- Acceder aux fichiers journaux et aux sauvegardes
- Surveiller la sante de l’agent
URL de base : https://<agent-ip>:8070
Protocole : HTTPS avec mTLS (TLS mutuel)
Authentification
Connexion
curl -k -X POST https://192.168.1.100:8070/api/auth \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "your_password"
}'
Reponse (200 OK) :
{
"code": 200,
"expire": "2025-10-11T12:15:00Z",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Types de jetons
| Point de terminaison | Duree de vie | Cas d’utilisation |
|---|---|---|
POST /api/auth |
15 minutes | Acces API utilisateur |
POST /loginComponent |
15 minutes | Communication entre composants |
POST /loginComponent1Year |
1 an | Automatisation longue duree |
POST /loginComponent15Years |
15 ans | Integrations permanentes |
Rafraichissement du jeton
curl -k -X GET https://192.168.1.100:8070/refresh_token \
-H "Authorization: Bearer <your_current_token>"
Operations de decouverte
Declencher une decouverte immediate
curl -k -X GET https://192.168.1.100:8070/runDiscovery \
-H "Authorization: Bearer <token>"
Declenche un cycle de collecte de metriques immediat (systeme + processus + reseau). Les resultats sont stockes dans le magasin KV et ecrits dans data/discover_metrics.json.
Obtenir un processus par port
curl -k -X GET https://192.168.1.100:8070/getProcessByPort/3306 \
-H "Authorization: Bearer <token>"
Retourne les informations sur le processus ecoutant sur le port TCP specifie.
Calculer les seuils automatiques
curl -k -X POST https://192.168.1.100:8070/computeThreshold \
-H "Authorization: Bearer <token>"
Recalcule les seuils de ligne de base automatiques pour toutes les metriques surveillees en fonction des donnees historiques.
Recuperation des metriques
Metriques systeme actuelles
curl -k -X GET https://192.168.1.100:8070/api/metrics \
-H "Authorization: Bearer <token>"
Retourne les metriques actuelles de CPU, memoire, charge moyenne et temps de fonctionnement.
Graphique des metriques systeme
curl -k -X GET "https://192.168.1.100:8070/api/reportSysMetricsGraph/1728565200000/1728651600000" \
-H "Authorization: Bearer <token>"
Parametres de chemin :
startTime- Horodatage Unix en millisecondesendTime- Horodatage Unix en millisecondes
Graphique des metriques de processus
curl -k -X GET "https://192.168.1.100:8070/process/reportGraph/nginx/1728565200000/1728651600000" \
-H "Authorization: Bearer <token>"
Parametres de chemin :
type- Type de metrique (par ex.process,system)key- Nom du processus ou identifiant de la metriquestartTime/endTime- Plage temporelle (Unix ms)
Obtenir une metrique specifique du magasin KV
curl -k -X GET https://192.168.1.100:8070/api/db/discovery/bucket/STATUS/key/nginx_cpu \
-H "Authorization: Bearer <token>"
Obtenir toutes les donnees d’un bucket
curl -k -X GET https://192.168.1.100:8070/v1/db/discovery/bucket/STATUS/allJSON \
-H "Authorization: Bearer <token>"
Gestion des parametres
Obtenir les parametres
curl -k -X GET https://192.168.1.100:8070/api/setting \
-H "Authorization: Bearer <token>"
Mettre a jour les parametres
curl -k -X POST https://192.168.1.100:8070/updateSetting \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"logLevel": "info",
"sched": "5MIN",
"discoCPUGFixedThreshCri": "95",
"discoCPUGFixedThreshMaj": "85",
"discoCPUGFixedThreshMin": "75",
"discoCPUGMonEnabled": "true",
"processes": "nginx,mysqld,java",
"ports": "80,443,3306"
}'
Configurer SMTP
curl -k -X POST https://192.168.1.100:8070/setsmtp \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"smtpEnabled": "true",
"smtpServerName": "smtp.example.com",
"smtpPort": "587",
"smtpUsername": "alerts@example.com",
"smtpPwd": "password",
"smtpTLS": "true"
}'
Tester la connectivite avec l’Integrator
curl -k -X POST https://192.168.1.100:8070/checkConnectIntegrators \
-H "Authorization: Bearer <token>"
Fichiers journaux
Diffuser les journaux recents
curl -k -X GET https://192.168.1.100:8070/partServerlogfile/10000 \
-H "Authorization: Bearer <token>"
Retourne les N derniers octets du journal serveur actuel.
Telecharger un fichier journal
curl -k -X GET https://192.168.1.100:8070/discovery/logfile/server/discovery_agent.log \
-H "Authorization: Bearer <token>" -o discovery.log
Telecharger une archive de journaux
curl -k -X GET https://192.168.1.100:8070/serverlogfiles/discovery_agent.log.gz \
-H "Authorization: Bearer <token>" -o discovery.log.gz
Operations sur la base de donnees
Sauvegarde
curl -k -X POST https://192.168.1.100:8070/backupDatabase \
-H "Authorization: Bearer <token>"
Reinitialisation
curl -k -X POST https://192.168.1.100:8070/reinitDatabase \
-H "Authorization: Bearer <token>"
Statistiques de la base de donnees
curl -k -X GET https://192.168.1.100:8070/v1/db/discovery/stats \
-H "Authorization: Bearer <token>"
Gestion des utilisateurs
Lister les utilisateurs
curl -k -X GET https://192.168.1.100:8070/api/users \
-H "Authorization: Bearer <token>"
Creer un utilisateur
curl -k -X POST https://192.168.1.100:8070/api/users \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"username": "operator",
"password": "securepass",
"fullname": "Ops Team",
"group": "admin",
"enabled": "true"
}'
Supprimer un utilisateur
curl -k -X DELETE https://192.168.1.100:8070/api/users/operator \
-H "Authorization: Bearer <token>"
Gestion des certificats
Recharger les certificats
curl -k -X GET https://192.168.1.100:8070/reloadCertificates \
-H "Authorization: Bearer <token>"
Obtenir le certificat
curl -k -X GET https://192.168.1.100:8070/getCert -o discovery_agent.crt
Verification de sante
curl -k https://192.168.1.100:8070/ping
Reponse :
{
"message": "pong"
}
Aucune authentification requise.
Documentation Swagger
Accedez a l’interface interactive Swagger a l’adresse : https://<agent-ip>:8070/docs/index.html
Codes de reponse
| Code | Statut | Description |
|---|---|---|
| 200 | OK | Requete reussie |
| 201 | Created | Ressource creee |
| 400 | Bad Request | Requete invalide |
| 401 | Unauthorized | Jeton JWT manquant ou invalide |
| 403 | Forbidden | Permissions insuffisantes |
| 404 | Not Found | Ressource introuvable |
| 500 | Internal Server Error | Erreur serveur |