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>"
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 :
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 |