следующая ситуация: у меня есть аппаратный блок с Ubuntu 14.04LTS в качестве хоста для docker 1.4, я запускаю стек ELK в нескольких контейнерах. В настоящее время контейнер logstash предоставляет доступ только к порту 514 для сбора входных данных системного журнала.
в некоторых ситуациях после перезапуска контейнера трафик системного журнала больше не перенаправляется в контейнер.
'iptables -nvL' показывает, что нет трафика, соответствующего правилу, применяемому к цепочке пересылки во время запуска контейнера. Счетчик трафика входной цепочки значительно выше, чем в ПРЯМОЙ цепочке.
Я замечаю такое поведение во всех контейнерах, которые предоставляют доступ к портам UDP миру, контейнеры со службами на основе TCP работают должным образом.
перезапуск контейнеров и службы docker не увенчался успехом.
Я в основном собираю журналы трафика брандмауэра, поэтому поток трафика системного журнала довольно постоянен. Я собираю около 1,5 тыс. ловушек системного журнала в секунду.
Мой обходной путь здесь заключается в том, чтобы остановить весь трафик на хост примерно на 10 секунд (в настоящее время путем отключения трафика на вышестоящем маршрутизаторе).
После остановки экспорта системного журнала на одном узле брандмауэра на несколько секунд трафик с этого конкретного брандмауэра перенаправляется в контейнер, как и ожидалось. Но только от этого единственного.
Я думаю, что это проблема iptables. Похоже, что iptables кэширует нарушение пересылки в течение нескольких секунд и игнорирует любые новые применяемые правила до тех пор, пока присутствует трафик.
Я не делал здесь никакой дополнительной настройки iptables. Все делается докером. У меня нет установленных ufw, conntrackd или чего-либо еще.
Кто-нибудь подсказывает, как решить эту проблему?
наилучшие пожелания Андреасу