PmaControl logo PmaControl
  • Strona główna
  • Strona główna
    • PmaControl PmaControl
    • PmaControl PmaControl
    • PmaControl PmaControl
    • PmaControl PmaControl
    • Agenci AI Agenci AI
    Klienci
    • MariaDB 30 artykułów
    • MySQL 10 artykułów
    • Galera Cluster 6 artykułów
    • MaxScale 3 artykuły
    • ProxySQL 2 artykuły
    • Amazon Aurora MySQL 0 artykuły
    • Azure Database 0 artykuły
    • ClickHouse 0 artykuły
    • GCP CloudSQL 0 artykuły
    • Percona Server 0 artykuły
    • SingleStore 0 artykuły
    • TiDB 0 artykuły
    • Vitess 0 artykuły
    Bazy danych
    • Rozwiązania Rozwiązania
    • Observabilité SQL Rozwiązania
    • Haute disponibilité Rozwiązania
    • Disaster Recovery Rozwiązania
    • Sécurité & conformité Wsparcie 24×7
    • Migration & upgrade Wsparcie 24×7
  • PmaControl
  • Cennik
    • PmaControl Zasoby
    • Agenci AI Zasoby
    • Zasoby Zasoby
    • Zasoby Zasoby
    • Dokumentacja Dokumentacja
    Blog
    • Observabilité SQL Obszary ekspertyzy
    • Haute disponibilité Rozwiązania
    • Sécurité & conformité Obszary ekspertyzy
    • Disaster Recovery Rozwiązania
    • Performance & optimisation Obserwowalność SQL
    • Migration & upgrade Obserwowalność SQL
    Wydajność i optymalizacja
    • Szybkie linki Szybkie linki
    • Szybkie linki Szybkie linki
    • Rozwiązania Rozwiązania
    • Szybkie linki Szybkie linki
  • Rozwiązania
  • Szybkie linki
Szybkie linki
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Powrót do bloga

Dot3: Mapowanie złożonej topologii MariaDB / MySQL

Powrót do bloga March 21, 2026 Powrót do bloga Aurélien LEQUOY
pmacontrol topology graphviz proxysql architecture
Powrót do bloga X LinkedIn Facebook Email PDF
Dot3: Mapowanie złożonej topologii MariaDB / MySQL

Problem: niewidoczne topologie

Masz 40 instancji MariaDB / MySQL. Niektóre są w replikacji Master-Slave. Inne w Master-Master. Klaster Galera z 5 węzłami. Dwa ProxySQL w trybie peer-to-peer. MaxScale do routingu odczytów. Tunele SSH dla dostępów inter-DC. Aliasy DNS maskujące rzeczywiste adresy IP.

Proste pytanie: czy możesz narysować kompletną architekturę w mniej niż 5 minut?

W większości organizacji odpowiedź brzmi nie. Topologia żyje w przestarzałym wiki, nigdy nieaktualizowanym Confluence lub w głowie starszego DBA, który jest na urlopie.

Dot3 rozwiązuje ten problem.

Czym jest Dot3?

Dot3 to silnik kartografii topologicznej zintegrowany z PmaControl. Używa Graphviz (języka DOT) do generowania wizualnych reprezentacji architektur baz danych.

Nazwa "Dot3" pochodzi od trzeciej iteracji silnika. Dwie pierwsze wersje używały uproszczonych podejść (listy połączeń, statyczne drzewa). Dot3 wprowadza dynamiczne rozwiązywanie endpointów i kontekstowe renderowanie.

Rozwiązywanie endpointów

Pierwszym krokiem Dot3 jest zrozumienie, co kryje się za każdym endpointem skonfigurowanym w PmaControl. Endpoint może być:

1. Bezpośrednie połączenie MariaDB / MySQL

Najprostszy przypadek. Dot3 łączy się z portem 3306 (lub innym), wykonuje SHOW VARIABLES i SHOW SLAVE STATUS / SHOW REPLICA STATUS, i identyfikuje rolę serwera (master, slave, standalone).

2. ProxySQL

Dot3 wykrywa ProxySQL przez obecność portu administracyjnego (domyślnie 6032). Łącząc się z portem admin, pobiera:

  • runtime_mysql_servers: lista backendów z ich hostgroup
  • runtime_mysql_replication_hostgroups: mapowanie writer/reader
  • proxysql_servers: peery ProxySQL (dla klastrowania)

Pozwala to śledzić połączenia między ProxySQL a jego backendami oraz między peerami ProxySQL.

3. MaxScale

MaxScale jest wykrywany przez jego REST API (port 8989). Dot3 odpytuje /v1/servers i /v1/services by odtworzyć topologię backendów i usług routingu.

4. VIP i adresy pływające

Gdy endpoint to VIP (Virtual IP zarządzany przez keepalived lub Pacemaker), Dot3 rozwiązuje adres na aktywny serwer fizyczny. VIP jest reprezentowany jako węzeł pośredni z odrębnym stylem wizualnym (romb zamiast prostokąta).

5. Tunele SSH

