Драйвер системного журнала docker-compose для входа не работает
Я пытаюсь реализовать централизованное ведение журнала для нескольких контейнеров док-услуг микро-службы.
Чтобы добиться этого, я пытаюсь использовать рекомендованный подход к драйверу журналирования системного журнала, чтобы доставлять журналы в loggly.
https://www.loggly.com/docs/docker-logging-driver/
Я сделал следующее...
На удаленной докер-машине...
$ curl -O https://www.loggly.com/install/configure-linux.sh
$ sudo bash configure-linux.sh -a SUBDOMAIN -u USERNAME
Он проверил, что все работает правильно, и я вижу, что события хоста теперь проходят через консоль loggly.
Затем я настроил службы в docker-compose, вот так...
nginx_proxy:
build: nginx_proxy
logging:
driver: "syslog"
options:
tag: "{{.ImageName}}/{{.Name}}/{{.ID}}"
Затем я перестроил и снова запустил контейнеры, с...
$ docker-compose up --build -d
Однако я не получаю никаких журналов от контейнеров, идущих в loggly.
Я могу убедиться, что обновление драйвера syslog вступило в силу, выполнив...
$ docker-compose logs nginx_proxy
Это сообщает...
nginx_proxy_1 | WARNING: no logs are available with the 'syslog' log driver
Что я и ожидал увидеть, так как этот драйвер журнала не работает для локального просмотра журналов.
Есть ли что-то еще, что мне нужно сделать, чтобы это работало правильно?
1 ответ
Можете ли вы поделиться Dockerfile в каталоге nginx_proxy? Вы подтвердили, что он генерирует логи?
Чтобы проверить, можете ли вы заменить nginx на базовую версию Ubuntu, которая напоминает эхо, как показано в документации журнала: https://www.loggly.com/docs/docker-logging-driver/
Бежать:
sudo docker run -d --log-driver=syslog --log-opt tag="{{.ImageName}}\{{.Name}}\{{.ID}}" ubuntu echo "Test Log"
Проверьте:
$ tail /var/log/syslog