Korzystam z Apache2 w kontenerze dokowanym i chcę nic nie zapisywać na dysku, zapisując logi na stdout i stderr. Widziałem kilka różnych sposobów, aby to zrobić ( Supervisord i stdout / stderr , dziennik dostępu Apache do stdout ), ale wyglądają jak włamania. Czy nie ma domyślnego sposobu, aby to zrobić?
Dla jasności nie chcę modyfikować dziennika, ponieważ spowoduje to zapisanie rzeczy na dysku w kontenerze.
apache-2.2
docker
aronchick
źródło
źródło
Odpowiedzi:
działa na Ubuntu i Centos dla mnie
źródło
domain.conf
pliku lub.htaccess
jeśli nie używaszconf
.Co powiesz na umieszczenie tego w pliku Docker po zainstalowaniu pakietu apache2?
Zakładając, że jest to ścieżka dzienników. Dotyczy Ubuntu 14.04 i działa również z Ubuntu 16.04.
Uwaga: jeśli jesteś pewien, że dowiązania symboliczne
/dev/stdout
lub/proc/stderr
istnieją, to mogą również korzystać z nich. Wolę ścieżkę do prawdziwego pliku, ponieważ jest to gwarantowane, że jest obecne.źródło
Nie jest to konkretnie odpowiedź na pytanie, ale być może lepszym sposobem, w zależności od twojego scenariusza, byłoby w ogóle nie logowanie się do stdout / stderr. Wystarczy potokować dzienniki do cat w formacie JSON. To wyeliminowałoby potrzebę różnicowania strumieni, ponieważ json mógłby mieć w sobie dane potrzebne do ich rozróżnienia. np. coś podobnego do następującego. Można to następnie łatwiej przyswoić do czegoś takiego jak graylog
Istnieje również moduł rejestrowania Gelf, więc możesz przesyłać strumieniowo bezpośrednio z Apache na serwer typu Graylog, jeśli chcesz
źródło