使用 rsyslog 远程记录到特定目录结构

使用 rsyslog 远程记录到特定目录结构

我目前正在让所有服务器将其系统日志消息发送到中央服务器。我希望在日志发送到的中央服务器上具有以下目录结构。

<root_dir>/<server_name>/<year>/<month>/<day>/{messages, mail, auth, etc}.log

我是否可以仅使用 rsyslog 模板来完成此操作,还是需要使用其他实用程序将文件移动到正确的文件位置?

答案1

我不知道如何创建目录,但其余的应该由过滤器和动态文件名来处理。

通常在这种情况下我会记录类似的文件模式。

/var/log/<server_name>{messages,mail,auth,etc}.YYYYMMDD 

按服务器分开日志可能会使跨服务器跟踪条件变得困难。日志消息通常包含原始服务器,因此使用 或任何其他模式匹配工具可以轻松检索特定服务器的消息awkgrep扩展这么多日志文件也可能很困难,并且可能会达到资源限制。

通常,日志轮换由类似 的程序处理logrotate。这允许您控制特定文件的日志轮换频率,并控制保留的版本数。它的postrotate操作可用于将日期从刚轮换的文件中拆分成所需的形式。这可能具有更好的扩展性。

相关内容