API HTTP de l'Integrator

L’API REST de l’Integrator Mugnsoft fournit des points de terminaison pour la gestion des integrations, la reception des donnees de surveillance, l’interrogation des resultats mis en cache et la configuration des notifications. Version 3.0.0

Introduction

L’API de l’Integrator vous permet de :

  • Configurer des integrations tierces (InfluxDB, Splunk, Elasticsearch, Kafka, Zabbix, Canopsis)
  • Recevoir et traiter les donnees de surveillance provenant des sondes Monitor et des Discovery Agents
  • Interroger les donnees de surveillance mises en cache (pour les integrations en mode pull comme Zabbix)
  • Gerer les utilisateurs et l’authentification
  • Tester la connectivite des integrations
  • Surveiller la sante du systeme Integrator

URL de base : https://<integrator-ip>:8052 Protocole : HTTPS avec mTLS (TLS mutuel)

Authentification

L’Integrator utilise l’authentification JWT (JSON Web Token) avec l’algorithme RS256.

Connexion


curl -k -X POST https://192.168.1.100:8052/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 24 heures 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:8052/refresh_token \
  -H "Authorization: Bearer <your_current_token>"

Limitation du debit

Les points de terminaison d’authentification sont limites a 10 tentatives par IP par fenetre de 5 minutes.


Points de terminaison de reception des donnees

Ces points de terminaison recoivent les donnees de surveillance provenant des sondes Monitor et des Discovery Agents. Ils sont authentifies avec des jetons JWT de composant.

EUM (End User Monitoring)


curl -k -X POST https://192.168.1.100:8052/integrator/data2integrator \
  -H "Authorization: Bearer <component_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Login Scenario",
    "shortname": "login_scenario",
    "probe": "probe1",
    "monType": "eum",
    "timestampEpoch": 1728565200,
    "hostname": "app.example.com",
    "status": "NORMAL",
    "statusInt": "0",
    "location": "Paris",
    "value": 125.5,
    "transactions": {"Login": 45.2, "Dashboard": 80.3},
    "alerting": "true",
    "emailOnF": true,
    "emailR": "ops@example.com"
  }'

Tous les points de terminaison de reception des donnees

Point de terminaison Type de moniteur
POST /integrator/data2integrator EUM (scenarios Selenium)
POST /integrator/data2integratorApp Moniteurs d’application
POST /integrator/data2integratorApi Moniteurs API
POST /integrator/data2integratorUrl Moniteurs URL/HTTP
POST /integrator/data2integratorTcp Moniteurs de port TCP
POST /integrator/data2integratorPing Moniteurs Ping ICMP
POST /integrator/data2integratorNslookup Moniteurs de recherche DNS
POST /integrator/db/data2integrator2 Moniteurs de requetes base de donnees
POST /integrator/sys/data2integrator2 Moniteurs de metriques systeme
POST /integrator/data2integratorDisco Metriques Discovery Agent

Champs communs du contenu

Champ Type Description
name string Nom d’affichage du moniteur
shortname string Identifiant unique du moniteur
probe string Nom de la sonde source
monType string Type de moniteur : eum, app, api, url, tcp, ping, nslookup, db, sys, disco
timestampEpoch int64 Horodatage Unix (secondes)
hostname string Nom d’hote cible
status string Statut : NORMAL, MINOR, MAJOR, CRITICAL, TIMEOUT, EXCEPTION, ERROR
statusInt string Code de statut : 0=OK, 1=MINOR, 2=MAJOR, 3=CRITICAL, 4=CONFIG, 5=TIMEOUT, 6=EXCEPTION
location string Emplacement de la sonde
value float64 Temps de reponse en millisecondes
alerting string "true" pour activer les alertes
resSC string "status_has_changed" ou "notifyafter"
emailR string Destinataires des emails (separes par des virgules)
emailOnF / emailOnSC bool Alerte en cas d’echec / changement de statut
slackOnF / slackOnSC bool Declencheurs d’alerte Slack
teamsOnF / teamsOnSC bool Declencheurs d’alerte Teams
pdOnF / pdOnSC bool Declencheurs d’alerte PagerDuty

Points de terminaison d’interrogation des donnees

Ces points de terminaison sont utilises par les integrations en mode pull (par ex. Zabbix) pour recuperer les donnees de surveillance mises en cache.

Obtenir toutes les valeurs d’un bucket


curl -k -X GET https://192.168.1.100:8052/integrator/data/allV \
  -H "Authorization: Bearer <token>"

Obtenir toutes les cles


