我已将 rsyslog 设置为通过 TCP 记录到中央服务器。如果网络或远程服务器不可用,我希望它在本地记录,否则省略本地日志。记录到两者很简单,但我还没有看到记录到其中之一的方法。
答案1
这个 rsyslog教程演示如何进行多个连续操作,但使用特殊行动参数execOnlyWhenPreviousIsSuspended
。动作参数描述这里。这个简短的例子说明了如果远程 tcp 服务器停止接受消息,如何将其保存到本地文件中。
action(type="omfwd" target="primary.example.com" port="10514"
protocol="tcp")
action(type="omfile" tag="failover" file="/var/log/localbuffer"
action.execOnlyWhenPreviousIsSuspended="on")
另外,您可以配置磁盘队列对于目的地,在本地保留消息,直到远程再次可用,然后发送它们。