diff --git a/HowtoHaproxy.md b/HowtoHaproxy.md index d91903b1..4d1fba4d 100644 --- a/HowtoHaproxy.md +++ b/HowtoHaproxy.md @@ -580,7 +580,49 @@ C'est pourquoi il peut être important de combiner plusieurs mots clés dans le 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. +### Agent-check sur la surveillance de l'espace disque +On peux faire un agent check avec xinetd comme vu plus haut et le script `diskchk.sh` qui permet de surveillé l'espace disque, exemple avec la partition `/var` : + +~~~bash +#!/bin/bash + +# This variable check current disk space on /var partition in percentage +partition="/var" +disk_space=$(/usr/lib/nagios/plugins/check_disk -c 5% -K 5% -p "$partition" | awk '{ print $9 }' | tr -d -c '0-9') +# This variable is maximum percentage on disk space on /var partition +disk_space_max="5" + +if [ "$disk_space" -gt "$disk_space_max" ]; then + echo "ready" +else + echo "drain" +fi +exit 0 +~~~ + +Pour utilisé ce script il faut au préalable que le **check nrpe** `check_disk` soit installé sur la machine que l'on veux surveillé. + +La variable `disk_space_max` indique en pourcentage l'espace disque restant à partir duquel le script retournera `drain`. + +Et un exemple de configuration haproxy pour le port 25 en mode tcp : + +~~~ +frontend mail + bind :25 + mode tcp + option tcplog + default_backend mail + +backend mail + balance roundrobin + default-server check agent-check agent-inter 5s + server mail00 192.168.0.1:25 inter 10000 rise 2 fall 5 check weight 50 agent-port 9999 + server mail01 192.168.0.2:25 inter 10000 rise 2 fall 5 check weight 50 agent-port 9999 +~~~ + +Dans ce cas le serveur mis en `drain` par le script, le serveur concerné n'envera plus de trafic, mais les mails en cours d'envoir ne sont pas coupés. + ### HTTP basic authentication Pour mettre en place une authentification HTTP basique au niveau d'HAProxy, définir dans la section globale une liste d'utilisateurs, soit avec un mot de passe en clair, soit avec un mot de passe chiffré :