1. Qu'est-ce que HAProxy Topology Visualizer ? #
Un outil indispensable pour comprendre la logique de routage de votre load balancer.
Le concept #
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_netdoit ê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 -dAccè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 serviceparser. Pour éviter tout conflit avec l'interface de statistiques, assurez-vous que l'URI des stats est spécifique (ex:/stats) et utilisez la directiveuse_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 fichiercompose-parser.yamlpour 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.
Mon suivi
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.
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...