And*_*fer 5 ubuntu iptables syslog docker
以下情况:我有一个带有 Ubuntu 14.04LTS 的硬件盒作为 docker 1.4 的主机我在多个容器中运行一个 ELK 堆栈。目前,logstash 容器仅暴露端口 514 来收集系统日志输入。
在某些情况下,重新启动容器后,系统日志流量不再转发到容器。
'iptables -nvL' 显示在容器启动期间没有流量匹配应用于转发链的规则。INPUT 链的流量计数器明显高于 FORWARD 链。
我注意到所有向世界公开 UDP 端口的容器上的这种行为,具有基于 TCP 的服务的容器按预期工作。
重新启动容器和 docker 服务没有成功。
我主要收集防火墙流量日志,所以系统日志流量是相当稳定的。我每秒收集大约 1,5k 个 Syslog 陷阱。
我的解决方法是将所有到主机的流量停止大约 10 秒(目前通过将上游路由器上的流量黑洞化)
在一个防火墙节点上停止 syslog 导出几秒钟后,来自此特定防火墙的流量按预期转发到容器。但仅从这一个。
我认为这是iptables的问题。看来 iptables 将转发信息缓存了几秒钟,并且只要存在流量就会忽略任何新的应用规则。
我这里没有对 iptables 做额外的配置。一切都由 docker 完成。我没有安装 ufw、conntrackd 或任何东西。
任何建议如何解决这个问题?
最好的问候安德烈亚斯
小智 3
看起来这与 conntrack 有关。它已被标记为 Docker bug: https: //github.com/docker/docker/issues/8795 那里列出了一个解决方法;我成功地让我的一位主机再次使用conntrack -F
.
归档时间: |
|
查看次数: |
5370 次 |
最近记录: |