RousselTMLEARNING

Article · HAProxy : de la découverte à l'expertise

Visualiser son infrastructure : Topology Visualizer

1. Qu'est-ce que HAProxy Topology Visualizer ? #

Un outil indispensable pour comprendre la logique de routage de votre load balancer.

Le concept #

Fonctionnement de HAProxy Topology Visualizer

HAProxy Topology Visualizer est un produit développé et maintenu par RousselTM qui analyse vos fichiers de configuration haproxy.cfg pour générer une représentation graphique. Il permet de voir instantanément les relations entre les Frontends, les Backends, les règles ACL et les serveurs finaux.

Pourquoi l'utiliser ? #

  • Audit de configuration : Identifier des backends orphelins ou des erreurs de routage.
  • Documentation : Générer des schémas d'architecture à jour pour vos équipes.
  • Onboarding : Aider les nouveaux collaborateurs à comprendre le flux de trafic sans lire des milliers de lignes de code.

2. Comment déployer l'outil ? #

Le déploiement s'effectue via Docker Compose à partir du dépôt officiel de la formation.

Pré-requis #

  • Disposer de Docker installé sur votre machine.
  • Avoir des droits suffisants pour pouvoir déployer un conteneur.
  • Le réseau haproxy_net doit être présent. Si ce n'est pas le cas, créez-le manuellement :
    docker network create haproxy_net

Procédure de déploiement #

Exécutez les commandes suivantes dans votre terminal :

# 1. Cloner le repo
git clone https://github.com/rousseltm/haproxy-formation.git

# 2. Accéder au dossier
cd haproxy-formation

# 3. Lancer le déploiement
docker compose -f compose-parser.yaml up -d

Accès à l'interface #

Une fois le conteneur démarré, vous avez deux méthodes pour accéder à l'outil :

  • Option 1 : Routage via HAProxy (Recommandé)
    Utilisez votre instance HAProxy (ex: port 8404) pour rediriger le flux vers le service parser. Pour éviter tout conflit avec l'interface de statistiques, assurez-vous que l'URI des stats est spécifique (ex: /stats) et utilisez la directive use_backend :
    # Dans votre section listen ou frontend
    stats uri /stats
    use_backend parser_backend if { path_beg /parser }
    
    backend parser_backend
        http-request set-path %[path,regsub(^/parser,/)]
        server visualizer_srv parser:80 check
  • Option 2 : Exposition directe de port
    Modifiez le fichier compose-parser.yaml pour exposer le port 80 du conteneur sur un port de votre machine (ex: 8555) :
    services:
      parser:
        ports:
          - "8555:80"

3. Comment l'utiliser ? #

Trois étapes simples pour visualiser votre topologie.

Importation de la configuration #

Sur l'interface web, sélectionnez simplement le dossier contenant vos fichiers de configuration HAProxy. L'outil analysera l'ensemble des fichiers pour reconstituer la topologie complète. Si vous souhaitez corréler la vue avec l'état réel de votre noeud, vous pouvez également renseigner les informations d'accès aux statistiques (URL, utilisateur et mot de passe).

Analyse du graphe #

L'outil génère un diagramme dirigé :

  • Nœuds Frontends : Points d'entrée avec leurs ports d'écoute (bind).
  • Arêtes (Lignes) : Représentent les décisions de routage (ACL, use_backend).
  • Nœuds Backends : Groupes de serveurs avec leurs algorithmes de balance.

Filtrage et interaction #

La plupart des versions permettent de cliquer sur un composant pour mettre en évidence son chemin spécifique, ce qui est extrêmement utile pour isoler le flux d'une application précise dans un cluster mutualisé.

4. Limites et bonnes pratiques #

Ce qu'il faut savoir avant de l'utiliser en production.

Sécurité des données #

ATTENTION : Ne téléversez jamais votre configuration sur des versions en ligne publiques si elle contient des secrets, des mots de passe ou des adresses IP sensibles. Utilisez toujours une instance locale ou conteneurisée.

