启用 rsyslog TLS 时 CPU 使用率巨大

启用 rsyslog TLS 时 CPU 使用率巨大

我们目前使用 rsyslog 收集来自约 100 万台 IoT 设备的日志,我们过去使用纯文本 UDP 系统日志,我们的服务器可以以最小的系统负载处理这些日志,但现在因为我们需要在系统日志中发送一些敏感数据,所以我们决定启用 TLS,但在仅使用 20k 台设备尝试之后,我们的服务器不断丢弃日志,因为所有 CPU 核心的负载都达到了 100%。

看起来 TCP TLS 不太适合这种大量的请求,因为 syslog 客户端只是发送了一条消息然后断开连接,每次想要发送日志时,它都会被迫重新进行 TLS 握手过程。rsyslog 中是否包含任何其他我可以使用加密机制?我在考虑某种使用静态密钥的非对称加密,这样它就不必每次都进行握手?

我考虑过 VPN,但是 OpenVPN 会给 VPN 服务器带来更大的负载,同时我们的客户端硬件没有足够新的内核来进行轻量级 Wireguard 设置。

我们当前的 rsyslog 服务器有 40 个核心(80 HT)、48GB RAM,因此如果我们必须购买更多服务器来设置某种负载平衡系统,那么成本就会受到很大的限制。

相关内容