infos additionnelles sur le check d'agent

This commit is contained in:
jlecour 2022-10-20 16:50:42 +02:00
parent ca423771c4
commit 656bc17ec5

View file

@ -457,9 +457,10 @@ frontend fe_www
backend be_www backend be_www
balance roundrobin balance roundrobin
option httpchk OPTIONS * option httpchk OPTIONS *
server www01 192.0.2.1:80 check agent-check agent-inter 5s agent-addr 192.0.2.1 agent-port 9999 default-server check agent-check agent-inter 5s
server www02 192.0.2.2:80 check agent-check agent-inter 5s agent-addr 192.0.2.2 agent-port 9999 server www01 192.0.2.1:80 agent-port 9999
server www03 192.0.2.3:80 check agent-check agent-inter 5s agent-addr 192.0.2.3 agent-port 9999 server www02 192.0.2.2:80 agent-port 9999
server www03 192.0.2.3:80 agent-port 9999
~~~ ~~~
Un moyen simple (inspiré de ce [blog post](https://icicimov.github.io/blog/server/HAProxy-dynamically-adjust-server-weight-using-external-agent/)) est de créer un script qui sera déclenché par **xinetd**. Un moyen simple (inspiré de ce [blog post](https://icicimov.github.io/blog/server/HAProxy-dynamically-adjust-server-weight-using-external-agent/)) est de créer un script qui sera déclenché par **xinetd**.
@ -521,6 +522,12 @@ Les valeurs renvoyées peuvent être les suivantes :
- La chaîne `maxconn:` suivie d'un entier pour spécifier le nombre max de connexions - La chaîne `maxconn:` suivie d'un entier pour spécifier le nombre max de connexions
- Les mot `ready`, `drain`, `maint`, `down` et `up` pour modifier les états - Les mot `ready`, `drain`, `maint`, `down` et `up` pour modifier les états
Il faut bien avoir en tête qu'il y a 2 types d'états :
* "administrative" : ready (prêt), drain (ne plus envoyer de trafic, sans couper l'existant), maint (maintenance, plus de trafic du tout)
* "operative" : up (actif), down/failed/stopped (inactif)
C'est pourquoi il peut être important de combiner plusieurs mots clés dans le résultat de l'agent, en particulier `up ready` pour assurer que les 2 états sont bien remis.
On notera que seuls les algorithmes d'équilibrage dynamiques (roundrobin et leastconn) permettront l'ajustement du poids via `agent-check`. Dans le cas de l'utilisation d'un algorithme statique comme `source` par exemple, seules des opérations telles que le passage en DRAIN, DOWN, MAINT et UP seront possibles. On notera que seuls les algorithmes d'équilibrage dynamiques (roundrobin et leastconn) permettront l'ajustement du poids via `agent-check`. Dans le cas de l'utilisation d'un algorithme statique comme `source` par exemple, seules des opérations telles que le passage en DRAIN, DOWN, MAINT et UP seront possibles.