PmaControl logo PmaControl
  • Accueil
  • PmaControl
    • Agents IA 13 agents on-premise
    • Nos offres Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Clients 28+ entreprises
    • FAQ 25 questions / 7 catégories
    Bases de données
    • MariaDB 30 articles
    • MySQL 10 articles
    • Galera Cluster 6 articles
    • MaxScale 3 articles
    • ProxySQL 2 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 Urgences MariaDB & MySQL
    • Observabilité SQL Monitoring, alertes, topologie
    • Haute disponibilité Réplication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, RGPD, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Nos offres
  • Ressources
    • Documentation Guides techniques & API
    • FAQ 25 questions fréquentes
    • Témoignages Retours clients & cas d'usage
    • Blog Articles & insights
    • Roadmap Fonctionnalités à venir
    Domaines d'expertise
    • Observabilité SQL Monitoring, alertes, topologie Dot3
    • Haute disponibilité Réplication, failover, Galera
    • Sécurité & conformité Audit, RGPD, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Liens rapides
    • Wiki GitHub 26 pages — install, engine, plugins
    • Code source Repository GitHub officiel
    • Support 24×7 Urgences MariaDB & MySQL
    • Réserver une démo 30 min — architecture réelle
  • Support 24×7
  • Réserver une démo
Réserver une démo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Retour au blog

Dot3 : Cartographier une Topologie MariaDB / MySQL Complexe

Publié le 21 mars 2026 Par Aurélien LEQUOY
pmacontrol topology graphviz proxysql architecture
Partager X LinkedIn Facebook Email PDF
Dot3 : Cartographier une Topologie MariaDB / MySQL Complexe

Le problème : des topologies invisibles

Vous avez 40 instances MariaDB / MySQL. Certaines sont en réplication Master-Slave. D'autres en Master-Master. Un cluster Galera de 5 noeuds. Deux ProxySQL en peer-to-peer. Un MaxScale pour le routage lecture. Des tunnels SSH pour les accès inter-DC. Des alias DNS qui masquent les IP réelles.

Question simple : pouvez-vous dessiner l'architecture complète en moins de 5 minutes ?

Dans la plupart des organisations, la réponse est non. La topologie vit dans un wiki obsolète, un Confluence jamais mis à jour, ou dans la tête du DBA senior qui est en congé.

Dot3 résout ce problème.

Qu'est-ce que Dot3 ?

Dot3 est le moteur de cartographie topologique intégré à PmaControl. Il utilise Graphviz (le langage DOT) pour générer des représentations visuelles des architectures de bases de données.

Le nom "Dot3" vient de la troisième itération du moteur. Les deux premières versions utilisaient des approches simplistes (listes de connexions, arbres statiques). Dot3 introduit la résolution dynamique des endpoints et le rendu contextuel.

Résolution des endpoints

La première étape de Dot3 est de comprendre ce qui se cache derrière chaque endpoint configuré dans PmaControl. Un endpoint peut être :

1. Connexion directe MariaDB / MySQL

Le cas le plus simple. Dot3 se connecte au port 3306 (ou autre), exécute SHOW VARIABLES et SHOW SLAVE STATUS / SHOW REPLICA STATUS, et identifie le rôle du serveur (master, slave, standalone).

2. ProxySQL

Dot3 détecte ProxySQL par la présence du port admin (6032 par défaut). En se connectant au port admin, il récupère :

  • runtime_mysql_servers : liste des backends avec leur hostgroup
  • runtime_mysql_replication_hostgroups : mapping writer/reader
  • proxysql_servers : les peers ProxySQL (pour le clustering)

Cela permet de tracer les liens entre le ProxySQL et ses backends, et entre les ProxySQL peers.

3. MaxScale

MaxScale est détecté via son API REST (port 8989). Dot3 interroge /v1/servers et /v1/services pour reconstruire la topologie des backends et des services de routage.

4. VIP et adresses flottantes

Quand un endpoint est une VIP (Virtual IP gérée par keepalived ou Pacemaker), Dot3 résout l'adresse vers le serveur physique actif. La VIP est représentée comme un noeud intermédiaire avec un style visuel distinct (losange au lieu de rectangle).

5. Tunnels SSH

Pour les architectures multi-DC avec des tunnels SSH, Dot3 trace le chemin complet : client -> tunnel SSH -> endpoint réel. Le tunnel apparaît comme une connexion pointillée dans le graphe.

6. Alias DNS

Dot3 résout les alias DNS (CNAME) et affiche à la fois le nom d'alias et le hostname réel, évitant la confusion quand un même serveur est référencé par plusieurs noms.

Le rendu

Une fois tous les endpoints résolus, Dot3 génère un graphe DOT qui est compilé par Graphviz en SVG (ou PNG). Voici comment les différentes topologies sont représentées.

