iptables 日志记录性能

iptables 日志记录性能

需要了解不同虚拟机(数百个)之间的流量,并计划使用 iptables 日志记录来创建新连接(入站和出站)的日志。脚本可以解析日志并获取源/目标 IP 和端口。但随后我需要记录几天(可能是一周)才能全面了解所有可能的连接。计划每小时滚动一次日志文件,但关注的是性能,因为这需要在实时服务器中完成。 iptables 日志记录会增加大量开销吗?我是 Linux 新手,非常感谢您的意见。

答案1

负载主要取决于需要记录的连接数量。每个连接的数量相当小,但如果有一台服务器需要处理大量连接,那么它就会增加。

iptables将日志消息放入内核消息缓冲区(可以使用命令查看dmesg)。其余的工作通常由系统日志守护进程处理。

如果是传统的syslogd/klogd对,它们将消耗所需的任意数量的系统资源来将消息发送到日志文件和/或远程日志目的地(按照配置)。

但在许多现代发行版中,rsyslogd使用了 ,它可以对消息进行速率限制 - 并且在许多发行版中,iptables 日志记录的此限制级别设置得相当低。似乎默认速率是为了保护旧的低功耗服务器而设计的,因此您可以安全地增加限制 - 但您必须记住这样做。

如果您正在运行 Java 软件,它们往往会使用大量网络套接字进行本地通信:您可能需要仔细设置日志记录规则以不记录这些规则,以最大程度地减少需要在源处记录的数据量。同样,如果您知道有大量您已经了解或不关心的连接,您可能希望将它们从日志记录中排除,以保持数据总量易于管理。

如果可能,请确保每个连接仅创建一条日志消息。记录全部传入和传出的数据包肯定会产生显着的额外负载。

另外,不要假设经过一周的记录,您就会知道所有需要知道的事情:根据您的站点,可能会有一些连接仅在月底或每季度发生。

相关内容