Ich habe gerade Haproxy auf meinem Testserver installiert .
Gibt es eine Möglichkeit, die Protokolle in eine lokale Datei anstatt in syslog zu schreiben?
Dies ist nur zum Testen gedacht, damit ich nicht anfange, Ports zu öffnen oder Syslog mit all meinen Testdaten zu überladen.
Leider dreht sich die einzige Information, die ich finden kann, um das Protokollieren auf einem Syslog-Server.
Ich habe versucht mit:
log /home/user/ha.log local0
in meiner Konfig. 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 erstellt touch /home/user/ha.log
und 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 zu sehen?
Antworten:
Haproxy unterstützt die Protokollierung in Dateien einfach nicht. Wie in der Dokumentation ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ) angegeben, 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 mit diesem Socket im Syslog-Format. Haproxy ist so konzipiert, weil es für Proxy-Anforderungen und nicht für das Schreiben von Dateien zuständig ist und 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 { } }'
undlog /tmp/haprxoy_log.sock
Folgendes hinzufügen: In Ihrer haproxy.cfg, um es zu testen.quelle
Sie können die Konfigurationsdatei für das Haproxy-Protokoll unter so ändern, dass
/etc/rsyslog.d/
die Datei auf den gewünschten Pfad verweist . Nicht sicher über andere Distribution. Für mich benutze ich Debian. Ich habe mich geändert/etc/rsyslog.d/49-haproxy.conf
, um zu zeigen/var/log/haproxy/haproxy.log
,Sie sollten auch den Protokollpfad in
/etc/logrotate.d/haproxy
den neuen Pfad aktualisieren . Damit dreht und komprimiert es die Logdatei im neu konfigurierten Pfad mitgzip
.Starten Sie dann rsyslog.service neu.
Die
haproxy.log.*
Datei befindet sich nun im/var/log/haproxy/
Verzeichnis.quelle
Sie haben versucht, im Home-Verzeichnis des Benutzers zu konfigurieren. Haproxy hat keine Berechtigung, auf das Home-Verzeichnis des Benutzers zuzugreifen. Dies kann zu Problemen führen.
Versuchen Sie es stattdessen an einem anderen Ort. Erstellen Sie ein Verzeichnis in
/var/<directory>
quelle
sudo touch /var/log/ha.log
undlog /var/log/ha.log local0
zu meiner Konfiguration hinzugefügt , habe aber den gleichen Fehler wie oben erhaltenconnection refused
.'log' expects <address> and <facility> as arguments.
sodass dort etwas erforderlich war. Nach den Anweisungen<facility> must be one of the 24 standard syslog facilities
(von denen ich denke, dass sie Teil des Problems sind)