найти, хотел бы посоветоваться с вами.
Предположим мы используем driver gelf для отправки логов как-то так:
logging:
driver: "gelf"
options:
gelf-address: "udp://127.0.0.1:12201"
tag: "{{.Name}}/{{.ID}}"
Однако делаем это в Swarm.
Обратите внимание на udp://127.0.0.1:12201 это продиктовано тем, что Graylog который собирает логи находится в том же стеке, и увы прописать host типа как udp://graylog_host:12201 не получится, поскольку здесь на этом уровне не работает dns контейнеров.
Не получится и открыть порт 12201 непублично. Docker прокинет его наружу. Соответственно без внешнего Firewall или Security Groups всё решение выглядит супер костыльно.
И у меня вопрос.
Есть среди вас те кто решал эту проблему?
Идеально я вижу два пути решения:
1. заставить gelf работать внутри оверлейновй сети
2. ок, попросить docker swarm открыть порт на хостах таким образом чтобы это работало как внешний порт, только для хостов Swarm-а
Заранее спасибо.
Открыть порт с указанием ip 127.0.0.1
Как я понимаю, это не работает. Нашел кучу ишью на эту тему, что в Swarm порт откроется публично. Он не умеет так.
Обсуждают сегодня