我在用着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
我设法找出这种行为的原因:
引用自这里
仅当远程服务器关闭并且内存队列中没有更多空间时,才会创建实际的假脱机文件。默认情况下,远程服务器的短暂故障永远不会导致创建磁盘文件,因为默认情况下可以在内存中保存数百条消息。