Dla architektur multi-DC z tunelami SSH, Dot3 śledzi pełną ścieżkę: klient -> tunel SSH -> rzeczywisty endpoint. Tunel pojawia się jako połączenie przerywane na grafie.

6. Aliasy DNS

Dot3 rozwiązuje aliasy DNS (CNAME) i wyświetla zarówno nazwę aliasu, jak i rzeczywistą nazwę hosta, unikając zamieszania, gdy ten sam serwer jest odnoszony pod wieloma nazwami.

Renderowanie

Po rozwiązaniu wszystkich endpointów Dot3 generuje graf DOT, który jest kompilowany przez Graphviz do SVG (lub PNG). Oto jak różne topologie są reprezentowane.

Replikacja 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"]

Strzałki replikacji idą od mastera do slave'ów (kierunek danych). Opóźnienie replikacji jest wyświetlane na krawędzi, gdy jest znaczące.

Replikacja Master-Master

Replikacje dwukierunkowe są reprezentowane podwójnymi strzałkami. Dot3 wykrywa ten przypadek, gdy oba serwery identyfikują się nawzajem jako master przez SHOW SLAVE STATUS.

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

Klaster Galera

Węzły Galera są grupowane w podgrafie z ramką przerywaną. Każdy węzeł jest kolorowany według stanu wsrep:

  • Synced: zielony
  • Donor/Desynced: pomarańczowy
  • Joining: żółty
  • Disconnected: czerwony
subgraph cluster_galera_prod {
  label="Galera Prod (3 nodes)"
  style=dashed
  galera1 [color=green]
  galera2 [color=green]
  galera3 [color=green]
}

ProxySQL peer-to-peer

Połączenia między peerami ProxySQL są rysowane podwójnymi strzałkami przerywanymi, wizualnie odróżnionymi od połączeń replikacji MariaDB / MySQL.

Bug ikon PNG w SVG

Podczas rozwoju Dot3 chcieliśmy zintegrować ikony do wizualnej identyfikacji typów węzłów: ikona MariaDB, ikona ProxySQL, ikona MaxScale.

Pierwsza implementacja używała ikon PNG osadzonych w SVG przez tagi <image> z href w base64. Działało to w przeglądarkach, ale powodowało kilka problemów:

  1. Graphviz nie obsługuje prawidłowo osadzonych PNG w wyjściu SVG — pozycje były przesunięte
  2. Renderowanie było rozmyte na ekranach Retina/HiDPI
  3. Rozmiar plików SVG eksplodował z powodu base64

Rozwiązanie: zastąpienie wszystkich ikon PNG natywnymi ikonami SVG. Odtworzyliśmy proxysql.svg, maxscale.svg i inne w czystym SVG wektorowym. Rezultat:

  • Ostre renderowanie w każdej rozdzielczości
  • Prawidłowe pozycjonowanie w Graphviz
  • Rozmiar plików zmniejszony 5-krotnie

Konkretny przykład

Oto rzeczywista (zanonimizowana) topologia wygenerowana przez Dot3 dla klienta e-commerce:

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

Ten schemat jest generowany automatycznie przez Dot3. Żadna ręczna konfiguracja layoutu. Dot3 odkrywa topologię, rozwiązuje endpointy, a Graphviz zajmuje się rozmieszczeniem.

Integracja z PmaControl

W interfejsie PmaControl mapa topologiczna jest dostępna przez zakładkę Topology. Odświeża się automatycznie i odzwierciedla stan w czasie rzeczywistym:

  • Slave z opóźnieniem replikacji pojawia się z czerwoną krawędzią
  • Węzeł Galera w stanie Donor zmienia kolor
  • ProxySQL tracący backend pokazuje go wyszarzonym

Wygenerowany SVG jest interaktywny: kliknięcie na węzeł otwiera kartę szczegółową serwera w PmaControl.

Ograniczenia i planowane ewolucje

Dot3 działa dobrze dla topologii od 1 do 100 węzłów. Powyżej layout Graphviz może stać się chaotyczny. Planowane ewolucje:

  1. Filtrowanie po tagach: wyświetlanie tylko podzbioru topologii (po środowisku, kliencie, DC)
  2. Tryb diff: porównywanie dwóch snapshotów topologicznych do wizualizacji zmian
  3. Eksport Terraform: generowanie opisu Infrastructure-as-Code odkrytej topologii

Podsumowanie

Topologia infrastruktury MariaDB / MySQL nie musi być tajemnicą udokumentowaną w przestarzałym wiki. Dot3 ją odkrywa, rozwiązuje i rysuje automatycznie.

To różnica między "wydaje mi się, że replikacja idzie do tego serwera" a "widzę, że replikacja idzie do tego serwera, z 3 sekundami opóźnienia, od 14 dni".

Powrót do bloga X LinkedIn Facebook Email PDF
← Powrót do bloga

Opublikowano (0)

Nieprawidłowy adres e-mail.

Autor

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Platforma eksploatacji SQL GitHub Platforma eksploatacji SQL
Platforma eksploatacji SQL © 2014-2026 PmaControl — 68Koncept