HAproxy
Accédez aux statuts d'un serveur HAproxy via une interface Web intégrée dans un espace dédié à l'état en temps réel de votre serveur.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Prérequis
Ce guide nécessite:
- L'accès aux statuts du serveur, comme décrit par Afficher les statuts d'un serveur.
- le serveur de répartition de charge HAproxy, comme décrit par Installer HAproxy sur Debian.
Paramètres
Renseignez le domaine d'accès aux statuts du serveur:
DOMAIN="status.domain.com"
Installation
Détectez le fichier de configuration du site de statut:
STATUS_VHOST="$(command grep -rl \
"STATUS PAGES CONFIGURATION END" \
'/etc/apache2/sites-available')"
Détectez le chemin d'installation utilisé:
if [ -n "${STATUS_VHOST}" ]; then
INSTALL_PATH="$(command grep "DocumentRoot" "${STATUS_VHOST}" \
| command sed -e 's/^[ \t]*//;s/[ \t]*$//' -e 's/[ \t]*[ \t]/ /g' \
| command cut --delimiter=" " --field=2)"
fi
Détectez l'éventuel sous-dossier des pages de statut:
if [ -n "${STATUS_VHOST}" ]; then
SUB_FOLDER="$(command grep -E "^[ \t]*Alias[ \t].*[ \t]${INSTALL_PATH}" "${STATUS_VHOST}" \
| command sed -e 's/^[ \t]*Alias[ \t]*\([^ \t]*\)[ \t].*$/\1/')"
fi
Configurez les pages de statistiques de HAproxy:
if [ -e '/etc/haproxy/haproxy.cfg' ]; then
if [ -z "$(command grep 'listen stats 127.0.0.1:18080' '/etc/haproxy/haproxy.cfg')" ]; then
echo "# HAproxy usage statistics
listen stats 127.0.0.1:18080
mode http
stats enable
stats hide-version
stats refresh 5s
stats realm Haproxy\ Statistics
stats uri ${SUB_FOLDER}/haproxy
# stats auth Username:Password" \
>> '/etc/haproxy/haproxy.cfg'
fi
fi
Activez le module proxy d'Apache 2:
command a2enmod proxy proxy_http
Configurez Apache pour servir les statuts de HAproxy:
if [ -n "${STATUS_VHOST}" -a -e '/etc/haproxy/haproxy.cfg' ]; then
command sed -i -e "/STATUS PAGES CONFIGURATION END/i\\
# HAproxy statistics.\\
ProxyPassReverse ${SUB_FOLDER}/haproxy http://localhost:18080${SUB_FOLDER}/haproxy\\
ProxyPass ${SUB_FOLDER}/haproxy http://localhost:18080${SUB_FOLDER}/haproxy\\
" "${STATUS_VHOST}"
fi
Rechargez la configuration de HAproxy:
if [ -n "$(which service)" ]; then
service haproxy restart
service apache2 force-reload
else
/etc/init.d/haproxy restart
/etc/init.d/apache2 force-reload
fi
Ajoutez le lien correspondant à la page d'accueil du domaine.
if [ -e "/etc/haproxy/haproxy.cfg" ]; then
command sed -i -e '/<\/ul>/i\
<li><a href="./haproxy">HAproxy statistics</a></li>' \
"${INSTALL_PATH}/index.html"
fi
Vous pouvez maintenant accéder aux statistiques de HAproxy.