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 millisecondes
  • endTime - 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 metrique
  • startTime / 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>"

Avertissement : La reinitialisation de la base de donnees supprime toutes les metriques stockees, les seuils et l’historique des statuts. Cette action est irreversible.

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

Traductions