Właśnie zainstalowałem haproxy na moim serwerze testowym.
Czy istnieje sposób zmuszenia go do zapisywania dzienników do pliku lokalnego zamiast syslog?
To jest tylko do testowania, więc nie chcę zaczynać otwierania portów / zaśmiecania syslogu wszystkimi moimi danymi testowymi.
Niestety jedyne informacje, które mogę znaleźć, dotyczą obracania się na serwerze syslog.
Próbowałem użyć:
log /home/user/ha.log local0
w mojej konfiguracji. Ale to powiedziało mi:
[ALERT] 039/095022 (9528) : sendto logger #1 failed: No such file or directory (errno=2)
Kiedy zrestartowałem. Więc utworzyłem plik touch /home/user/ha.log
i zrestartowałem, w którym momencie otrzymałem:
[ALERT] 039/095055 (9593) : sendto logger #1 failed: Connection refused (errno=111)
Czy to możliwe, czy będę musiał skonfigurować syslog itp., Aby zobaczyć moje dane testowe?
Odpowiedzi:
Haproxy po prostu nie obsługuje logowania do plików. Jak podano w dokumentacji ( https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#3.1-log ), instrukcja „log” przyjmuje jako pierwszy parametr adres. Jeśli jest to plik, jest to gniazdo unix, a HAProxy będzie mówił do tego gniazda w formacie syslog. Haproxy jest zaprojektowany w ten sposób, ponieważ odpowiada na żądania proxy, a nie na zapisywanie plików, deleguje zapis plików dziennika do syslog. Jeśli nie chcesz zadzierać z komputerem, możesz na przykład zainstalować logstash i uruchomić:
logstash -e 'input { unix { path => "/tmp/haprxoy_log.sock" } } output { stdout { } }'
i dodać:log /tmp/haprxoy_log.sock
W pliku haproxy.cfg, aby go przetestować.źródło
Możesz zmienić plik konfiguracyjny dziennika haproxy,
/etc/rsyslog.d/
aby wskazał ścieżkę do wybranej ścieżki. Nie jestem pewien co do innej dystrybucji. Dla mnie używam Debiana. Zmieniłem,/etc/rsyslog.d/49-haproxy.conf
aby wskazać/var/log/haproxy/haproxy.log
,Powinieneś także zaktualizować ścieżkę dziennika
/etc/logrotate.d/haproxy
do nowej ścieżki. Aby się obracał i kompresował plik dziennika w nowo skonfigurowanej ścieżce za pomocągzip
.Następnie uruchom ponownie rsyslog.service.
Teraz
haproxy.log.*
plik będzie w/var/log/haproxy/
katalogu.źródło
Próbowano skonfigurować w katalogu osobistym użytkownika, haproxy nie ma uprawnień dostępu do katalogu domowego użytkownika, więc może to powodować problemy.
Zamiast tego spróbuj w innej lokalizacji, utwórz katalog w
/var/<directory>
źródło
sudo touch /var/log/ha.log
i dodałemlog /var/log/ha.log local0
do mojej konfiguracji, ale otrzymałem taki sam błąd jak powyżejconnection refused
.'log' expects <address> and <facility> as arguments.
więc potrzebowałem czegoś tam. Zgodnie z instrukcjami<facility> must be one of the 24 standard syslog facilities
(które moim zdaniem mogą być częścią problemu)