2 votes

HAProxy peut-il générer un identifiant de connexion unique basé sur UUID ?

J'ai un équilibreur de charge HAProxy que j'aimerais utiliser pour marquer les demandes avec un identifiant unique (en-tête X-Unique-ID) afin de pouvoir corréler les événements entre les journaux de plusieurs systèmes.

HAProxy dispose d'une fonctionnalité permettant de faire cela avec la fonction unique-id-format directive. La documentation explique que cette directive n'utilise que la syntaxe du système de journalisation et suggère d'utiliser des éléments tels que les adresses IP du client et du serveur, les horodatages, etc. pour construire quelque chose qui sera probablement unique.

Je me demande s'il est possible de générer un UUID (ou quelque chose de similaire) aléatoire (version 4) pour chaque demande plutôt que d'en générer un avec des informations client potentiellement sensibles comme l'adresse IP et l'heure de la demande.

5voto

Ward Points 9920

À partir de HAProxy 2.0 uuid() est disponible.
Cela devrait donc faire exactement ce dont vous avez besoin :

unique-id-format %[uuid()]
unique-id-header X-Unique-ID

L'un des avantages de l'utilisation de unique-id-header au lieu de http-request set-header est que vous pouvez le définir dans defaults section.

0voto

c4f4t0r Points 5014

Dans votre frontend, vous pourriez utiliser quelque chose comme ceci :

http-request set-header TraceId %[rand,hex,bytes(8,8),lower]%[rand,hex,bytes(8,8),lower]%[rand,hex,bytes(8,8),lower]

rand : Renvoie un nombre entier aléatoire compris entre 0 et les valeurs possibles. Si la valeur n'est pas spécifiée, la valeur par défaut est 2^32 (4294967295).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X