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 -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 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.