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
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 ...
Anatomie de la configuration HAProxy, Clustering et Haute Disponibilité
Comprendre la structure d'un fichier haproxy.cfg : sections Global, Defaults, Frontend, Backend e...
Maîtriser les ACLs dans HAProxy
Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...
Sécurité et SSL avec HAProxy
Guide complet sur la terminaison SSL, le chiffrement des flux et la sécurisation du serveur HAProxy.
Monitoring et Statistiques dans HAProxy
Comment activer le tableau de bord de statistiques natif et exposer des métriques pour Prometheus.
Persistance de session (Stickiness)
Comprendre comment garantir qu'un utilisateur reste sur le même serveur backend durant toute sa s...
Health Checks et Haute Disponibilité
Comment HAProxy détecte les pannes et gère le basculement automatique vers les serveurs sains.
Installation de HAProxy
Guide complet pour installer HAProxy sur les serveurs Linux (Debian, RedHat) et via des environne...
L'écosystème HAProxy : De l'Open Source à HAProxy One
Comprendre les différences, avantages et interconnexions entre HAProxy OSS, Enterprise, Fusion, E...