curl -k -X GET https://192.168.1.100:8052/integrator/data/allK \
  -H "Authorization: Bearer <token>"

Obtenir toutes les paires cle-valeur


curl -k -X GET https://192.168.1.100:8052/integrator/data/allKV \
  -H "Authorization: Bearer <token>"

Obtenir les valeurs par motif


curl -k -X GET "https://192.168.1.100:8052/integrator/data/allVPattern?pattern=web" \
  -H "Authorization: Bearer <token>"

Obtenir une cle specifique


curl -k -X GET https://192.168.1.100:8052/v1/db/event/bucket/data/key/mymonitor \
  -H "Authorization: Bearer <token>"

Interroger les evenements par tags/applications


curl -k -X POST https://192.168.1.100:8052/integrator/events \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": "production,web",
    "apps": "myapp"
  }'


Gestion des parametres

Obtenir les parametres actuels


curl -k -X GET https://192.168.1.100:8052/api/setting \
  -H "Authorization: Bearer <token>"

Mettre a jour les parametres


curl -k -X PATCH https://192.168.1.100:8052/api/updateSetting \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "logLevel": "info",
    "nbworker": "8",
    "queuesize": "20000",
    "influxDBEnabled": "true",
    "influxDBVersion": "2.x",
    "influxDBServer": "influxdb.example.com",
    "influxDBPort": "8086",
    "influxDBOrg": "myorg",
    "influxDBBucket": "mugnsoft",
    "influxDBToken": "my-token"
  }'

Tester la connectivite d’une integration


curl -k -X POST https://192.168.1.100:8052/testIntegration \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "influxdb"
  }'

Teste la connexion vers une cible d’integration configuree. Types pris en charge : influxdb, splunk, elastic, kafka, zabbix, canopsis.


Gestion des utilisateurs

Lister les utilisateurs


curl -k -X GET https://192.168.1.100:8052/api/users \
  -H "Authorization: Bearer <token>"

Creer un utilisateur


curl -k -X POST https://192.168.1.100:8052/api/users \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "operator",
    "password": "securepass",
    "fullname": "Ops Team",
    "email": "ops@example.com",
    "group": "admin",
    "enabled": "true"
  }'

Mettre a jour un utilisateur


curl -k -X PATCH https://192.168.1.100:8052/api/users \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "operator",
    "group": "user"
  }'

Supprimer un utilisateur


curl -k -X DELETE https://192.168.1.100:8052/api/users/operator \
  -H "Authorization: Bearer <token>"


Systeme et sante

Verification de sante


curl -k https://192.168.1.100:8052/ping

Reponse :


{
  "message": "pong"
}

Aucune authentification requise.

Temps de fonctionnement


curl -k -X GET https://192.168.1.100:8052/uptime \
  -H "Authorization: Bearer <token>"

Metriques systeme


curl -k -X GET https://192.168.1.100:8052/api/metrics \
  -H "Authorization: Bearer <token>"

Retourne les metriques actuelles de CPU, memoire et charge moyenne.

Graphique des metriques systeme


curl -k -X GET "https://192.168.1.100:8052/api/reportSysMetricsGraph/1728565200000/1728651600000" \
  -H "Authorization: Bearer <token>"

Retourne l’historique des metriques systeme pour la creation de graphiques.


Operations sur la base de donnees

Sauvegarder la base de donnees


curl -k -X POST https://192.168.1.100:8052/backupDatabase \
  -H "Authorization: Bearer <token>"

Reinitialiser la base de donnees


curl -k -X POST https://192.168.1.100:8052/reinitDatabase \
  -H "Authorization: Bearer <token>"

Avertissement : La reinitialisation de la base de donnees supprimera toutes les donnees stockees, y compris les resultats de surveillance mis en cache et la configuration. Cette action est irreversible. Effectuez une sauvegarde au prealable.

Gestion des certificats

Recharger les certificats


curl -k -X GET https://192.168.1.100:8052/reloadCertificates \
  -H "Authorization: Bearer <token>"

Recharge les certificats TLS depuis le repertoire config/ssl/ sans redemarrer le service.


Documentation Swagger

La documentation interactive de l’API est disponible via l’interface Swagger :

Documentation Swagger de l'API Integrator

Accedez a l’interface Swagger a l’adresse : https://<integrator-ip>:8052/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 (administrateur requis)
404 Not Found Ressource introuvable
429 Too Many Requests Limite de debit depassee (points de terminaison d’authentification)
500 Internal Server Error Erreur serveur

Traductions