it-swarm.com.de

Unterstützt HAProxy die Protokollierung in einer Datei?

Ich habe gerade haproxy auf meinem Testserver installiert.

Gibt es eine Möglichkeit, seine Protokolle in eine lokale Datei anstatt in ein Syslog zu schreiben?

Dies ist nur zum Testen gedacht, damit ich nicht anfangen möchte, Ports zu öffnen/Syslog mit all meinen Testdaten zu überladen.

Leider dreht sich die einzige Information, die ich finden kann, um die Protokollierung auf einem Syslog-Server.

Ich habe versucht:

log /home/user/ha.log local0

in meiner Konfiguration. Aber das sagte mir:

[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)

Als ich neu gestartet habe. Also habe ich die Datei mit touch /home/user/ha.log Erstellt und an welchem ​​Punkt neu gestartet:

[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)

Ist dies möglich oder muss ich Syslog usw. konfigurieren, um meine Testdaten anzuzeigen?

15
IGGt

Haproxy unterstützt die Protokollierung in Dateien einfach nicht. Wie in der Dokumentation angegeben ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), verwendet die Anweisung "log" als ersten Parameter eine Adresse. Wenn es sich um eine Datei handelt, handelt es sich um einen Unix-Socket, und HAProxy spricht im Syslog-Format mit diesem Socket. Haproxy ist so konzipiert, weil es für Proxy-Anforderungen verantwortlich ist, nicht für das Schreiben von Dateien, sondern das Schreiben von Protokolldateien an Syslog delegiert. Wenn Sie sich nicht mit Ihrem Computer anlegen möchten, können Sie beispielsweise logstash installieren und Folgendes ausführen: logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }' und füge hinzu: log /tmp/haprxoy_log.sock In Ihrer haproxy.cfg, um es zu testen.

14
user801247

Sie können die Haproxy-Protokollkonfigurationsdatei unter /etc/rsyslog.d/ Ändern, um die Datei auf den gewünschten Pfad zu verweisen. Ich bin mir bei anderen Distributionen nicht sicher. Für mich benutze ich Debian. Ich habe /etc/rsyslog.d/49-haproxy.conf Geändert, um auf /var/log/haproxy/haproxy.log Zu zeigen.

# 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/haproxy.log
&~

Sie sollten auch den Protokollpfad in /etc/logrotate.d/haproxy Auf den neuen Pfad aktualisieren. Damit wird die Protokolldatei im neu konfigurierten Pfad mit gzip gedreht und komprimiert.

Starten Sie dann rsyslog.service neu.

Sudo systemctl restart rsyslog.service

Jetzt befindet sich die Datei haproxy.log.* Im Verzeichnis /var/log/haproxy/.

7
Fonzie

Sie haben versucht, im Home-Verzeichnis des Benutzers zu konfigurieren. Haproxy hat keine Berechtigung, auf das Home-Verzeichnis des Benutzers zuzugreifen. Dies führt zu Problemen.

Versuchen Sie es stattdessen an einem anderen Ort. Erstellen Sie ein Verzeichnis in /var/<directory>

log /var/<directory>/ha.log
0
KKD