vendredi 5 juillet 2013

HAProxy et les logs (Debian squeeze)

Pour faire suite au billet précedent, on peut avoir les log de l'ensemble des connexions transitant par HAProxy dans des fichiers distinct.


Step 1

mkdir /var/log/haproxy

Step 2

Créer le fichier  /etc/rsyslog.d/haproxy.conf et y placer le contenu suivant:

if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
& ~

Step 3

Modifier la configuration HAProxy (haproxy.cfg) pour avoir dans la clause global :


global
    log /dev/log local0 info
    log /dev/log local0 notice

Penser à supprimer toute autre réference au log dans cette partie global.

Step 4


Relancer rsyslod
service rsyslog restart

Relancer haproxy
service haproxy restart

Dans le répertoire /var/log/haproxy, vous devriez avoir les fichiers suivant:

total 32
-rw-r----- 1 root adm 24948  5 juil. 18:28 haproxy-info.log
-rw-r----- 1 root adm   378  5 juil. 18:33 haproxy-notice.log


Step 5

logrotate! Pour ne pas avoir des fichiers de log monstueux il faut utiliser logrotate. Créer le fichier /etc/logrotate.d/haproxy et y placer:

/var/log/haproxy/*.log {
        weekly
        missingok
        rotate 7
        compress
        delaycompress
        notifempty
        create 640 haproxy haproxy
        sharedscripts
        postrotate
        /etc/init.d/haproxy reload > /dev/null
        endscript
}

jeudi 4 juillet 2013

Gnome Shell - Avoir le dock affiché en permance

Il est possible d'avoir le dock Gnome-Shell affiché en permanence afin d'avoir un apérçu des fenêtres ouvertes.

Il faut dans un premier temps installer l'extension Dock.

Par défaut il sera à droite et s'affichera lorsque vous le survolerez. Si vous voulez l'afficher en permanance, utilisez la commande:
dconf write "/org/gnome/shell/extensions/dock/autohide" false

Si vous voulez placer le dock à gauche:
dconf write "/org/gnome/shell/extensions/dock/position" "'left'"


mardi 2 juillet 2013

STunnel (SSL) + HAProxy + Debian Squeeze

Il est possible d'ajouter un pont SSL à la configuration HAProxy du billet précédent

Step 1 : installer stunnel

apt-get install stunnel

Step 2 : générer le certificat


 openssl req -new -nodes -x509 -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem

 Aller dans le répertoire /etc/stunnel et corriger les droits du certificat:

 chown stunnel4:stunnel4 stunnel.pem

 Step 3 : Configurer


Sauvegarder la configuration par defaut:
mv /etc/stunnel/stunnel.conf /etc/stunnel/stunnel.conf.bck


Puis éditer le fichier le fichier de configuration pour avoir:
 

sslVersion = all
options = NO_SSLv2


chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside the chroot jail
pid = /stunnel.pid
socket = l:TCP_NODELAY=0
socket = r:TCP_NODELAY=1
output = /var/log/stunnel.log

[mon.domain.com]
cert = /etc/stunnel/stunnel.pem
accept  = 192.168.0.20:443
connect = 192.168.0.20:80
TIMEOUTclose = 0



Il faut modifier les IP mentionnées dans 'accept' et 'connect' avec votre adresse IP publique pour le 'accept' et l'adresse où se trouve HAProxy pour le 'connect'

Enfin, il faut modifier le fichier /etc/default/stunnel4 pour permettre à stunnel de se lancer en modifiant la ligne
  • ENABLED=0
pour
  •  ENABLED=1

Step 4 : relancer stunnel

Vous pouvez maintenant relancer stunnel:
service stunnel restart


Vous avez maintenant un Load balancer (HAProxy) avec une connectivité chiffré grâce à stunnel

lundi 1 juillet 2013

HAProxy et Debian Squeeze

HAProxy permet de faire du load balancing entre plusieurs serveurs. Il peut faire de l'équilibrage de charge entre plusieurs Tomcat ou encore entre plusieurs serveurs de streaming. La configuration qui va suivre va le faire pour 2 Tomcat et 2 serveurs qui peuvent accepter un flux TCP.

Ce qui est suit fonctionne sur une Debian Squeeze.

Step 1 : installer


apt-get install haproxy

Step 2 : configurer

Editer le fichier /etc/default/haproxy pour remplacer
  • ENABLED=0
par
  • ENABLED=1

 Sauvegarder le fichier par defaut :
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bck

puis éditons ce fichier : vi /etc/haproxy/haproxy.cfg

Comme dit plus haut, nous allons rediriger le traffic HTTP vers 2 Tomcat en prenant soin de prendre l'éventuelle session Tomcat ouverte sur les serveur.

Nous allons rediriger aussi 1 flux TCP venant sur le port 3637 vers un des serveurs prenant en charge ces flots.

global
    daemon
    maxconn 256
    log 127.0.0.1 local0

defaults
    retries 3
    option logasap
    log global

    timeout connect 5000ms
    timeout client 600000ms
    timeout server 600000ms



listen TOMCAT :80
        mode http
        option httplog
        balance roundrobin
        option redispatch
        option httpclose
        option forwardfor
        cookie JSESSIONID prefix
        server liferay_server1 192.168.0.26:8080 cookie tomcat1 check
        server liferay_server2
192.168.0.27:8080 cookie tomcat2 check
        stats uri /admin?stats
        stats realm haproxy
        stats scope .

listen VOTRE_PROTOCOLE :3637
        mode tcp
        option tcplog
        balance leastconn
        server mscodec_1
192.168.0.31:3637
        server mscodec_2
192.168.0.32:3637


Pour le protocole sur le port 3637, il est possible d'utiliser la configuration:

listen VOTRE_PROTOCOLE :3637
        mode tcp
        option tcplog
        balance leastconn
        server mscodec_1
192.168.0.31:3637 check
        server mscodec_2
192.168.0.32:3637 check

Le mot clé 'check' va indiquer à HAproxy de vérifier régulièrement si le service est disponible sur le serveur indiqué

Step 3 : relancer HAProxy

service haproxy restart