Rsyslog在IPv4和IPv6混合使用场景中日志传输延迟

问题现象

rsyslog客户端配置文件同时配置IPv4和IPv6地址,且端口配置相同的情况下,服务端收集log时会概率性出现日志打印延迟。

原因分析

延迟是因为rsyslog内部存在缓冲队列机制,默认情况下需要缓冲区队列达到一定数量才会写入文件。

解决方法

可通过配置Direct模式,关闭缓冲队列机制解决该问题。在rsyslog远程传输服务端的/etc/rsyslog.d目录下新增的远程传输配置文件中,最开头增加如下配置:

  1. $ActionQueueType Direct
  2. $MainMsgQueueType Direct

Rsyslog在IPv4和IPv6混合使用场景中日志传输延迟 - 图1 说明:

  • Direct模式减少队列大小为1,所以在队列中会保留1条日志到下次日志打印;
  • Direct模式会降低服务器端的rsyslog性能。