Réplication Master-Slave

Master [shape=box, color=blue, label="db-master\n10.0.1.10:3306"]
Slave1 [shape=box, color=green, label="db-slave1\n10.0.1.11:3306"]
Slave2 [shape=box, color=green, label="db-slave2\n10.0.1.12:3306"]
Master -> Slave1 [label="repl"]
Master -> Slave2 [label="repl"]

Les flèches de réplication vont du master vers les slaves (sens des données). Le lag de réplication est affiché sur l'arête quand il est significatif.

Réplication Master-Master

Les réplications bidirectionnelles sont représentées avec des flèches doubles. Dot3 détecte ce cas quand les deux serveurs s'identifient mutuellement comme master via SHOW SLAVE STATUS.

Master1 -> Master2 [dir=both, label="M-M"]

Cluster Galera

Les noeuds Galera sont regroupés dans un subgraph avec un cadre en pointillés. Chaque noeud est coloré selon son état wsrep :

  • Synced : vert
  • Donor/Desynced : orange
  • Joining : jaune
  • Disconnected : rouge
subgraph cluster_galera_prod {
  label="Galera Prod (3 nodes)"
  style=dashed
  galera1 [color=green]
  galera2 [color=green]
  galera3 [color=green]
}

ProxySQL peer-to-peer

Les liens entre ProxySQL peers sont tracés avec des flèches bidirectionnelles pointillées, distinguées visuellement des liens de réplication MariaDB / MySQL.

Le bug des icones PNG dans SVG

Lors du développement de Dot3, nous avons voulu intégrer des icones pour identifier visuellement les types de noeuds : une icone MariaDB, une icone ProxySQL, une icone MaxScale.

La première implémentation utilisait des icones PNG embedées dans le SVG via des balises <image> avec un href en base64. Cela fonctionnait dans les navigateurs mais posait plusieurs problèmes :

  1. Graphviz ne supporte pas correctement les PNG embedés dans sa sortie SVG — les positions étaient décalées
  2. Le rendu était flou sur les écrans Retina/HiDPI
  3. La taille des fichiers SVG explosait à cause du base64

La solution : remplacer toutes les icones PNG par des icones SVG natives. Nous avons recréé proxysql.svg, maxscale.svg et les autres en SVG vectoriel pur. Le résultat :

  • Rendu net à toute résolution
  • Positionnement correct dans Graphviz
  • Taille des fichiers divisée par 5

Exemple concret

Voici une topologie réelle (anonymisée) générée par Dot3 pour un client e-commerce :

ProxySQL-1 ←→ ProxySQL-2          (peer-to-peer)
    ↓               ↓
  [HG10: Writer]  [HG20: Readers]
    ↓               ↓
  Master ──→ Slave-1              (réplication)
    ↓        Slave-2
    ↓        Slave-3
    ↓
  ┌─────────────────────┐
  │ Galera Cluster       │
  │ Node-1  Node-2      │        (cluster)
  │ Node-3              │
  └─────────────────────┘

Ce schéma est généré automatiquement par Dot3. Aucune configuration manuelle du layout. Dot3 découvre la topologie, résout les endpoints, et Graphviz s'occupe du placement.

Intégration dans PmaControl

Dans l'interface PmaControl, la carte topologique est accessible via l'onglet Topology. Elle se rafraîchit automatiquement et reflète l'état en temps réel :

  • Un slave en retard de réplication apparaît avec une arête rouge
  • Un noeud Galera en état Donor change de couleur
  • Un ProxySQL qui perd un backend le montre en grisé

Le SVG généré est interactif : cliquer sur un noeud ouvre la fiche détaillée du serveur dans PmaControl.

Limites et évolutions prévues

Dot3 fonctionne bien pour des topologies de 1 à 100 noeuds. Au-delà, le layout Graphviz peut devenir confus. Les évolutions prévues :

  1. Filtrage par tag : n'afficher qu'un sous-ensemble de la topologie (par environnement, par client, par DC)
  2. Mode diff : comparer deux snapshots topologiques pour visualiser les changements
  3. Export Terraform : générer une description Infrastructure-as-Code de la topologie découverte

Conclusion

La topologie d'une infrastructure MariaDB / MySQL n'a pas à être un mystère documenté dans un wiki périmé. Dot3 la découvre, la résout et la dessine automatiquement.

C'est la différence entre "je crois que la réplication va vers ce serveur" et "je vois que la réplication va vers ce serveur, avec 3 secondes de lag, depuis 14 jours".

Partager X LinkedIn Facebook Email PDF
← Retour au blog

Commentaires (0)

Aucun commentaire pour le moment.

Laisser un commentaire

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Mentions légales GitHub Contact
N'attendez pas l'incident pour comprendre votre architecture. © 2014-2026 PmaControl — 68Koncept