题 如何设置rsyslog以将所有日志发送到多个远程服务器?


我正在尝试使rsyslog将所有日志发送到2个远程服务器,但似乎只有第一个服务器失败时,rsyslog才会发送到辅助服务器。

*.* @@server1
*.* @@server2

如果我把上面的内容放在/etc/rsyslog.conf中,只要server1启动,server2就不会收到任何日志。无论如何,我如何告诉rsyslog发送到两台服务器?

此外,作为额外奖励,如果远程服务器出现故障,我想使用2个不同的本地“缓冲区”文件进行本地存储。


10
2017-07-10 19:50






答案:


转发到多个服务器;

然而,重要的是要知道完整的指令组成一个动作。因此,您不能简单地添加(仅)第二个转发规则,但也需要复制规则配置。小心你为第二个动作使用不同的队列文件名,否则你会弄乱你的系统。

所以,实际上,你  使用2个不同的本地队列。

配置工作目录。

$WorkDirectory /var/spool/rsyslog

配置转发规则。

$ActionQueueType LinkedList
$ActionQueueFileName Forward1
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
*.* @@server1

$ActionQueueType LinkedList
$ActionQueueFileName Forward2
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
*.* @@server2

14
2017-07-10 20:15



这实际上就是我使用的配置,包括不同的队列文件。但它仍然无效。如果我关闭“server1”,我只会看到“server2”的日志 - Daniele Testa
对不起这是我的错。我有一些错误的防火墙规则:)我修复了防火墙问题后我的原始配置正常工作。 - Daniele Testa
防火墙每次都会这样做..我应该问过这个问题! :)无论您现有的配置如何工作,我的努力如何投票?当投票系统鼓励参与时,该网站效果最佳。请看看 游览 当你有机会的页面。 - Aaron Copley
对不起,我需要15点以上的声望才能提升 - Daniele Testa