![Logstash 为单个主机创建许多 TCP 连接](https://linux22.com/image/707179/Logstash%20%E4%B8%BA%E5%8D%95%E4%B8%AA%E4%B8%BB%E6%9C%BA%E5%88%9B%E5%BB%BA%E8%AE%B8%E5%A4%9A%20TCP%20%E8%BF%9E%E6%8E%A5.png)
Logstash:5.3.0 nxlog:nxlog-ce-2.9.1716
检查 nestat 发现虽然我只有大约 50 台主机,但已经建立了 300 个连接。
当我在客户端只有一个活动连接时,我对某些主机有大约 40 个连接。
我向输入过滤器添加了 data_timeout => 500,并重新启动了 logstash,但看起来连接仍在增长并保持处于已建立状态。
如果操作系统将连接视为已建立,那么这不算作空闲连接吗?因为在这种情况下 data_timeout 不会产生影响,对吗?
我的 TCP 保持活动设置是默认值,我应该更改它吗?:
# cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
# cat /proc/sys/net/ipv4/tcp_keepalive_intvl
75
# cat /proc/sys/net/ipv4/tcp_keepalive_probes
9
我为单个主机打开了大约 40 个连接,这是预期行为吗?为什么它们仍处于 ESTABLISHED 状态?或者 Logstash 需要为单个主机打开多个连接有什么原因吗?
答案1
您应该进一步调查为什么 logstash 无法正确关闭连接(例如检查日志)。也许您在两者之间有一些网络设备/代理防火墙会终止 TCP 会话?