rsyslog 日志不存储在队列文件中

rsyslog 日志不存储在队列文件中

我在用着rsyslog 8.40我正在尝试使用队列设置日志转发。

我能够使用以下配置将日志发送到转发服务器。

   action(type="omfwd" target="host1" port="10515" protocol="udp" )
   action(type="omfwd" target="host2" port="10514" protocol="udp" )

现在,我想将日志保留在队列中,以便每当我的目标服务器出现故障时,我都不会丢失日志。

为此,我正在做这样的事情:

action(type="omfwd" target="host1" port="10515" protocol="udp"
               queue.spoolDirectory="/var/lib/rsyslog"
               queue.type="LinkedList"
               queue.filename="host1.queue"
               action.resumeRetryCount="-1"
               queue.saveOnShutdown="on"
)

action(type="omfwd" target="host2" port="10514" protocol="udp"
           queue.type="LinkedList"
           queue.filename="host2.queue"
           action.resumeRetryCount="-1"
           queue.saveOnShutdown="on"
)

如果我关闭转发服务器,则不会在队列文件中创建日志,我希望该日志出现在 /var/lib/rsyslog 中,因为我有以下设置:

global(
    net.enableDNS="off"
    preserveFQDN="on"
    umask="0004"
    workDirectory="/var/lib/rsyslog"
)

JFTR,

  • 配置没有任何配置错误。
  • 我已经在 rsyslogd 中启用了调试,但这并没有给我指出任何错误。

答案1

我设法找出这种行为的原因:

引用自这里

仅当远程服务器关闭并且内存队列中没有更多空间时,才会创建实际的假脱机文件。默认情况下,远程服务器的短暂故障永远不会导致创建磁盘文件,因为默认情况下可以在内存中保存数百条消息。

相关内容