2016-12-02 7 views
0

Я хочу видеть журналы из моего сервиса Docker Swarm. Не только потому, что я хочу, чтобы все мои журналы собирались по обычной причине, но также потому, что я хочу разобраться, почему служба сбой с "task: non-zero exit (1)".Есть ли способ получить журналы в Docker Swarm?

Я вижу, что there is work to implement docker logs в трубопроводе, но есть способ доступа к журналам для производственных услуг? Или Docker Swarm не готов к выпуску?

+0

предстоящая докер 1,13 имеет изменение, которое вы упоминаете выше. Я думаю, что в настоящее время у них должна быть бета-версия. В противном случае хорошей практикой является то, что @Dockstar рекомендует и настраивает драйвер журнала. Мы используем logstash/kibana с драйвером gelf, и у нас это настроено на демере docker, поэтому любой хост докера в наших кластерах входит в kibana. Также не забудьте захватить вывод syslog, потому что это происходит, когда ваш компьютер умирает (например, из памяти) или сам докер, имеет проблемы. –

ответ

0

Успешно сделано то, что мы сделали GrayLog. Если вы посмотрите документацию о запуске docker, вы можете указать логический драйвер и параметры журнала, которые позволяют отправлять все консольные сообщения в graylog-кластер.

docker run... --log-driver=gelf --log-opt gelf-address=udp://your.gelf.ip.address:port --log-opt tag="YourIdentifier" 

Вы можете также технически настроить его на глобальном уровне для Docker демона, но я бы посоветовал против этого. Он не позволит вам добавить параметр «Тег», который исключительно полезен для фильтрации результатов.

Определения сервисов Docker также поддерживают параметры журнала и параметры журнала, поэтому вы можете использовать обновление службы докеров, чтобы настроить свои службы, не уничтожая их.

+0

Спасибо большое! Я хорошо посмотрю. Трудно выделить соответствующие фрагменты документации, очень полезно иметь руля! – Joe

+0

И простите, вы можете подтвердить, что это работает с Роем? И, если возможно, укажите какую-либо документацию об использовании драйверов журналов в Swarm? – Joe

+0

Эй! Я могу подтвердить, что это работает в рое, когда мы собираем эти журналы через экземпляры рой. Конфигурации журнала от Docker находятся на странице https://docs.docker.com/engine/admin/logging/overview/. – Dockstar

4

С Docker Swarm 17.03 вы можете теперь обращаться к журналам службы нескольких экземпляров через командную строку.

docker service logs -f {NAME_OF_THE_SERVICE} 

Вы можете получить имя службы с:

docker service ls 

Обратите внимание, что это экспериментальная функция (не готовый к производству) и для того, чтобы использовать его необходимо включить экспериментальный режим:

Обновление:docker l ogs service теперь является стандартной функцией докера> = 17.06. https://docs.docker.com/engine/reference/commandline/service_logs/#parent-command

подобный вопрос: How to log container in docker swarm mode

Смежные вопросы