Also habe ich Haproxy so konfiguriert, dass die Protokollierung über rsyslog erfolgt und vorerst alle in einer Datei gespeichert werden.
Es wird definitiv protokolliert, da ich beim Start diese "Start" -Nachrichten erhalte, aber überhaupt keine HTTP-Anforderungen protokollieren. Was ist falsch an meiner Konfiguration?
haproxy.cfg :
global
log /dev/log local0 debug
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
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
frontend webfront
option forwardfor
stats enable
stats uri /haproxy?statis
stats realm Haproxy\ Auth
stats auth user:password
bind *:80
timeout client 86400000
acl is_discourse hdr_end(host) -i discourse.mydomain.com
use_backend discourse if is_discourse
use_backend webserver if !is_discourse
backend discourse
balance source
option forwardfor
option httpclose
server server1 127.0.0.1:3080 weight 1 maxconn 1024 check inter 10000
backend webserver
balance source
option forwardfor
option httpclose
server server2 127.0.0.1:4080 weight 1 maxconn 1024 check inter 10000
Protokolldatei :
root@kayak:/var/log/haproxy# tail haproxy.log
Nov 26 21:25:25 kayak haproxy[21646]: Proxy webfront started.
Nov 26 21:25:25 kayak haproxy[21646]: Proxy webfront started.
Nov 26 21:25:25 kayak haproxy[21646]: Proxy discourse started.
Nov 26 21:25:25 kayak haproxy[21646]: Proxy webserver started.
Nov 26 21:28:10 kayak haproxy[21868]: Proxy webfront started.
Nov 26 21:28:10 kayak haproxy[21868]: Proxy discourse started.
Nov 26 21:28:10 kayak haproxy[21868]: Proxy webserver started.
Nov 26 21:30:31 kayak haproxy[22045]: Proxy webfront started.
Nov 26 21:30:31 kayak haproxy[22045]: Proxy discourse started.
Nov 26 21:30:31 kayak haproxy[22045]: Proxy webserver started.
Ich habe einige der Webserver-Seiten zwischen diesen Neustarts besucht und einige 404-Fehler ausgelöst. Warum taucht nichts auf?
Bearbeiten: rsyslog conf Datei.
/etc/rsyslog.d/49-haproxy.conf:
local0.* -/var/log/haproxy_0.log
if ($programname == 'haproxy') then -/var/log/haproxy/haproxy.log
& ~
Antworten:
Sie müssen das Protokoll im Frontend angeben, wenn wirklich jede Anforderung protokolliert werden soll. Aber normalerweise ist dies ein Overkill für den Server und Ihre Festplatte ist in kürzester Zeit voll.
quelle
rsyslog
ist nicht richtig konfiguriert? Würde es einen Weg geben, das zu sagen?/dev/log
Die Protokollierung über das Unix-Socket-Protokoll funktioniert bei mir auf meinem Rhel 6.7 nicht. Sie können es mit dieser Conf versuchen. haproxy (arbeitet an 81) leitet die http-Anfrage an httpd weiter (arbeitet an 80)
/etc/haproxy/haproxy.cfg
und Sie müssen das rsyslog udp-Modul aktivieren, um Syslog von haproxy zu empfangen.
/etc/rsyslog.d/haproxy.conf
Wenn Sie eine http-Anfrage an 81 senden, erhalten Sie einige Protokolle wie dieses
quelle
Dies kann dadurch verursacht werden, dass es in einem Chroot-Gefängnis läuft. Sie müssen sicherstellen, dass rsyslog auch einen dgram-Socket im chroot-Gefängnis erstellt (z. B. / var / lib / haproxy / dev / log). Zeigen Sie mit Ihrer Protokollanweisung auf den Socket / dev / log, und Sie sollten gut sein.
Ich habe ein paar Stunden damit verbracht, dies herauszufinden, da HAproxy Ihnen nicht sagt, dass etwas nicht stimmt, außer dass die Protokollierung nicht funktioniert.
quelle
Dieser Link erklärt es perfekt.
Wenn Sie manuell Protokolldateien erstellen
/log/haproxy-allbutinfo.log
und/log/haproxy-info.log
vergessen Sie nicht, den Eigentümer zu ändernsyslog:adm
quelle