J'ai installé haproxy 1.5 via apt-get sur ubuntu 14.04 via ppa:vbernat/haproxy-1.5
selon http://haproxy.debian.net/
Le problème est qu'il se connecte à la /var/log/syslog
place de/var/log/haproxy.log
La configuration est fondamentalement la valeur par défaut:
/etc/haproxy/haproxy.cfg
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL).
ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
ssl-default-bind-options no-sslv3
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
/etc/rsyslog.d
# Create an additional socket in haproxy's chroot in order to allow logging via
# /dev/log to chroot'ed HAProxy processes
$AddUnixListenSocket /var/lib/haproxy/dev/log
# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy.log
&~
Réponses:
Très délicat. :-) Et voici la réponse:
Remarquez le fichier dans
/etc/rsyslog.d
Il dit de se connecter à haproxy,/var/log/haproxy.log
mais cela ne prendra pas effet sans redémarrer rsyslog:la source
Le défaut
haproxy.conf
fichier fournit des instructions claires sous les paramètres globaux -global
. Ici, je suis en train de le coller pour vous -Dans mon cas, par exemple, j'utilise haproxy dans CentOS 6.6, le même serveur syslogd et j'ai dû faire ce qui suit pour me connecter à /var/log/haproxy.log:
Ajouter la ligne ci-dessous à
/etc/rsyslog.d/haproxy.conf
-Activer la journalisation syslogd sur le serveur -
la source
/etc/rsyslog.conf
. Après cela, redémarrez le service rsyslog:service rsyslog restart
Commentez cette ligne de
/etc/rsyslog.d
la source
/etc/rsyslog.d
est un répertoire, pas un fichier. Je ne suis pas sûr des différences de 1,5 vs 1,6 sur Ubuntu, mais le fichier/etc/rsyslog.d/49-haproxy.conf
existe après l'installation de 1.6. Cela a les 3 lignes suivantes:$AddUnixListenSocket /var/lib/haproxy/dev/log \n if $programname startswith 'haproxy' then /var/log/haproxy.log \n &~
(J'ai ajouté "\ n" pour désigner les nouvelles lignes)le principal problème est que l'haproxy chrooté ne pourra pas accéder
/dev/log
et afin de contourner le problème, vous pouvez soit:/var/lib/haproxy/dev
et montez/dev
avec l'option bind sur/var/lib/haproxy/dev
Cela fonctionne dans les deux sens.
[Éditer]
Après 3 ans, quelque chose a changé. Haproxy crée maintenant un fichier appelé
/etc/rsyslog.d/49-haproxy
. L'une des lignes du fichier est:$AddUnixListenSocket /var/lib/haproxy/dev/log
.Dans ce cas, l'environnement chroot peut utiliser
/dev/log
la source
/dev/log
.