Versions de HAProxy #

L'outil supporte généralement les directives standards jusqu'à la version 3.x. Certaines directives très récentes ou spécifiques à la version Enterprise pourraient ne pas être rendues graphiquement, mais l'essentiel de la topologie restera valide.

📄 Visualiser votre infrastructure avec HAProxy Topology Visualizer →

Mon suivi

  • ⏱ Durée estimée : ≈ 7 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Questions sur cette leçon

Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.

Poser une question sur cette leçon →

Glossaire de la formation

ACL (Access Control List)

Liste de contrôle d'accès définissant les permissions accordées sur des ressources. Dans HAProxy, les ACL sont des conditions flexibles permettant de ...

Backend

Section de la configuration HAProxy définissant un pool de serveurs cibles vers lesquels le trafic est redirigé. C'est ici que l'on configure l'algori...

Frontend

Section de la configuration HAProxy qui définit comment les requêtes sont reçues du côté client (adresse IP, port, certificats SSL) avant d'être envoy...

GSLB (Global Server Load Balancing)

Technique de répartition de charge à l'échelle mondiale, utilisant généralement le DNS pour diriger les utilisateurs vers le datacenter le plus proche...

HAProxy

Logiciel de load balancing et de proxying haute performance pour TCP et HTTP. HAProxy est le standard de l'industrie pour la gestion de trafic à très ...

Health Check

Mécanisme automatisé permettant au load balancer de tester périodiquement la disponibilité des serveurs afin d'exclure temporairement ceux qui sont en...

Load Balancing

Dispositif qui distribue le trafic applicatif sur un ensemble de serveurs afin d'optimiser l'usage des ressources, de minimiser les temps de réponse e...

SSL Offloading

Processus consistant à déléguer le déchiffrement du trafic HTTPS au load balancer pour libérer de la puissance CPU sur les serveurs d'application.

Stickiness

Mécanisme garantissant qu'un utilisateur est systématiquement redirigé vers le même serveur backend durant toute sa session, indispensable pour les ap...

Slowloris

Type d'attaque par déni de service (DoS) qui consiste à ouvrir de nombreuses connexions HTTP et à les maintenir ouvertes le plus longtemps possible en...

DoS / DDoS

Attaque visant à rendre un service indisponible en submergeant le serveur ou le réseau de trafic. On parle de DDoS (Distributed Denial of Service) lor...

SSL / TLS

Protocoles de sécurisation des échanges sur internet. TLS (Transport Layer Security) est le successeur moderne de SSL (Secure Sockets Layer). Ils perm...

Articles recommandés

Le Load Balancing : Principes, Algorithmes et Cas d'usage

Découvrez le fonctionnement de la répartition de charge (Load Balancing), son rôle dans la haute ...

Monitoring et Statistiques dans HAProxy

Comment activer le tableau de bord de statistiques natif et exposer des métriques pour Prometheus.

HAProxy dans Kubernetes : L'Ingress Controller Haute Performance

Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...

HAProxy comme Ingress Controller Kubernetes : Le Guide de Production

Découvrez comment utiliser HAProxy comme Ingress Controller dans Kubernetes. Architecture Direct-...

Bonnes Pratiques HAProxy : Optimisation, Sécurité et Haute Disponibilité

Découvrez les meilleures pratiques pour configurer HAProxy afin d'assurer performance, sécurité e...

Maîtriser les ACLs dans HAProxy : Le Guide Complet

Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...

HAProxy : Guide détaillé des directives de configuration

Une exploration complète des directives essentielles de HAProxy : de bind à http-check, apprenez ...

Maîtriser les ACLs dans HAProxy

Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...

Anatomie de la configuration HAProxy, Clustering et Haute Disponibilité

Comprendre la structure d'un fichier haproxy.cfg : sections global, defaults, frontend (haute per...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !