2016-09-29 3 views
1

У меня есть один докер-хост, работающий Docker 1.12, хорошо работающий и умеющий использовать gliderlabs/logspout для централизации журналов докеров в papertrail.Могу ли я использовать logspout для глобального журнала регистрации syslog на рое Docker?

Возможно ли развертывание этой конфигурации для всех узлов на Docker Swarm?

Я попытался:

docker service create --name logspout --mode=global \ 
     gliderlabs/logspout \ 
     syslog+tls://<yourhost>.papertrailapp.com:<yourport> 

но служба умирает и респ непрерывно. На докере (экземпляр без рой) вам нужно сопоставить гнездо для док-станции unix:///var/run/docker.sock a la the papertrail docs. Возможно ли это в роевой службе? Как подключить сокет докера в службу?

ответ

0

Update: текущий gliderlabs/logspout контейнер появляется в остановить протоколирования после первого подключения. После долгих поисков по результатам поиска (кажется, указывается на кучу тайм-аутов/повторных проблем). Вместо этого я решил перейти на опцион --log-driver докера. Это означало касание каждой машины и перезапуск демона, но не было прерывания обслуживания, кроме боли в редактировании файла /etc/default/docker на моих экземплярах ubuntu и перезапуске докеров.

Оригинальный ответ

Благодаря блестящей части исследования в this article by Sematext я обнаружил команду магическая связывания:

docker service create --name logspout \ 
    --mode=global -e SYSLOG_TAG=swarm --publish <yourport>:<yourport> \ 
    --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ 
    gliderlabs/logspout syslog+tls://<yourhost>.papertrailapp.com:<yourport> 

Волшебство в команде --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock. Также полезно использовать SYSLOG_TAG для идентификации системных журналов, исходящих из вашего роя, поскольку по умолчанию имя хоста является идентификатором контейнера (который может быть изменен и довольно непрозрачен). Похоже, что вам также необходимо публиковать/выставлять журнал регистрации журнала сбоев случайным образом.

Если я добавлю узел в рой, эта служба будет автоматически развернута и настроена на новый хост! Рой магия!

Sep 29 17:07:01 8d551da912a4 swarm: File "/opt/conda/envs/clientapi/lib/python3.5/site-packages/werkzeug/exceptions.py", line 646, in __call__ 
Sep 29 17:07:01 8d551da912a4 swarm:  raise self.mapping[code](*args, **kwargs) 
Sep 29 17:07:01 8d551da912a4 swarm: werkzeug.exceptions.InternalServerError: 500: Internal Server Error 
Sep 29 17:11:05 cd73e5278032 swarm: .................... 
Sep 29 17:11:05 cd73e5278032 swarm: complete: opportunities = added 0 updated 0 out of 2023 

Вы можете увидеть идентификатор контейнера и идентификатор роя в удобном для чтения формате

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