![使用 rsyslog 远程记录到特定目录结构](https://linux22.com/image/638347/%E4%BD%BF%E7%94%A8%20rsyslog%20%E8%BF%9C%E7%A8%8B%E8%AE%B0%E5%BD%95%E5%88%B0%E7%89%B9%E5%AE%9A%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84.png)
我目前正在让所有服务器将其系统日志消息发送到中央服务器。我希望在日志发送到的中央服务器上具有以下目录结构。
<root_dir>/<server_name>/<year>/<month>/<day>/{messages, mail, auth, etc}.log
我是否可以仅使用 rsyslog 模板来完成此操作,还是需要使用其他实用程序将文件移动到正确的文件位置?
答案1
我不知道如何创建目录,但其余的应该由过滤器和动态文件名来处理。
通常在这种情况下我会记录类似的文件模式。
/var/log/<server_name>{messages,mail,auth,etc}.YYYYMMDD
按服务器分开日志可能会使跨服务器跟踪条件变得困难。日志消息通常包含原始服务器,因此使用 或任何其他模式匹配工具可以轻松检索特定服务器的消息awk
。grep
扩展这么多日志文件也可能很困难,并且可能会达到资源限制。
通常,日志轮换由类似 的程序处理logrotate
。这允许您控制特定文件的日志轮换频率,并控制保留的版本数。它的postrotate
操作可用于将日期从刚轮换的文件中拆分成所需的形式。这可能具有更好的扩展性。