首页 > 解决方案 > 添加到内存队列的日志在重新连接后不会转发到 rsyslog 服务器

问题描述

当连接可靠时,我能够让客户端机器将其所有日志发送到 rsyslog 服务器。只有当与 rsyslog 服务器的连接丢失时,我才会遇到问题。

这是我的服务器配置:

$ModLoad imtcp
$InputTCPServerRun 514
$template RemoteServer, "/var/log/%HOSTNAME%/%SYSLOGFACILITY-TEXT%.log"
*.* ?RemoteServer

这是我的客户端配置:

action(type="omfwd" target="<IP>" port="514" protocol="tcp"
       queue.filename="forwarding" queue.size="100000" 
       queue.type="LinkedList" queue.saveOnShutdown="on")

如果网络连接断开,客户端机器上会出现预期的错误消息:

Jun 18 10:20:45 <HOSTNAME> rsyslogd[64208]: cannot connect to <IP>:514: Connection refused [v8.2102.0 try https://www.rsyslog.com/e/2027 ]

当网络连接恢复时,客户端机器上会出现预期的重新连接消息:

Jun 18 10:21:17 <HOSTNAME> rsyslogd[64208]: action 'action-0-builtin:omfwd' resumed (module 'builtin:omfwd') [v8.2102.0 try https://www.rsyslog.com/e/2359 ]

但是,连接失败期间客户端计算机上生成的日志不会转发到服务器。

没有错误表明出了什么问题。

如何检查日志是否正在发布到队列,以及如何强制客户端确保服务器接收在连接失败期间丢失的日志?

谢谢。

标签: syslogrsyslog

解决方案


推荐阅读