Vue d'ensemble de la plateforme

Mugnsoft est une plateforme distribuee de supervision de la performance applicative (APM) construite a partir de quatre composants principaux qui collaborent pour superviser, alerter et s’integrer aux systemes tiers.

Les quatre composants principaux

La plateforme Mugnsoft est composee de quatre services independants et autonomes. Chacun s’execute en tant que service systeme natif (Windows ou Linux) et communique via HTTPS avec authentification TLS mutuelle (mTLS).

Composant Port par defaut Role
Webserver 8050 (API) / 9090 (WebUI) Hub de gestion central, interface web et passerelle API
Monitor 8051 Sonde de supervision distribuee qui execute les controles
Integrator 8052 Hub d’agregation de donnees et moteur de transfert vers les tiers
Discovery Agent 8070 Collecteur de metriques systeme et processus, decouverte de services

Roles des composants

Webserver (Gestion centralisee)

Le Webserver est le cerveau de la plateforme. Il fournit :

  • Interface Web pour gerer tous les moniteurs, composants, utilisateurs, rapports et plages de maintenance
  • API REST (documentee via Swagger) pour l’acces programmatique
  • Orchestration des composants – enregistre et gere tous les composants distants
  • Visualisation des donnees – tableaux de bord, graphiques, cartes thermiques, vues chronologiques
  • Generation de rapports – rapports de performance planifies et a la demande
  • Gestion des utilisateurs – controle d’acces base sur les roles (Admin, Utilisateur, Lecteur) avec portee par tags
  • Integration SMTP, Slack, GitLab et LDAP au niveau de la plateforme

Le Webserver n’execute pas les moniteurs lui-meme. Il delegue l’execution aux sondes Monitor enregistrees et recupere les resultats aupres d’elles.

Monitor (Sonde de supervision)

Le Monitor est une sonde distribuee qui execute les controles de supervision. Vous pouvez deployer plusieurs instances de Monitor a differents emplacements pour une supervision distribuee. Chaque Monitor prend en charge :

  • 9 types de moniteurs : Interface Web (Selenium), URL HTTP/HTTPS, API REST, Port TCP, Ping ICMP, Recherche DNS, SNMP, Requete de base de donnees, Metriques systeme
  • Planification basee sur cron avec des intervalles allant de 1 minute a des expressions cron personnalisees
  • Automatisation du navigateur via Selenium WebDriver (Chrome, Firefox, Edge)
  • Seuils automatiques utilisant l’analyse statistique des donnees historiques
  • Stockage local dans le magasin cle-valeur integre (aucune base de donnees externe requise)
  • Alertes directes via Email, Slack, Microsoft Teams et PagerDuty
  • Integration Vault pour la gestion des secrets (HashiCorp, Azure Key Vault, CyberArk)

Integrator (Hub de donnees)

L'Integrator est un moteur de transfert de donnees a haut debit qui recoit les resultats de supervision et les distribue vers des systemes tiers :

  • Integrations en mode push : InfluxDB (v1/v2/v3), Splunk HEC, Elasticsearch, Kafka, Canopsis
  • Integrations en mode pull : Zabbix (interroge le magasin KV de l’Integrator)
  • Export de donnees : Sortie en fichiers CSV et JSON
  • Architecture a pool de workers pour un traitement a haut debit (workers et taille de file d’attente configurables)
  • Alertes multi-canaux : Email, Slack, Teams, PagerDuty, scripts personnalises
  • Pool de connexions pour toutes les integrations sortantes

Discovery Agent (Decouverte d’infrastructure)

Le Discovery Agent supervise l’hote sur lequel il s’execute et decouvre les services :

  • Metriques systeme : CPU, memoire, charge moyenne, utilisation du systeme de fichiers, sockets TCP, attente I/O
  • Supervision des processus : CPU par processus, memoire, swap, I/O, trafic reseau, threads, descripteurs de fichiers
  • Decouverte reseau : capture de paquets (pcap) pour l’analyse du trafic, cartographie des connexions
  • Decouverte de services : correspondance par nom de processus, supervision de ports
  • Alertes basees sur des seuils : seuils fixes ou calcules automatiquement par metrique
  • Topologie reseau : generation de graphes au format Cytoscape pour la visualisation du reseau

Diagramme d’architecture de haut niveau

graph TD User["👤 User / Browser"] WS["Webserver
API :8050 | WebUI :9090"] MON1["Monitor Probe 1
:8051"] MON2["Monitor Probe 2
:8051"] INT["Integrator
:8052"] DA["Discovery Agent
:8070"] INFLUX["InfluxDB"] SPLUNK["Splunk"] ELASTIC["Elasticsearch"] KAFKA["Kafka"] ZABBIX["Zabbix"] User -->|"HTTPS"| WS WS <-->|"mTLS"| MON1 WS <-->|"mTLS"| MON2 WS <-->|"mTLS"| INT WS <-->|"mTLS"| DA MON1 -->|"push results"| INT MON2 -->|"push results"| INT DA -->|"push metrics"| INT INT -->|"push"| INFLUX INT -->|"push"| SPLUNK INT -->|"push"| ELASTIC INT -->|"push"| KAFKA ZABBIX -->|"pull"| INT style WS fill:#4a90d9,stroke:#2c5ea0,color:#fff style MON1 fill:#5cb85c,stroke:#3d8b3d,color:#fff style MON2 fill:#5cb85c,stroke:#3d8b3d,color:#fff style INT fill:#d9984f,stroke:#b07830,color:#fff style DA fill:#9b59b6,stroke:#7d3c98,color:#fff

Principes de conception cles

Architecture sans base de donnees

Tous les composants utilisent un magasin cle-valeur integre. Il n’y a aucune base de donnees externe a installer, configurer ou maintenir. Chaque composant gere ses propres fichiers de donnees locaux.

Auto-enregistrement

Les composants s’auto-enregistrent aupres du Webserver lors de l’installation. Pendant l’enregistrement, ils echangent des certificats TLS pour l’authentification mutuelle et envoient leur configuration pour une gestion centralisee.

Distribue par conception

Vous pouvez deployer plusieurs sondes Monitor sur differents reseaux et emplacements. Chaque sonde fonctionne de maniere independante et le Webserver agrege les resultats de toutes les sondes.

Securite en priorite

Toutes les communications inter-composants utilisent le mTLS (TLS mutuel). Les jetons d’authentification utilisent RS256 JWT avec des paires de cles RSA generees lors de l’installation. La configuration sensible est chiffree au repos a l’aide d'AES-256-GCM.

Multi-plateforme

Tous les composants sont compiles en binaires natifs uniques pour Windows et Linux, avec des optimisations specifiques a chaque plateforme (par exemple, gestion des services Windows via SCM, integration systemd sous Linux, gestion ICMP specifique a la plateforme).

Voir aussi

Traductions